跳转至

配置

cg_rag_config 负责读取 CG_RAG HTTP/MCP 路径、生成模型、超时、候选条文数量和检索缓存参数。环境变量优先使用 CG_RAG_*,并保留 QUESTION_GENERATED_APP_* 兼容名称。

cg_rag_config

CgRagConfig dataclass

源代码位于: eval_rag_results/scripts/question_generated_app/cg_rag_config.py
@dataclass(frozen=True)
class CgRagConfig:
    http_prefix: str = "/cg-rag"
    mcp_path: str = "/cg-rag/mcp"
    generation_endpoint: str = ""
    generation_model: str = ""
    api_key: str = ""
    generation_response_format_json: bool = True
    generation_enable_thinking: bool = False
    timeout_seconds: float = DEFAULT_TIMEOUT_SECONDS
    max_context_docs: int = DEFAULT_MAX_CONTEXT_DOCS
    default_max_items: int = DEFAULT_MAX_ITEMS
    cache_max_entries: int = DEFAULT_CACHE_MAX_ENTRIES
    cache_ttl_seconds: float = DEFAULT_CACHE_TTL_SECONDS

    @property
    def generation_configured(self) -> bool:
        return bool(self.generation_endpoint and self.generation_model)

load_cg_rag_config() -> CgRagConfig

源代码位于: eval_rag_results/scripts/question_generated_app/cg_rag_config.py
def load_cg_rag_config() -> CgRagConfig:
    load_env_file()
    return CgRagConfig(
        http_prefix=_clean_path(
            _env_str("CG_RAG_HTTP_PREFIX", "QUESTION_GENERATED_APP_HTTP_PREFIX", "/cg-rag"),
            "/cg-rag",
        ),
        mcp_path=_clean_path(
            _env_str("CG_RAG_MCP_PATH", "QUESTION_GENERATED_APP_MCP_PATH", "/cg-rag/mcp"),
            "/cg-rag/mcp",
        ),
        generation_endpoint=_env_str(
            "CG_RAG_GENERATION_ENDPOINT",
            "QUESTION_GENERATED_APP_GENERATION_ENDPOINT",
            "",
        ),
        generation_model=_env_str(
            "CG_RAG_GENERATION_MODEL",
            "QUESTION_GENERATED_APP_GENERATION_MODEL",
            "",
        ),
        api_key=_env_str("CG_RAG_API_KEY", "QUESTION_GENERATED_APP_API_KEY", ""),
        generation_response_format_json=_env_bool(
            "CG_RAG_GENERATION_RESPONSE_FORMAT_JSON",
            "QUESTION_GENERATED_APP_GENERATION_RESPONSE_FORMAT_JSON",
            True,
        ),
        generation_enable_thinking=_env_bool(
            "CG_RAG_GENERATION_ENABLE_THINKING",
            "QUESTION_GENERATED_APP_GENERATION_ENABLE_THINKING",
            False,
        ),
        timeout_seconds=_env_float(
            "CG_RAG_TIMEOUT_SECONDS",
            "QUESTION_GENERATED_APP_TIMEOUT_SECONDS",
            DEFAULT_TIMEOUT_SECONDS,
        ),
        max_context_docs=_env_positive_int(
            "CG_RAG_MAX_CONTEXT_DOCS",
            "QUESTION_GENERATED_APP_MAX_CONTEXT_DOCS",
            DEFAULT_MAX_CONTEXT_DOCS,
        ),
        default_max_items=_env_positive_int(
            "CG_RAG_DEFAULT_MAX_ITEMS",
            "QUESTION_GENERATED_APP_DEFAULT_MAX_ITEMS",
            DEFAULT_MAX_ITEMS,
        ),
        cache_max_entries=_env_non_negative_int(
            "CG_RAG_RETRIEVE_CACHE_MAX_ENTRIES",
            "QUESTION_GENERATED_APP_RETRIEVE_CACHE_MAX_ENTRIES",
            DEFAULT_CACHE_MAX_ENTRIES,
        ),
        cache_ttl_seconds=_env_non_negative_float(
            "CG_RAG_RETRIEVE_CACHE_TTL_SECONDS",
            "QUESTION_GENERATED_APP_RETRIEVE_CACHE_TTL_SECONDS",
            DEFAULT_CACHE_TTL_SECONDS,
        ),
    )