RAG应用的拒答能力:让AI学会说'我不知道'

RAG应用需学会在文档不支持时明确拒答,这是建立用户信任的基础能力。
本文记录了一位开发者在90天AI挑战第一天,为RAG应用构建"拒答能力"的实践。核心问题是:当文档不包含答案时,如何让AI明确说"我不知道",而非自信地编造。文章指出,RAG检索器总能返回"看起来相关"的段落,但语义相似不等于答案有支撑,这是幻觉的常见路径。解决方案包括约束式提示、来源引用和证据不足时的兜底回复,并将拒答定义为合法输出。作者设计了可回答、相关但无支撑、无关三类测试问题,从答案正确性、引用质量、拒答准确性和过度拒答四个维度评估。文章还警示两个陷阱:有效引用ID不等于答案正确,检索分数阈值不能假设通用有效。最终强调,判断"自己不知道什么"是文档型AI的基础能力。
RAG应用的拒答能力:让AI学会说"我不知道"

让AI应用回答问题很令人兴奋,但让它识别出文档中不包含答案——这才是更有趣的挑战。
一位开发者在90天AI挑战的第一天,选择了一个看似简单却极为关键的问题作为起点:如何让RAG应用避免回答其来源文档无法支撑的问题?
这个问题的本质,是给AI系统装上"知之为知之,不知为不知"的判断力。
问题场景:当AI自信地编造答案
设想你上传了一份公司休假政策文档,然后提问:"员工每年有多少天年假?"
如果政策文档包含这个信息,应用应当给出答案并展示支撑段落。但如果换一个问题:"公司是否报销国际差旅费用?"——而文档对此只字未提,应用就应该明确说明无法在提供的材料中找到答案。
这听起来理所当然,但实际中却容易被忽视。一个自信的猜测很可能被用户误认为公司政策。在基于文档的AI应用中,无支撑回答的风险远高于拒绝回答。用户依赖这些系统获取准确信息,而非看似合理的虚构内容。
为什么RAG本身无法解决这个问题
检索增强生成(RAG)的工作方式是:检索相关内容,传递给语言模型辅助回答。流程看似完整,但存在一个根本性缺陷。
最匹配的段落,并不一定是能回答问题的段落。
搜索引擎在信息缺失时仍然能返回结果——这是检索机制的天性。检索是有用的起点,但它不保证答案有据可依。语义相似度高的段落可能只是在主题上相关,实际上并未包含问题所需的答案。
这正是RAG应用产生幻觉的常见路径:检索器找到"看起来相关"的内容,语言模型基于这些内容"合理推断"出一个答案,而这个答案在原始文档中并无支撑。
什么是语义相似度检索的固有局限?
大多数RAG系统使用向量嵌入(embedding)进行检索,即将文本转换为高维向量,通过计算余弦相似度等度量找到与问题"最接近"的段落。这种方法的根本假设是:语义上接近的文本包含问题的答案。但事实上,语义相似度衡量的是主题相关性,而非答案蕴含性(entailment)。一个段落可能讨论的是同一主题、使用相似术语,却缺少回答问题所需的具体事实。例如,问题问"年假天数",检索到的段落可能在讨论"年假申请流程"——主题高度相关,但不含答案。这种"相关但不充分"的检索结果,正是诱发语言模型进行无根据推断的直接原因。
Day 1的实现方案:小步验证
这位开发者的第一天方案刻意保持精简,核心流程包含五个步骤:
- 加载简短文档并切分为段落
- 针对问题检索相关段落
- 要求模型仅使用这些段落回答
- 要求答案附带来源引用
- 当段落证据不足时返回明确的兜底回复
兜底回复可以很简单:"我无法在提供的文档中找到该信息。"
关键在于——让这种回复成为一种合法且被期待的输出结果,而非系统失败的表现。许多RAG应用的误区在于,将"拒答"视为异常情况,导致模型在证据不足时仍倾向于给出一个答案。
关于"仅使用这些段落回答"的提示工程原理
要求模型"仅使用提供的段落回答"属于一种约束式提示(grounded prompting)。其核心机制是:在系统提示或用户提示中明确限定模型的知识边界,将模型的角色从"通用助手"转变为"文档阅读器"。配合来源引用要求,这一策略实际上构建了一个可验证的闭环——模型不仅要给出答案,还要指出答案来自哪一段文字,使得用户可以独立核实。值得注意的是,指令遵循能力因模型而异:部分模型在段落不足时仍会"补充常识",因此需要在提示中显式定义证据不足时的兜底回复格式,将其从"失败"重新定义为"正确行为"。
三类测试问题:暴露系统的真实能力
为了验证方案效果,这位开发者设计了三类测试问题:
- 可回答类:文档直接包含答案
- 相关但无支撑类:问题与文档主题相关,但答案缺失
- 无关类:问题超出文档范围
其中第二类最具挑战性。一段文字可以在表面上看起来相关,却仍然无法支撑一个具体答案。这类情况最能暴露RAG系统的"过度自信"倾向。
每个回答需要从四个维度检查:
- 答案是否正确
- 引用的段落是否真正支撑该答案
- 证据缺失时应用是否拒绝回答
- 应用是否不必要地拒绝了本可回答的问题
最后一点同样重要——过度谨慎的RAG应用会削弱实用性。在某些场景下,用户宁愿得到一个带保留的回答,也不愿面对一刀切的拒答。
两个需要警惕的陷阱
这位开发者特别指出了两个容易被忽视的问题。
有效引用ID不等于答案正确。 引用ID只能证明被引段落存在,不能证明该段落支撑了答案中的主张。验证引用质量需要检查引用段落的内容是否真正支撑对应的声明。
检索分数阈值不能假设通用有效。 选择一个分数截断值并假设它在所有场景下都适用,是一种危险的简化。任何阈值都需要用实际文档和检索方法进行测试验证。不同文档的结构、术语分布、检索器的特性都会影响阈值的有效性。
检索分数阈值的本质与风险
向量检索通常会返回一个相似度分数(如余弦相似度),开发者常试图设定一个阈值来过滤低质量结果。但阈值的绝对值高度依赖具体条件:嵌入模型的类型(如不同厂商的嵌入模型分数分布差异显著)、文档的长度与切分粒度、查询的表述方式等。一个在短问答数据集上表现良好的阈值,迁移到长技术文档上可能完全失效。更稳妥的做法是结合相对排序(如只保留前K个结果中分数显著高于其余的段落)与验证式判断(让模型判断段落是否真正支撑答案),而非依赖单一静态阈值。
为什么这个基础能力值得优先构建
第一天只做一件事:建立小型基线,观察它在哪些地方失败,并在增加复杂度之前记录结果。
选择从这里开始,是因为"知道何时停止回答"是文档型AI应用的基础能力。如果系统无法判断自己不知道什么,那么它给出的所有答案都值得怀疑。
如果你也在构建RAG应用,不妨试试提一个"听起来相关但答案故意缺失"的问题——你的应用注意到了吗?
这个测试的价值在于:它直接检验了系统的诚实度。而诚实度,恰恰是用户信任的基石。
相关推荐

3分钟看懂DeepSeek:从量化私募到开源AI领跑者的崛起之路
3分钟看懂DeepSeek发展史:从幻方量化的算力积累,到V2的MLA推理降本、V3的557.6万美元训练账单、R1开源引爆全球,再到V4与70亿美元A轮融资,梳理深度求索的关键节点与技术路线。

本地文学创作模型PK:Qwen3.8 27B微调版胜出,DeepSeek v4.1表现平淡
B站UP主横向测评七款本地文学创作模型:海明威、HumanLike Chat基于Qwen3.8 27B微调表现最佳,DeepSeek v4.1叙事平淡,东方朔角色混乱垫底。附三道测试题评分与使用建议。

梁文锋的三次豪赌:DeepSeek为何将82%毛利开源?
DeepSeek为何把82%毛利的推理框架DeepInfer开源,又启动千亿融资?从技术路线、国产芯片到组织纯粹性,解析梁文锋的三次豪赌与开源战略背后的商业与理想逻辑。