传统RAG(检索增强生成)技术利用向量知识库,基于大模型的语义理解能力,通过对问题的拆解和向量搜索从知识库筛选内容。但该方法存在明显瓶颈:
1. 召回不完全:关键信息可能遗漏;
2. 召回不精准:返回大量无关内容;
3. 上下文超限:召回内容超出模型处理能力。
这些问题会导致大模型理解偏差,最终输出不精准的答案。
更关键的是,垂直领域的答案往往隐藏在文本深层。我们将答案分为四类:
1. 表面问答:答案直接显现在单段文本中(如“某政策发布日期”);
2. 总结问答:答案分散在多段文本,需总结(如“某方案的三大优势”);
3. 深度问答:答案需结合背景知识推理(如“某实验失败的根本原因”);
4. 关系问答:答案依赖实体、属性、关系的关联链(如“某故障对上下游系统的影响”)。
传统RAG在垂直领域效果有限,原因有二:
1. 通用大模型缺乏领域专业知识;
2. 专业答案常隐藏在文本中,需关联复杂前提知识。
知识问答的终极形态应模拟人类思考模式:
1. 双轨知识存储
1.1、向量库:存储原始文本(论文、手册等);
1.2、知识图谱:通过领域大模型提取文本中的**实体、属性、关系三元组**,存储于图数据库(如Neo4j),构建结构化知识网络。
2. 深度问题解析
拆解问题中的实体(如“设备A”)、属性(如“温度阈值”)、关系(如“导致”)、场景(如“高温环境”)及核心问题(如“故障原因”)。
3. 多模态答案生成
根据问题类型,动态组合:
* 向量搜索(表面/总结型问题);
* 图谱查询(深度/关系型问题,如路径推理、属性过滤);
* 大模型总结与推理。
4. 可解释性为核心
输出完整思考链,包括:
* 问题解析逻辑;
* 知识检索路径;
* 推理依据与计算过程。
(信任源于透明:人类需监督AI决策,必须理解其工作原理)
这里我们举一个医疗诊断场景的通俗案例:
用户问题:
“患者服用降压药A后肌酐升高,他有糖尿病和肾结石,可能是什么原因?该如何调整用药?”
传统RAG的局限:
– 可能只召回“药A的副作用说明书”(漏掉糖尿病关联);
– 无法从“肾结石”推理到“肾功能代谢能力下降”;
– 难以整合“药A+糖尿病+肾结石→肾功能风险→肌酐升高”的逻辑链。
终极形态的解决流程:
1. 知识存储
– 向量库:药品说明书、临床指南、病例报告;
– 知识图谱:

2. 问题解析
– 实体:`患者`、`药A`、`肌酐`、`糖尿病`、`肾结石`;
– 属性:`当前症状=肌酐升高`、`病史=糖尿病+肾结石`;
– 关系:`药A→可能引起→肌酐升高`、`糖尿病/肾结石→加重→肾功能下降`;
– 问题:归因分析 + 用药调整建议。
3. 答案生成
– 图谱推理:
– 查询“药A”的副作用→确认“肌酐升高”;
– 关联“糖尿病”和“肾结石”→二者均指向“肾功能下降”;
– 结合医学规则:**肾功能下降者禁用可能损伤肾脏的药物**。
– **向量补充**:检索“药A替代方案”文献,发现“药B”适用但需评估肾功能。
4. 可解释性输出,思考过程:
4.1、 关键识别:
– 核心问题:药A与肌酐升高的因果关系 + 用药调整建议
– 患者风险因素:糖尿病(损伤肾小球)、肾结石(阻塞尿路)→ 均导致**肾功能基础薄弱**
4.2、 知识检索:
– 图谱路径:药A →[副作用]→ 肌酐升高 ←[风险因素]← 肾功能下降 ←[病因]← 糖尿病/肾结石
– 文献补充:药B可作为替代,但需满足eGFR(肾小球滤过率)>60ml/min
4.3、 推理结论:
– 肌酐升高很可能源于药A对脆弱肾脏的额外负担;
– 建议行动:
(1) 立即停用药A;
(2) 检测当前eGFR值;
(3) 若eGFR>60,可换用药B(需监测血压);
(4) 若eGFR<60,需重新评估用药方案(如药C)。
4. 风险提示:
– 忽略肾功能直接换药B可能引发急性肾损伤!
该方案的核心价值:
– 深度推理:串联药物副作用、病史、生理机制,而非机械匹配关键词;
– 可解释性:医生可验证“药B推荐”是否基于当前肾功能数据,避免盲目依赖AI;
– 动态决策:结合检测结果(eGFR)触发不同用药分支,实现个性化方案。
最后放出一张生成的卡片
