从文档到可交互知识图谱:R2R 搭配 Neo4j Bloom 的五步上手
【免费下载链接】R2RSoTA production-ready AI retrieval system. Agentic Retrieval-Augmented Generation (RAG) with a RESTful API.项目地址: https://gitcode.com/GitHub_Trending/r2/R2R
R2R 是一个开源 RAG 系统,能从文档中提取实体和关系来构建知识图谱;搭配 Neo4j Bloom,你可以在浏览器里拖动节点查看实体间的连接,完成完整链路的知识图谱可视化。本文从一个实际痛点讲起,走完“一堆文档 → 一张可拖拽的图”的全过程。
文档越堆越多,关系没人看得清
假设你手里有 200 份产品手册、十几个版本的更新日志、几千行常见问题。客户问一句“模块 A 和模块 B 能不能一起用”,没人答得上来——答案散在不同文档里,谁也翻不出它们之间的关联。传统全文检索只能回答“哪页提到这两个词”,回答不了“这两个东西什么关系”。
知识图谱恰好补上这一环:把文档里的每个实体(人、产品、模块、概念)当作节点,把关系当作边。关系显形之后,跨文档的问题就变成查图的问题。R2R 负责从文档里自动抽出节点和边,Neo4j Bloom 负责把图渲染成可交互的界面。先把项目拿下来:
git clone https://gitcode.com/GitHub_Trending/r2/R2R三步拿到第一张知识图谱
整个流程就是三个动作:ingest(摄取)、extract(提取)、pull(拉入集合)。
第 1 步:把文档喂进去。上传 PDF、Markdown、HTML 等格式的文件,系统解析正文并为每份文档生成唯一 ID。Dashboard 的 Documents 页有一个 Ingestion 列,文件处理成功会标出绿色的 SUCCESS。
第 2 步:提取实体和关系。对文档 ID 发起 extract 请求,R2R 会调用后台配置的 LLM 识别文本中的关键实体和它们之间的关系。一篇千字文档一般能产出几十个实体,数量随模型而异。官方教程 docs/cookbooks/graphs.md 用短篇《麦琪的礼物》做了完整示例:原始提取约 120 条实体记录,去重后只剩 20 个不同实体——这就是下一步要做的事。
第 3 步:拉进集合图谱。R2R 里 Collection 是容器,一份文档可以属于多个集合,每个集合有自己的一张知识图谱。对集合执行 pull,就会把其中所有文档的提取结果合并进这张图。extract 和 pull 分开设计,意味着同一份文档的提取结果可以被多张图复用,不用重复跑提取。
图谱建好后:去重、社区与多跳查询
两个动作让图更好读。
一是去重。R2R 提供 deduplicate 接口,把同一实体被模型换着说法提取出的多个节点合并成一个,图上不会出现一堆近似节点。
二是构建社区。系统对全部实体和关系做聚类,把联系紧密的节点归为一组社区,每组由一个更高层的主题概括。面对几百个节点时,先看社区的大结构、再放大看细节,比逐个找节点高效得多。
图建好之后,检索也能用上它:在 retrieval.search 里打开 graph 设置,问“谁最初拥有什么、最后送出了什么”这类需要跨文档串起来的多跳问题,系统会结合图上的路径作答,而不只是拼凑相似段落。
用 Neo4j Bloom 打开你的知识图谱
Bloom 是 Neo4j 的浏览器可视化客户端,接入分三步:
- 起一个 Neo4j 实例(本地安装或容器部署均可),记下 Bolt 地址与账号密码。
- 在 R2R 的连接参数里配置 Neo4j 地址,把提取出的实体和关系写入图数据库。
- 浏览器打开 Bloom 端口、用同一账号登录。单击节点看它直接连着的实体,拖拽平移、滚轮缩放,在搜索框输入实体名可直达对应节点。
分工很明确:R2R 管数据侧——提取、去重、社区、检索;Bloom 管呈现侧——布局、交互、查询。哪天想换别的可视化工具,只需替换呈现层,数据链路不用动。
落地前想清楚的两点
第一,别把什么都塞进一个集合。集合的描述会参与建图过程,主题混得越杂,社区聚类越容易失真。按主题拆,比如“产品手册”“版本日志”各建一个集合。
第二,实体数量对模型敏感。小模型提取得少且不全,大模型更完整但慢、更贵。建议先用一份文档跑通“提取 → 去重 → 拉入集合”整条链路,在 Bloom 里检查节点和边的质量,确认合理后再批量处理。
小结
R2R 解决“图从文档里来”,Neo4j Bloom 解决“图怎么看得见”。跑通 ingest、extract、pull 三步,任何一堆文档都能变成一张可拖拽、可搜索的知识图谱。
【免费下载链接】R2RSoTA production-ready AI retrieval system. Agentic Retrieval-Augmented Generation (RAG) with a RESTful API.项目地址: https://gitcode.com/GitHub_Trending/r2/R2R
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考