Skip to content

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_VERSIONhybridChat 的 RAG 主链走 query understanding、retrieval、rerank、evidence、context、LLM。
RAG_HYBRID_SCHEMA_TAGv1knowledge_chunks.meta_data->rag_schema 使用 v1 作为 hybrid 知识谱系过滤条件。
RAG_ENABLE_RERANKtrue检索候选会进入 DashScope rerank;失败时按 similarity 降级排序。
RAG_RERANK_MODELgte-rerank-v2rerank 使用的 DashScope 模型标识。
RAG_RERANK_TIMEOUT1.0rerank 单次超时,超时后不阻断主链。
LLM_PROVIDERmoonshot默认 LLM client 使用 OpenAI-compatible Moonshot 路径。
LLM_MODELmoonshot-v1-8k默认 Chat Completions 模型。
SPARK_MODELspark_maxSpark 兼容层保留的模型配置。

代码默认值仍保留较保守的本地 fallback,例如 RAG_PIPELINE_VERSION=legacyRAG_ENABLE_RERANK=False;生产由环境变量覆盖。

主链入口

场景入口RAG / LLM 行为写入
用户 ChatPOST /api/chat/message -> SendChatMessageUseCase先做输入安全检查;安全通过后调用 safe_search_and_generate;hybrid 检索有证据时构造上下文给 LLM,缺证据时走一般常识 fallback。chat_sessionsdialogue_logs
处方生成POST /api/prescription/generate -> PrescriptionServiceRAGRuntimeGateway.generate_prescription_with_fallback 调用处方生成;当前实现直接构造处方 prompt 调 LLM,并做处方安全检查,结果标记 rag_used=falsesport_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_itemsrag_vector_index 是 legacy 表,不作为当前主路径描述。
  • 文档中只写配置项名称、运行开关和结构事实,不写 API key、生产连接串、完整日志或真实患者数据。

来源锚点

  • Runtime: apps/backend_service/app/runtime.pyapps/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.pyapps/backend_service/app/core/rag/prescription_generation.py
  • LLM: apps/backend_service/app/core/llm_config.pyapps/backend_service/app/external/
  • Safety: apps/backend_service/app/core/safety_filter.pyapps/backend_service/app/core/safety_engine.py