数据模型
cg_rag_models 定义 HTTP 请求体、MCP 工具输入和通用工具返回结构。模型层负责查询文本校验、scope 归一化,以及 topk、max_items 等数值范围约束。
cg_rag_models
CgError
Bases: BaseModel
源代码位于: eval_rag_results/scripts/question_generated_app/cg_rag_models.py
| class CgError(BaseModel):
code: str
message: str
details: dict[str, Any] = Field(default_factory=dict)
|
Bases: BaseModel
源代码位于: eval_rag_results/scripts/question_generated_app/cg_rag_models.py
| class CgToolResult(BaseModel):
ok: bool = True
message: str = ""
data: dict[str, Any] = Field(default_factory=dict)
error: CgError | None = None
|
CgWarmupRequest
Bases: BaseModel
源代码位于: eval_rag_results/scripts/question_generated_app/cg_rag_models.py
| class CgWarmupRequest(BaseModel):
scopes: list[str] | None = None
@field_validator("scopes")
@classmethod
def normalize_scopes(cls, value: list[str] | None) -> list[str] | None:
if value is None:
return None
return [scope.strip() for scope in value]
|
CgRetrieveRerankRequest
Bases: BaseModel
源代码位于: eval_rag_results/scripts/question_generated_app/cg_rag_models.py
| class CgRetrieveRerankRequest(BaseModel):
query: str
scope: str = "usual"
topk: int = 78
@field_validator("query", mode="before")
@classmethod
def normalize_query(cls, value: Any) -> str:
return _normalize_query(value)
@field_validator("scope", mode="before")
@classmethod
def normalize_scope_value(cls, value: Any) -> str:
return normalize_scope(value, "usual")
@field_validator("topk")
@classmethod
def normalize_topk(cls, value: int) -> int:
return min(max(int(value or 1), 1), 200)
|
CgConstrainedGenerateRequest
Bases: BaseModel
源代码位于: eval_rag_results/scripts/question_generated_app/cg_rag_models.py
| class CgConstrainedGenerateRequest(BaseModel):
query: str
retrieval_docs: list[dict[str, Any]]
max_items: int = 10
include_debug: StrictBool = False
@field_validator("query", mode="before")
@classmethod
def normalize_query(cls, value: Any) -> str:
return _normalize_query(value)
@field_validator("retrieval_docs")
@classmethod
def validate_retrieval_docs(cls, value: list[dict[str, Any]]) -> list[dict[str, Any]]:
if not value:
raise ValueError("retrieval_docs 不能为空")
return value
@field_validator("max_items")
@classmethod
def normalize_max_items(cls, value: int) -> int:
return min(max(int(value or 1), 1), 20)
|
CgRagRequest
Bases: CgRetrieveRerankRequest
源代码位于: eval_rag_results/scripts/question_generated_app/cg_rag_models.py
| class CgRagRequest(CgRetrieveRerankRequest):
max_items: int = 10
include_debug: StrictBool = False
@field_validator("max_items")
@classmethod
def normalize_max_items(cls, value: int) -> int:
return min(max(int(value or 1), 1), 20)
|
validation_error_details(exc: ValidationError) -> dict[str, Any]
源代码位于: eval_rag_results/scripts/question_generated_app/cg_rag_models.py
| def validation_error_details(exc: ValidationError) -> dict[str, Any]:
return {
"errors": [
{
"loc": list(error.get("loc") or []),
"message": str(error.get("msg") or ""),
"type": str(error.get("type") or ""),
}
for error in exc.errors()
]
}
|