跳转至

CG_RAG 配置

CG_RAG 优先读取 CG_RAG_* 环境变量。未设置时,部分字段会回退到现有 QUESTION_GENERATED_APP_* 配置,以便同一套运行环境同时服务网页应用和外部 HTTP/MCP 调用。

路由

变量 默认值 说明
CG_RAG_HTTP_PREFIX /cg-rag HTTP API 路由前缀
CG_RAG_MCP_PATH /cg-rag/mcp Streamable HTTP MCP 挂载路径

默认入口:

HTTP API: http://127.0.0.1:8864/cg-rag
MCP:      http://127.0.0.1:8864/cg-rag/mcp/

检索范围

可用 scope

scope 含义
full 全库
usual 常用规范
usual_plus_law 常用规范 + 常用法律

HTTP/MCP 请求省略 scope 时当前按请求模型回退到 usual。生产集成建议显式传入目标 scope,避免默认值差异影响结果。

生成配置

变量 默认值 说明
CG_RAG_GENERATION_ENDPOINT OpenAI-compatible chat completions 地址
CG_RAG_GENERATION_MODEL 生成模型名
CG_RAG_API_KEY 生成接口鉴权 token;配置后以 Bearer token 发送
CG_RAG_GENERATION_RESPONSE_FORMAT_JSON true 是否请求 JSON response format
CG_RAG_GENERATION_ENABLE_THINKING false 配置可保留;当前 constrained 请求不注入 thinking 模板
CG_RAG_TIMEOUT_SECONDS 120 LLM 请求超时时间
CG_RAG_MAX_CONTEXT_DOCS 78 constrained generation 最多使用的候选文档数
CG_RAG_DEFAULT_MAX_ITEMS 10 默认最多返回条文数

CG_RAG_GENERATION_ENDPOINTCG_RAG_GENERATION_MODEL 未配置时,retrieve-rerank 仍可用;constrained-generateraganswer 的生成阶段会返回业务失败,不会把配置缺失包装成 HTTP 500。

远端 Embedding 和 Rerank

变量 默认值 说明
CG_RAG_EMBEDDING_API_ENDPOINT 可选远端 embedding API
CG_RAG_EMBEDDING_API_MODEL qwen3-embedding 可选远端 embedding 模型名
CG_RAG_EMBEDDING_API_DIMENSION 按服务配置 可选远端 embedding 维度
CG_RAG_RERANK_API_ENDPOINT 可选远端 rerank API
CG_RAG_RERANK_API_MODEL qwen-rerank 可选远端 rerank 模型名

未配置远端 rerank API 时,服务使用本地 reranker 配置。健康检查中的 rerank.api_enabled 可用于确认当前是否启用远端 rerank。

Retrieve-Rerank 缓存

变量 默认值 说明
CG_RAG_RETRIEVE_CACHE_MAX_ENTRIES 128 retrieve-rerank 内存缓存最大条目数;0 禁用写入
CG_RAG_RETRIEVE_CACHE_TTL_SECONDS 300 retrieve-rerank 内存缓存 TTL 秒数;0 禁用写入

缓存 key 包含 normalized scope、去首尾空白后的 query 和 topk。缓存只覆盖 retrieve-rerank 结果,不缓存 LLM generation。

Warmup

如果使用仓库中的 CG_RAG 启动脚本,常用运行时变量如下:

变量 默认值 说明
QUESTION_APP_CG_RAG_HOST 0.0.0.0 HTTP/MCP 监听地址
QUESTION_APP_CG_RAG_PORT 8864 HTTP/MCP 监听端口
QUESTION_APP_CG_RAG_WARMUP_SCOPES full 启动后等待并预热的 scope 列表;空字符串表示跳过
QUESTION_APP_CG_RAG_STARTUP_TIMEOUT_SECONDS 300 启动健康检查和 warmup 等待时间

POST /cg-rag/warmup 会顺序加载 scopes,但 retriever manager 同时只保留一个 active profile。传入多个 scope 时,最后一个 scope 会成为最终 resident scope。

编排边界

CG_RAG 编排不包含 domain gate。服务只负责:

  1. retrieve;
  2. rerank;
  3. 可选 constrained generation。

调用方如需领域判断、权限控制、用户画像或业务审计,应在调用 CG_RAG 前后自行编排。