跳转至

数据模型

cg_rag_models 定义 HTTP 请求体、MCP 工具输入和通用工具返回结构。模型层负责查询文本校验、scope 归一化,以及 topkmax_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)

CgToolResult

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()
        ]
    }