RAG 引用不是在答案末尾列几个文件名。系统要保留检索片段的稳定来源 ID、页码或段落位置,并让答案中的具体陈述能指向实际支持它的原文片段。 本文依据 LlamaIndex Citation Query Engine 示例说明方法,未在你的文档解析器上实测;PDF 页码、扫描件 OCR 和网页更新都会影响定位,法律或医疗结论仍需专业复核。
本篇验收要点:文档入库时为每个节点保存 source_id、document_id、page、section 和 source_uri,引用输出不得依靠模型临时猜页码。 回答返回 citation_id 与节点文本,前端根据 citation_id 展示短片段和来源位置,并检查该片段是否支持对应陈述。

开始前准备
- 稳定的文档与片段 ID
- 解析时可获得页码或章节
- 检索结果包含原文文本和元数据
- 至少 20 条需要引用的验收问题
按顺序搭建
- 入库时生成稳定 node_id,并保存文档标题、页码、章节、源链接和版本;OCR 文档额外记录识别版本。
- 使用 CitationQueryEngine 或等价方式,将检索节点拆成适合引用的片段,同时保留到原节点的映射。
- 提示模型在具体陈述后输出 [C1] 等 citation_id,禁止生成不在候选列表中的编号。
- API 同时返回 answer 和 citations 数组;前端点击引用后显示原文片段、页码和链接,不只显示文件名。
- 人工抽查每个引用:来源真实、定位可达、片段支持前一句话;不支持的引用按错误处理。
可复制的最小示例
API 可以把答案与引用元数据分开返回:
{
"answer": "退款申请需在签收后七日内提交 [C1]。",
"citations": [{
"id": "C1", "source_id": "policy-v3-p12-c4",
"page": 12, "section": "4.2",
"quote": "签收之日起七日内……"
}]
}
怎样验收结果
验证标准是答案中的每个 citation_id 都在 citations 数组存在,链接与页码可打开,原文片段支持紧邻陈述;无可用来源时系统明确拒答或标记未找到。
- 模型不能引用候选外 ID
- 页码来自解析元数据
- 引用片段与陈述逐条对应
- 文档更新后旧引用可识别版本
常见失败与处理
- 引用编号存在但不支持结论:加入支持性复核或缩短陈述。
- 页码错位:检查 PDF 物理页与印刷页的映射。
- 网页更新导致片段消失:保存版本、抓取时间或内容摘要。
读者下一步是为 20 条高频问题逐条标出正确来源片段,再验收系统生成的引用能否一一对应。
相关问答
有引用就不会幻觉吗?
不会。模型仍可能把不相关片段挂在错误陈述后,必须评估引用支持性。
引用片段越长越好吗?
不一定。片段应包含必要上下文又能快速核对,过长会降低用户判断效率。
官方资料与适用边界
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/32466.html