1让 AI 学会"我不知道"
上一期你做了一个问诊 workflow——会拦红旗、会转人工。但有一个问题没解决:
当 AI 不知道答案的时候,它会怎么办?
绝大多数大模型的默认行为是:编一个。这叫幻觉,在医疗场景里,幻觉就是事故。
所以这一期的主题是——让医疗 AI 学会说"我不知道"。
2会搭 RAG 不牛,会拒答才牛
很多人觉得"我会搭 RAG 了"就万事大吉。但真相是:
搭 RAG 三天能会。但什么时候该答、什么时候该拒、拒答之后说什么——这是产品判断,不是技术活。
面试官问"你的 RAG 怎么保证不出错",你回答"我加了知识库"——这是小白。你回答"我用引用规则 + 拒答规则 + RAGAS 评测三层兜底"——这是做过。
372% 的医疗幻觉,出在"不会拒答"
给你一个扎心的数字:医疗类问答的幻觉里,约 72% 发生在 AI 本该说"我不知道"却硬答的场景。
什么意思?就是——大部分错误,不是知识库错了,是 AI 在知识库没覆盖的时候硬编。
4知识库三层分层:通用 / 专业 / 机构
第一件事——把知识库分层。一个锅烩的知识库是幻觉的温床。
正确的结构是三层:通用知识打底,专业知识撑腰,机构知识定边界。每一层的权限、更新频率、检索优先级都不一样。
📄 资料包 ① · 知识库三层分层模板(领取关键词:RAG评测)
按检索优先级从高到低排列。检索时先查机构层(最权威、最具体),命中则直接采用;未命中再查专业层、通用层。
| 分层 | 内容示例 | 权限级别 | 更新频率 | 检索优先级 |
|---|---|---|---|---|
| 🏢 机构知识 | 本院诊疗规范、科室 SOP、药品目录与医保政策、排班与就诊流程、医生简介 | 仅本院可见,需登录鉴权 | 实时/日更 | P0 最高,命中即采纳,覆盖下层 |
| 📖 专业知识 | 临床指南(如 AASM、CDSR)、UpToDate 条目、药品说明书、教科书章节、权威综述 | 已授权内容,全场景可查 | 月更/季更 | P1,机构层未命中时启用,须标注来源 |
| 🌍 通用知识 | 疾病科普、健康生活方式、症状自测常识、就医准备提示 | 公开内容,可对外 | 半年/年更 | P2 兜底,仅供低风险科普问答,禁止用于诊断建议 |
设计要点:三层必须可溯源(每条都标 ID + 来源);机构层是拒答的底气——查不到机构数据,就不要答"本院怎么做"类问题。
5引用 ≠ 拒答:这是两套规则
第二件事——很多人把"引用"和"拒答"搞混了。
引用规则管的是"答的时候必须标注来源";拒答规则管的是"什么时候不能答"。一个是透明度,一个是安全阀。两套都要写死,不能交给 LLM 自己悟。
📄 资料包 ② · 引用拒答规则表(含触发条件 / 动作 / 示例)
A. 引用规则(答的时候)
原则:每条输出必须可追溯到知识库某一条文档,否则不得输出。
| 触发条件 | 系统动作 | 示例 |
|---|---|---|
| 命中机构/专业层 | 输出答案 + 标注来源(机构名/指南名 + 条目 ID) | "本院发热门诊流程为……(来源:XX医院SOP-2024-F012)" |
| 命中通用层 | 输出科普答案 + 标注"仅供参考" + 来源 | "普通感冒多为病毒感染……(来源:科普库 GK-301,仅供参考)" |
| 多源冲突 | 以优先级高的源为准,并在答案中说明差异 | "指南 A 建议 X,本院 SOP 建议 Y,以本院为准。" |
| LLM 改写原文 | 保留可点击的原文链接,禁止脱离原文自由发挥 | 答案下方附"查看原文"按钮 |
B. 拒答规则(不答的时候)
原则:宁可拒答,不可硬编。拒答本身也是一种"负责任"的输出。
| 触发条件 | 系统动作 | 示例回复 |
|---|---|---|
| 超范围(知识库无覆盖) | 触发拒答:明确告知不覆盖 + 引导转人工 | "这个问题超出了我的知识范围,建议您咨询在线医生或挂号就诊。" |
| 不确定(多源严重冲突/置信度低) | 触发拒答:说明存在分歧 + 不下结论 | "关于这一点目前医学界尚无定论,我不能给您确定的建议,请咨询医生。" |
| 急重症(命中红旗症状) | 触发拒答 + 红旗拦截:立即引导就医/120 | "您描述的症状需要紧急处理,请立即就医或拨打 120。" |
| 越权类(开处方/给具体剂量/确诊) | 触发拒答:声明 AI 边界 + 转交医生 | "我不能为您开具处方或确诊,这需要医生面诊后判断。" |
落地方式:引用规则写进检索后处理 prompt,拒答规则做成硬编码的拦截器(在 LLM 生成前先判断),两条腿走路。
6RAGAS 4 个指标 · 一行命令
第三件事——怎么知道你的拒答规则真的有效?测。
开源工具 RAGAS,4 个指标,跑一遍就知道你的 RAG 健不健康:忠实度、相关度、上下文精确率、拒答率。一行命令出报告。
📄 资料包 ③ · RAGAS 评测脚本说明(4 指标 + 合格线)
RAGAS 是 RAG 系统的事实标准评测框架。下面 4 个指标构成最小可用评测闭环。
| 指标 | 含义 | 计算方式 | 合格线(医疗场景) |
|---|---|---|---|
| ① 忠实度 Faithfulness | 答案是否完全基于检索到的上下文,没有 LLM 自由发挥(防幻觉的核心指标) | 把答案拆成若干陈述句,逐句判断能否被上下文支持,支持句数 / 总句数 | ≥ 0.95(医疗红线,必须接近 1) |
| ② 相关度 Answer Relevancy | 答案是否切题,没有答非所问或堆砌无关信息 | 用 LLM 反向从答案生成可能问题,与原问题的语义相似度 | ≥ 0.80 |
| ③ 上下文精确率 Context Precision | 检索召回的上下文里,真正有用的占比(检索质量,防"召回一堆噪声") | 对每个召回片段判断是否对答案有贡献,有贡献数 / 召回总数 | ≥ 0.70 |
| ④ 拒答率 Refusal Rate | 本该拒答的样本里,系统确实拒答的比例(本期灵魂指标) | 在"应拒答"测试集上,正确拒答数 / 应拒答样本数 | ≥ 0.90(超范围问题必须拦得住) |
最小命令示例:ragas evaluate(dataset, metrics=[faithfulness, answer_relevancy, context_precision, refusal_rate])。每周/每次知识库更新后跑一次,4 个数字记进评测报告。
7拒答率,不是越低越好
讲一个反直觉的事——拒答率不是越低越好。
很多人觉得"拒答率低 = AI 能力强"。错。拒答率低,可能是它在硬编。
正确的理解是:该答的,拒答率要低(别误伤);该拒的,拒答率要高(别硬编)。所以要分两个测试集——一个测"该答的答对了没",一个测"该拒的拒住了没"。
8MedAIBox 就是这么做的
我不是在讲一个我没落地的方法。这套边界设计,是经过用户验证的。
9可控的 AI,才是医疗 AI
最后一句给所有做医疗 AI 的:
医疗场景里,AI 最大的价值不是"答得多",而是"知道自己答不了什么"。
把这句话写进你的简历和面试回答,分量立刻不一样。
10下一期:把信号变成产品
这一期讲的是"管住嘴"——让 AI 不乱说。
下一期 EP.114,我们讲"迈开腿"——怎么把 HRV、ECG 这些生理信号,做成一个能写进简历的睡眠健康筛查 demo。
从信号处理到临床语言,从论文能力到产品交付——既懂信号又懂临床的人极少,这就是你的差异化。
本期资料包 · 领取关键词:RAG评测
以上 3 份资料已内嵌本页(知识库三层分层模板 / 引用拒答规则表 / RAGAS 评测脚本说明),可直接阅读使用。
📥 获取可编辑版本:
小红书/B站搜索本期视频,评论区留「RAG评测」即可领取完整可编辑模板。
📌 本期配有演示文稿(横版 BlockFrame / 竖版 BoldPoster,键盘翻页)