☰
如何追溯RAG答案的每一步来源:EdgeQuake知识图谱谱系与引用追踪完整指南
2026/10/9 0:31:20 网站建设 项目流程

如何追溯RAG答案的每一步来源:EdgeQuake知识图谱谱系与引用追踪完整指南

【免费下载链接】edgequakeEdegQuake 🌋 High-performance GraphRAG inspired from LightRag written in Rust; Transform documents into intelligent knowledge graphs for superior retrieval and generation项目地址: https://gitcode.com/gh_mirrors/ed/edgequake

EdgeQuake 是一个用 Rust 编写的高性能 GraphRAG 框架,它把文档转换成智能知识图谱,用于更优的检索与生成。与"只给一段答案"的传统 RAG 不同,EdgeQuake 内置完整的**谱系追踪(Lineage Tracking)**系统:每一条答案背后的实体、关系、文本块,都可以一步步回溯到源文档、源文件甚至具体的行号,让引用追踪(Citation Tracing)真正可审计、可复现。本文是一份面向新手的完整指南,教你读懂这条"从 PDF 到答案"的来源链条,并掌握 3 种最实用的溯源方法。

为什么 RAG 答案需要"来源追溯"?

想象你问系统:"Sarah Chen 的研究方向是什么?"模型回答后,你最关心的往往不是答案本身,而是:

  • 📄 这句话来自哪份文档?
  • 🔍 具体在文档的哪个位置?
  • 🤖 提取这个实体时,用的是哪个 LLM 模型?

普通 RAG 框架经常在这里"失守":答案里的页码、文档名可能是模型"编"出来的,点进去也打不开正确的页面。EdgeQuake 的做法是:在数据入库时就为每一层知识打上来源标记,答案里的每个引用都能验证,而不是事后猜。

谱系追踪的原理:一条五层来源链

EdgeQuake 在摄入文档时,会把整条链路逐级记录。核心结构如下(详细定义见 lineage-tracking.md):

层级记录了什么(来源元数据)
📦PDF / 源文件文件名、大小、SHA256 校验和、页数
📄Document(文档)文档类型、使用的 LLM 与 Embedding 模型、处理时间
✂️Chunk(文本块)在文档中的起始/结束行号、字符偏移、Token 数
🧩Entity(实体)来自哪些 chunk、来自哪些源文档
🔗Relationship(关系)关系两端的实体 + 来源 chunk

整条链的不变式很严格:每个 chunk 必须能指回父文档,每个实体必须至少引用一个来源 chunk——这正是"每个答案都能追溯"的底层保证。

这些结构体在源码中都有清晰定义,例如 chunk 上的行号字段(start_line/end_line)与模型字段:

  • 文档类型定义:document.rs
  • 文本块类型定义:chunk.rs
  • 谱系数据结构DocumentLineage:lineage.rs

实战一:从一个实体反向追到源文档

这是最常见的场景:你在知识图谱里看到一个实体(比如QUANTUM_COMPUTING),想知道它到底出现在哪些文档里。

步骤 1:调用实体溯源端点。只需一条请求,就能拿到该实体所有来源文档与 chunk:

curl http://localhost:8080/api/v1/entities/QUANTUM_COMPUTING/provenance \ -H "X-Workspace-ID: default" | jq

返回结果会告诉你:这个实体被提取了几次、来自哪些文档、每个文档里的哪些 chunk(附行号),以及与之相关的其他实体。

步骤 2:钻进具体 chunk 看原文。拿到chunk_id后查询 chunk 详情,即可看到原始文本、字符范围和其中提取出的全部实体与关系。

步骤 3:一次调用拿全链路。chunk 的 lineage 端点会一次性返回父文档信息、行号区间、使用的 LLM/Embedding 模型、实体清单——单次请求,完整链条,无 N+1 查询(典型文档 P95 延迟 < 200ms)。

完整的分步教程(含 curl / Python / TypeScript / Rust 四种方式)见官方示例:tracing-entity-sources.md。

实战二:从文档正向看"它贡献了哪些知识"

反过来,你上传了一份 PDF,想知道系统从中提取了什么。调用文档谱系端点:

curl http://localhost:8080/api/v1/documents/{document_id}/lineage | jq

一次返回完整的谱系树:全部 chunk(含行号、Token 数、内容预览)+ 全部实体(含类型和来源 chunk 列表)。配套的metadata端点则返回扁平的元数据:文件哈希、页数、处理模型等,方便做审计比对。

实战三:在 WebUI 里点点鼠标完成溯源

不想敲命令?EdgeQuake 的 Web 界面把谱系能力做成了可视化面板:

  1. 文档页侧边栏(Metadata Sidebar):打开任意文档,右侧面板有三块——扩展元数据(全部 KV 字段)、数据层级树(Document → Chunks → Entities,可折叠展开)、来源信息(类型、页数、校验和、文件大小)。
  2. 谱系浏览器(Lineage Explorer):选择文档后,可以浏览实体图谱并对每个实体点击查看其来源 provenance。
  3. 知识图谱页:点击任意实体节点,直接记下实体名,就能去调溯源接口。

谱系能力如何支撑"可信引用"

EdgeQuake 的查询引擎支持 6 种模式(naive/local/global/hybrid/mix/bypass,默认mix)。无论哪种模式,检索到的 chunk 都携带着上文那条来源链——答案中的每个引用条目,都可以经由实体 → chunk → 行号 → 文档 → 源 PDF一路验证。

对于带图表的 PDF,谱系还覆盖了多模态资产:视觉转换生成的页面截图会以assets/page-0001.png的形式挂载到文档上,chunk 中引用的图片同样能通过pdf_id+ 资产路径回溯到具体 PDF 页。

常见应用场景速查

你的需求用哪个端点
这个实体出现在哪些文档里?GET /entities/{id}/provenance
这份文档提取了哪些实体和关系?GET /lineage/documents/{id}
某个 chunk 的完整来源链?GET /chunks/{id}/lineage
文档的哈希、页数、模型等元数据?GET /documents/{id}/metadata
整棵谱系树(chunk + 实体)?GET /documents/{id}/lineage

典型落地场景:合规审计(回答必须可举证)、质量对比(同一文档换模型提取后 diff 实体差异)、故障定位(管道哪一步出错一目了然)、多文档冲突排查(同一事实在多份文档中的不同表述)。

总结

EdgeQuake 的谱系与引用追踪体系可以概括为一句话:知识图谱里的每个节点都记得自己从哪里来。五层来源链(PDF → Document → Chunk → Entity → Relationship)在摄入时自动打标,配合 provenance / lineage / metadata 三组 API 和 WebUI 可视化面板,让你既能正向审查"文档变成了什么",也能反向验证"答案来自哪里"——这正是把 RAG 从"黑盒问答"升级为"可审计知识系统"的关键一步。

📚 延伸阅读:

  • 谱系架构设计:docs/architecture/lineage-tracking.md
  • 谱系 API 完整参考:docs/api-reference/lineage-endpoints.md
  • 实体溯源分步教程:docs/tutorials/tracing-entity-sources.md

【免费下载链接】edgequakeEdegQuake 🌋 High-performance GraphRAG inspired from LightRag written in Rust; Transform documents into intelligent knowledge graphs for superior retrieval and generation项目地址: https://gitcode.com/gh_mirrors/ed/edgequake

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询