Chat7-CodeX-Backend / schemas.py
hashan-7's picture
Update code
c61c167 verified
from enum import Enum
from typing import List, Optional
from pydantic import BaseModel, Field
class CodeTaskType(str, Enum):
GENERATE = "generate"
FIX = "fix"
EXPLAIN = "explain"
REFACTOR = "refactor"
REVIEW = "review"
UNKNOWN = "unknown"
class SourceType(str, Enum):
STACKOVERFLOW = "stackoverflow"
GITHUB = "github"
MODEL = "model"
class RetrievedEvidence(BaseModel):
source_type: SourceType
title: str = Field(..., min_length=1)
snippet: str = Field(..., min_length=1)
url: Optional[str] = None
score: Optional[float] = None
class ResponseMeta(BaseModel):
used_model: str = Field(..., min_length=1)
fallback_used: bool = False
retrieval_used: bool = False
source_count: int = 0
processing_time_ms: Optional[int] = None
class CodeXRequest(BaseModel):
message: str = Field(..., min_length=1)
session_id: Optional[str] = None
mode: Optional[CodeTaskType] = None
language: Optional[str] = None
code: Optional[str] = None
error_message: Optional[str] = None
framework: Optional[str] = None
file_name: Optional[str] = None
previous_context: Optional[str] = None
use_retrieval: bool = True
class CodeXResponse(BaseModel):
answer: str = Field(..., min_length=1)
task_type: CodeTaskType
code_output: Optional[str] = None
explanation: Optional[str] = None
warnings: List[str] = Field(default_factory=list)
sources: List[RetrievedEvidence] = Field(default_factory=list)
needs_clarification: bool = False
meta: ResponseMeta