RAG 引用格式避坑:角标、链接与「看似有出处」的幻觉
有引用不等于说得对:格式不严时,模型会 invent 角标,或把 A 文档的句子标成 B。 引用规范要写进系统约束,并在后处理做校验。
常见失败样子
- 文中出现
[3],但检索结果只有 2 条。 - 链接能打开,内容与引用句无关。
- 多段拼接后只标一个来源,读者无法核对。
避坑清单
- 只允许引用本次检索返回的
doc_id,禁止自由书名号。 - 一句一源优先;必须综合时明确「综合 doc_a、doc_b」。
- 回答前自检:每个角标都能映射到片段列表。
- 无检索命中时:回答「未找到依据」,而不是硬写参考文献。
- UI 层二次校验:点击角标应高亮对应片段,对不上则隐藏该标。
系统提示片段(示意)
你只能使用检索结果列表中的 doc_id 作为引用。
引用格式:【doc_id】。若列表为空,明确说明没有依据,不要编造来源。
不要输出检索列表以外的书名、论文名或网址。
测试怎么做
- 故意检索空结果,看是否仍输出参考文献。
- 交换两段片段的 id,看模型是否跟着错标(应用层应挡住)。
- 人工抽查 20 条:句 ↔ 片段是否同义。
和产品文案的关系
对用户说「AI 生成,请核对原文」比假装「权威引用」更安全。内部日志保留 doc_id 与片段哈希,便于追责。
落地检查
在 CI 或发布检查里加一条:回答中的每个角标都能在本次检索列表找到。前端点击角标无高亮则隐藏该标并记日志。定期抽查「综合多篇」的句子是否真的需要综合,还是模型图省事。对空检索集做回归测试,防止某次提示词改动又开始假引用。
对外产品文案写清「请核对原文」,比暗示权威背书更稳妥。
相关阅读:过期文档失效、JSON 修复教程,更多见 AI 技能分类。
写完模板后,建议在真实场景试运行一次,把含糊句子改成你们行话,并删掉任何模型编造的数字、法规条款号或保证措辞。把终版存入共享文档并注明适用日期,避免同事继续使用过期口径。
写完模板后,建议在真实场景试运行一次,把含糊句子改成你们行话,并删掉任何模型编造的数字、法规条款号或保证措辞。把终版存入共享文档并注明适用日期,避免同事继续使用过期口径。
写完模板后,建议在真实场景试运行一次,把含糊句子改成你们行话,并删掉任何模型编造的数字、法规条款号或保证措辞。把终版存入共享文档并注明适用日期,避免同事继续使用过期口径。
写完模板后,建议在真实场景试运行一次,把含糊句子改成你们行话,并删掉任何模型编造的数字、法规条款号或保证措辞。把终版存入共享文档并注明适用日期,避免同事继续使用过期口径。