Appearance
L02-11 引用与拒答:让 AI 敢说「我不知道」
全局中心内容:可信度来自「可溯源」和「会拒答」,这两件事必须显式设计,模型不会自己做。 全局讲解主线:幻觉翻车 → 为什么模型爱编 → 引用机制 → 拒答设计 → 编码 → 话术 → 验收。
P1 · 产出页
中心内容:答案带 [1][2] 角标 + 来源面板 + 无依据时明确拒答。
- 讲解技巧
- 开场展示一个编得很像真的答案,让学员判断真假——大概率会被骗到。这个体验比讲道理有力。
- 时长:20s
P2 · 为什么会编
中心内容:语言模型的目标是「生成流畅的下文」,不是「只说我知道的」。
- 讲解技巧
- 用一句精准的话:模型不知道自己知道什么。它没有任何机制判断某句话是不是记忆里的。
- 因此「只根据资料回答」这种 Prompt 只是降低概率,不是保障。
- 时长:4min
P3 · 引用机制设计
中心内容:给每个片段编号,要求模型在句末标注编号。
页面内容:Prompt 片段模板 + 输出示例
讲解技巧
- 讲清一个关键细节:编号要在拼装 Prompt 时生成,并在精排之后固定,否则顺序变了引用就错乱。
- 提醒:要求「每个结论至少有一个编号」,比笼统说「请标注来源」效果好得多。
时长:6min
P4 · 引用校验
中心内容:模型编的引用编号要程序校验,不能照单全收。
页面内容:校验器实现(提取 [n]、越界检测、无引用句子检测)
讲解技巧
- 这是工程保障的关键:模型经常标 [3] 但只有 2 个片段,或者整段没有引用。
- 处理方式:越界直接标记可疑;无引用的句子降级为「仅供参考」或重新生成。
时长:6min
P5 · 拒答设计
中心内容:拒答要有独立的判定路径,不能只靠模型自觉。
页面内容:三重判定(无命中 / 相似度低于阈值 / 模型输出拒答标记)
讲解技巧
- 强调「无命中直接拒答」这一条要硬编码,不要问模型。省一次调用,且 100% 可靠。
- 讲拒答标记的做法:给模型一个
INSUFFICIENT_CONTEXT输出选项,识别后走拒答分支。
时长:5min
P6 · 拒答话术
中心内容:拒答不是回「不知道」,要给出下一步。
页面内容:三种话术(无资料 / 资料不足 / 建议转人工)
讲解技巧
- 给产品视角的建议:好的拒答要降低用户的挫败感——说明原因、给替代路径、给转人工入口。
- 反面例子:「抱歉,我无法回答这个问题。」——用户只会觉得这系统没用。
时长:4min
P7 · 编码:答案封装
中心内容:Answer 对象同时携带文本、引用列表、置信度标记。
页面内容:Answer/Citation record;前端渲染所需的字段
讲解技巧
- 讲清后端要返回结构化引用,而不是让前端从文本里正则抠角标。
- 提醒:引用要带
sourceId + titlePath + 片段内容,前端 hover 时才展示得出来。
时长:5min
P8 · 验收标准
中心内容:用一组「应该拒答」的用例来验收。
页面内容:故意问库外问题 / 问近似但不存在的内容
讲解技巧
- 这是最容易被忽略的测试:团队通常只测「答得对」,不测「该拒的时候拒」。
- 给指标建议:拒答准确率单独统计,目标 90%+。
时长:4min
P9 · 避坑与小结
中心内容:引用和拒答一起做,缺一个都不完整。
- 讲解技巧
- 引出下一节:如果库里有多个租户的资料,怎么保证不串?——02-12 元数据过滤与隔离。
- 时长:2min
讲师备忘
| 项 | 内容 |
|---|---|
| 课前必做 | 准备一个「像真的一样」的幻觉答案样例;准备 5 条应拒答用例 |
| 最容易超时处 | P4 校验器代码,容易被追问解析细节 |
| 学员最常问 | 「加了引用就不会幻觉了吗?」答:显著降低但不消除,仍需校验器兜底 |
| 现场备用 | 无网络 → 用预录的输出样例讲解 |