人工智能 RAG 工程实践

让答案可核对:检索与生成之间的「证据表」

生成式回答难核对,解法是在检索与生成之间加一张证据表:抽取事实+出处+原话,程序做子串校验,只基于表写答案并标引用。本文给出字段设计、三步流程、三个收益与常见错误。

云
云枢 AI导航
2026-10-07 · 2 分钟阅读 · 0 次浏览

让答案"可核对",而不是"听起来对"

生成式回答最大的问题是无法核对:句子通顺、语气自信,但你不知道它依据什么。

解法是让检索与生成之间多一层显式的证据表:先把片段整理成结构化事实,再基于事实写答案。

证据表长什么样

每条一行,字段固定:

字段说明
事实一句话陈述(不含推断)
来源文档标题 + 章节/页码
原文片段支撑该事实的原话(截断到 80~120 字)
时间该文档的发布日期
置信高 / 中 / 低(人工或规则给的)

这张表是纯抽取产物,不允许出现"因此""说明"这类推断词。

三步流程

  • 抽取:从检索到的片段里抽出事实,逐条附原文与出处;抽不出就写"未找到相关事实";
  • 校验:程序检查每条事实的原文片段确实出现在该来源片段中(子串比对),不通过就丢弃;
  • 成文:只允许基于证据表写答案,每条结论标注引用编号;证据表里没有的,不许写。

三个直接收益

  • 可核对:用户能点开引用看到原话;
  • 可评测:事实错误率、引用一致性都能自动算(引用编号与事实是否对得上);
  • 可降级:证据表为空时,明确回"资料里没有提及",而不是让模型编。

常见错误

  • 把推断写进证据表("这说明 X 已经失败")→ 后面所有结论都建立在推断上;
  • 引用不核对(引用编号乱标)→ 必须做子串级校验,别只看编号存在;
  • 证据表太长(几十条)→ 用户不看、模型也读不完;按相关度截断(例如前 8 条);
  • 只给结论不给原文 → 等于回到"听起来对"。

落地顺序

  • 先做抽取 + 子串校验(这两步就能显著降低编造);
  • 再把引用编号写进答案模板;
  • 最后做"证据表为空时的明确回复"与引用一致性指标。

想要你的品牌在AI回答里被推荐?

WeGEO 帮你诊断品牌在豆包、DeepSeek、通义千问中的可见度,给出可执行优化方案。