外观
AI / RAG / LLM 链路总览
AI 能力由安全过滤、RAG 检索、证据裁剪、LLM 生成和结果持久化共同组成。当前生产入口通过 RAGRuntimeGateway 接入底层 RAG 实现,Chat 主链使用 hybrid RAG;处方生成经同一 runtime 入口调用处方生成能力,但当前处方生成不走知识库检索。
内容地图
| 文档 | 阅读职责 |
|---|---|
| RAG 专项边界 | 说明 RAG runtime、兼容入口、业务调用方和数据边界。 |
| RAG 检索链路 | 说明 hybrid 检索、knowledge_chunks、rerank、证据裁剪和上下文构造。 |
| LLM 调用链路 | 说明 provider 配置、client 协议、Chat/处方生成调用路径和失败降级。 |
| Prompt 契约 | 说明 Chat 回复和处方生成两套 prompt 的输入、约束、输出和 fallback。 |
| 安全过滤 | 说明输入安全、RAG 安全短路、评估红黄绿规则和处方安全检查。 |
运行结构
业务入口Chat / Prescription
安全边界SafetyFilter
统一入口RAGRuntimeGateway
RAG 运行链understand / retrieve / rerank
↴
Prompt 构造chat / prescription
模型生成Moonshot / Spark
结果落库logs / schemes
生产运行开关
| 配置项 | 当前生产值 | 影响 |
|---|---|---|
RAG_PIPELINE_VERSION | hybrid | Chat 的 RAG 主链走 query understanding、retrieval、rerank、evidence、context、LLM。 |
RAG_HYBRID_SCHEMA_TAG | v1 | knowledge_chunks.meta_data->rag_schema 使用 v1 作为 hybrid 知识谱系过滤条件。 |
RAG_ENABLE_RERANK | true | 检索候选会进入 DashScope rerank;失败时按 similarity 降级排序。 |
RAG_RERANK_MODEL | gte-rerank-v2 | rerank 使用的 DashScope 模型标识。 |
RAG_RERANK_TIMEOUT | 1.0 | rerank 单次超时,超时后不阻断主链。 |
LLM_PROVIDER | moonshot | 默认 LLM client 使用 OpenAI-compatible Moonshot 路径。 |
LLM_MODEL | moonshot-v1-8k | 默认 Chat Completions 模型。 |
SPARK_MODEL | spark_max | Spark 兼容层保留的模型配置。 |
代码默认值仍保留较保守的本地 fallback,例如 RAG_PIPELINE_VERSION=legacy、RAG_ENABLE_RERANK=False;生产由环境变量覆盖。
主链入口
| 场景 | 入口 | RAG / LLM 行为 | 写入 |
|---|---|---|---|
| 用户 Chat | POST /api/chat/message -> SendChatMessageUseCase | 先做输入安全检查;安全通过后调用 safe_search_and_generate;hybrid 检索有证据时构造上下文给 LLM,缺证据时走一般常识 fallback。 | chat_sessions、dialogue_logs |
| 处方生成 | POST /api/prescription/generate -> PrescriptionService | 经 RAGRuntimeGateway.generate_prescription_with_fallback 调用处方生成;当前实现直接构造处方 prompt 调 LLM,并做处方安全检查,结果标记 rag_used=false。 | sport_schemes,可选写入 dialogue_logs 处方卡 |
| 安全指南 | /api/safety/guidelines | 通过 runtime RAG 获取安全指南与用户上下文相关提示。 | 当前不写业务表 |
| 风险评估 | /api/safety/risk-assessment、/api/assessment/safety-check | 使用规则引擎或风险服务,不依赖 LLM 生成判断。 | 评估 API 会写健康评估相关表;safety risk API 当前不写业务表 |
边界原则
- RAG 负责检索、证据选择和上下文构造,不负责替代医生诊断。
- LLM 负责自然语言生成和处方 JSON 生成,不作为事实来源。
- 安全过滤优先级高于检索与生成;高风险输入可以直接返回安全建议并跳过 RAG。
knowledge_chunks是当前知识主表;rag_knowledge_items、rag_vector_index是 legacy 表,不作为当前主路径描述。- 文档中只写配置项名称、运行开关和结构事实,不写 API key、生产连接串、完整日志或真实患者数据。
来源锚点
- Runtime:
apps/backend_service/app/runtime.py、apps/backend_service/app/bootstrap.py - Gateway:
apps/backend_service/app/core/rag_runtime_gateway.py - RAG package:
apps/backend_service/app/core/rag/ - Chat:
apps/backend_service/app/use_cases/chat/send_message.py - Prescription:
apps/backend_service/app/services/prescription_service.py、apps/backend_service/app/core/rag/prescription_generation.py - LLM:
apps/backend_service/app/core/llm_config.py、apps/backend_service/app/external/ - Safety:
apps/backend_service/app/core/safety_filter.py、apps/backend_service/app/core/safety_engine.py