news 2026/9/7 14:05:45

WeKnora 知识图谱:把文档实体关系和 RAG 检索链路变成看得见的图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WeKnora 知识图谱:把文档实体关系和 RAG 检索链路变成看得见的图

WeKnora 知识图谱:把文档实体关系和 RAG 检索链路变成看得见的图

【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora

你往知识库传了几百页产品手册,模型答得头头是道,但同事追问"这个结论依据哪条条款"时,你只能回翻原文慢慢找。WeKnora 的做法是把两样东西直接画出来:实体之间连成什么网,答案又是怎么一步步检索出来的。

WeKnora 是什么:一个把文档变成可查询知识的开源平台

WeKnora 是一个自托管的 LLM 知识平台,核心思路是把原始文档加工成三层能力:基于 RAG 的快速问答、能自主编排检索与 MCP 工具的 ReAct Agent,以及让 Agent 自动蒸馏文档、自我维护的 Wiki 模式。你上传的每一份文档都会被解析、切分、建索引,后续无论是提问、图谱查询还是 Wiki 页面生成,都建立在这套索引之上。

整体架构分四层:接入层(Web 前端、Go SDK、IM 集成)、REST API 服务、核心服务(文档处理、向量检索、LLM 推理、会话管理),以及底层的 OCR、Embedding、向量存储与 PostgreSQL。

知识图谱:散落文档里的实体是怎么连成网的

你遇到的问题:纯关键词检索只认字面,"退款规则"和"退货政策"字面上完全不同,但讲的都是同一件事。文档里的语义关联靠人脑串,串到第三页就断了。

它的处理:构建逻辑在图谱构建模块里。文档切分成 chunk 后,LLM 从每个 chunk 里抽取实体(带标题、描述、出现频次),再抽取实体间的有向关系并给出强度分。每条边的权重不是拍脑袋给的,而是点互信息(PMI)和关系强度按PMIWeight=0.6StrengthWeight=0.4的配比归一化后加权得出;实体不直接相连、只隔了一跳的关系,权重再按IndirectRelationWeightDecay=0.5衰减,避免"弱关联"被误当成强关联。

你看到的效果:在知识库的"图谱"标签页,节点大小对应实体出现频次,边的粗细对应关系权重。以电商文档为例,"优惠券"节点会同时连着"订单状态"和"退款规则",点开节点右侧面板直接显示它的描述和涉及的文档片段,不用回原文搜索。

检索链路:答案怎么来的,每一步都有痕迹

你遇到的问题:RAG 系统最容易挨问的一句话是"为什么得到这个答案"。只给结果不给过程,答案的可信度就靠模型自觉。

它的处理:检索走混合策略,BM25 稀疏检索管字面命中,向量检索管语义相近,两路结果合并后再经过重排。检索引擎的详细配置(父子切分、GraphRAG、HNSW 加速的 pgvector 等)见检索引擎文档。

你看到的效果:问答界面会按步骤展示"已完成问题理解 → 检索中知识库 → 找到 N 个结果 → 完成",并在答案上方标注"检索完成、引用了 1 篇文档"。答案里的引用可以直接点开跳到对应文档和分块,审一遍就知道模型有没有读偏。

Wiki 模式:图谱不只看,还能改和回滚

除了即时检索,WeKnora 的 Wiki 模式让 Agent 把原始文档蒸馏成互相链接的 Markdown 页面,自动组织成分层目录。关键点是这个知识图谱产物是"可运维"的:每页都有版本快照,支持行级 diff 和一键回滚,也可以直接在浏览器里手动编辑。Agent 生成错了,改回来即可,不用重新灌库。

从克隆到看见第一张图的最短路径

  1. git clone https://gitcode.com/GitHub_Trending/we/WeKnora拉下仓库,在.env里配好 LLM 和 Embedding 模型(名称、维度、Base URL)。
  2. 启动服务并带上图谱组件:
docker compose pull docker compose --profile neo4j up -d
  1. 打开http://localhost,进入知识库设置页启用实体和关系提取,上传一份文档,等后台跑完抽取。
  2. 在知识库的"图谱"标签页查看自动生成的实体关系图,或者登录http://localhost:7474执行match (n) return (n)从 Neo4j 侧核对。
  3. 回到对话页提一个跨文档的问题,对照上方展示的检索步骤和引用分块,验证检索链路。

两个容易踩的坑

📌图谱不是默认开启的:Neo4j 是 compose 的独立 profile,不显式带--profile neo4j起服务,.envNEO4J_ENABLE=true配了也不会生效。启动后记得用NEO4J_URI=bolt://neo4j:7687这个默认地址核对连接。

💡图谱"脏了"先查并发和批处理参数:实体抽取默认MaxConcurrentEntityExtractions=4并发、关系抽取按DefaultRelationBatchSize=5分批,LLM 负载高时抽取质量会波动。如果某条边的权重明显偏低,优先怀疑是 PMI 样本量不足(出现次数少),而不是边本身没连对——衰减系数会再打五折。另外上传后文档一直卡在解析不动,多半是 Embedding 模型没配全,常见问题文档第 3 节有完整排查清单。

下一步想深入的话,建议从 Wiki 模式文档 开始看 Agent 是怎么组织页面链接的,再配合 MCP Server 说明 把这套检索和图谱能力接到你自己的应用里。

【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 14:04:54

从零到一构建AI Agent:学习路径、框架选型与工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 14:03:49

ComfyUI视频超分实战:BSAI-H3-upscale-4K实现4K高清放大与面部修复

视频生成做完之后,真正让人头疼的往往不是“能不能生成”,而是“怎么把画质顶上去”。尤其是人物面部、文字边缘、细节纹理这些区域,一旦被过度压缩,整个视频的质感就垮掉了。传统做法是把帧序列抽出来,一张张图做超分…

作者头像 李华
网站建设 2026/9/7 14:01:02

嵌入式系统STM32高效复习与环境搭建工具包

每到期末,嵌入式系统这门课都是“重灾区”。我见过太多学生,平时实验也能跑通,一到考试就懵:CPU、中断、定时器、串口、GPIO……概念一堆、寄存器一堆、代码一堆,根本不知道从哪下手复习。更扎心的是,很多人…

作者头像 李华