graphrag-workbench
微软GraphRAG的3D可视化工作台,拖拽PDF即可构建知识图谱并沉浸式探索实体关联
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
微软GraphRAG的3D可视化工作台,拖拽PDF即可构建知识图谱并沉浸式探索实体关联
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2025年秋天,美国一家医疗AI初创公司的数据科学团队遇到了一个头疼的问题:他们积累了三年的临床文献、影像报告和诊疗指南,加起来超过两万份PDF文档,散落在不同的文件夹里。当研究员试图回答一个看似简单的问题——"最近一年关于肺癌免疫疗法的研究进展有哪些"——团队成员需要花上整整两天时间,人工检索、比对、汇总。
团队里一位刚从微软GraphRAG团队跳槽过来的工程师提出了一个大胆的想法:为什么不把这些文档喂给一个能够理解知识关联的AI系统?三个月后,基于GraphRAG构建的知识图谱成功上线。研究员们惊讶地发现,那个需要两天才能回答的问题,现在只需要点击几下鼠标,在3D图谱里拖动几下滚轮就能找到答案——不仅是结果,还包括知识点之间的关联路径。
这个场景,正是 GraphRAG Workbench 诞生的背景与使命。
要理解 GraphRAG Workbench,首先要理解它背后的 GraphRAG 框架。
传统 RAG(检索增强生成)的核心思想是:当用户提问时,从海量文档中检索出最相关的片段,然后把这些片段作为上下文喂给大语言模型生成答案。这种方式在简单的事实查询上效果不错,但当问题涉及"跨文档的关联推理"时,问题就来了——RAG 只能找到"文本相似"的内容,却无法理解知识点之间的深层关系。
GraphRAG 则另辟蹊径:它不只做文档检索,而是先用大语言模型从原始文档中提取实体(如人物、机构、事件、地点)和实体之间的关系,构建一张"知识图谱";然后在图谱上做社区检测(community detection),将相关的知识点聚合成层次化的社区;最后,当用户提问时,RAG 不只检索文档片段,还会从相关社区中提取图谱上下文,让大模型"看到"知识点之间的连接关系,而不仅仅是文字上的相似性。
GraphRAG 最初由微软研究院于2024年提出,是微软在 RAG 领域最具影响力的研究成果之一,被广泛应用于复杂问答、报告生成、关系推理等场景。
GraphRAG 的强大毋庸置疑,但原生的 GraphRAG 工具链是纯命令行的——需要手写配置、敲命令、查看日志,对非技术用户极不友好。
GraphRAG Workbench 的核心贡献,就是为 GraphRAG 提供了一套现代化的 Web 前端,让用户可以在浏览器里完成从文档上传到图谱探索的全流程,而不需要写一行代码。
用户只需把 PDF 文件拖进 Corpus Panel(语料面板),点击"Run Index",系统就会自动调用 GraphRAG Python 引擎完成以下步骤:
整个过程实时展示日志,用户可以清楚看到每一个节点和边的生成进度。
索引完成后,GraphRAG Workbench 最惊艳的部分登场——3D 沉浸式知识图谱可视化。
这是整个项目最具技术含量的模块,基于 React Three Fiber(Three.js 的 React 封装)实现。技术细节值得深入了解:
力导向布局(Force-Directed Layout):图谱中的节点并非固定位置,而是通过物理模拟自动排列——相互关联的节点互相吸引,无关节点互相排斥,最终形成自然的聚类结构。这部分逻辑在 lib/forceSimulation.ts 中实现,使用 d3-force 或自定义的 Verlet 积分算法。
社区色彩编码:通过社区检测算法识别出的社区,在 3D 空间中以不同颜色区分,不同层级的社区(H1/H2/H3...)以嵌套球体的形式呈现,用户可以通过"Community Isolator"功能逐层深入,聚焦到某个特定的知识领域。
节点大小反映重要性:节点的物理大小由中心性(centrality)指标决定——在图中连接越多的节点越大,类似 PageRank 的思路,反映该实体在整个知识体系中的重要程度。
关系权重可视化:节点之间的连线粗细对应关系强度,用户可以一目了然看到哪些实体之间的联系更紧密。
交互操作:鼠标拖拽旋转视角、滚轮缩放、右键平移;点击任意节点打开 Inspector 面板查看实体详情;Cmd/Ctrl+K 呼出搜索框,高亮匹配节点。
除了可视化,GraphRAG Workbench 还内置了 Chat Panel(聊天面板)。用户可以用自然语言提问,系统会:
支持的搜索策略包括:Local Search(聚焦特定实体)、Global Search(跨社区综合分析)、Drift Search(多跳推理探索)和 Basic Search(简单关键词匹配)。
项目提供了 settings.yaml 配置文件,用户可以调整:
GraphRAG 官方支持 SQL、DuckDB、LanceDB 等多种向量存储后端,当前 Workbench 默认使用 LanceDB,配置在 settings.yaml 的 vector_store 节点。

图1:GraphRAG Workbench 项目 Logo
GraphRAG Workbench 的前端构建在业界最新的技术栈之上:
app/page.tsx 是主入口,API 路由放在 app/api/ 下。types/parquetjs-lite.d.ts)。components/GraphVisualizer.tsx 是主渲染组件,components/GalaxyBackground.tsx 提供星空背景,components/Inspector.tsx 提供节点详情面板。GraphRAG Workbench 本身不运行独立的后端服务,而是通过以下方式与 GraphRAG 交互:
output/ 目录,包含 parquet 格式的实体表、关系表和社区报告。app/api/ 下的路由负责读取本地 output/ 目录的 JSON/parquet 文件,转换为前端可消费的格式。lib/graphData.ts 中的 loader 函数通过 /api/data/ 端点获取图谱数据,并在前端完成 3D 布局计算。这种"前端即客户端"的架构大幅简化了部署复杂度,但也意味着:GraphRAG 的 Python 进程和 Next.js 前端需要在同一台机器上运行。
项目内置了 13 个 prompt 模板,覆盖 GraphRAG 管道的各个环节:
extract_graph.txt:实体与关系抽取的 system promptextract_claims.txt:从文本中提取声明性断言community_report_graph.txt / community_report_text.txt:社区报告生成(支持图谱上下文和纯文本两种模式)local_search_system_prompt.txt / global_search_knowledge_system_prompt.txt:问答阶段的 prompt 模板question_gen_system_prompt.txt:从文档集生成研究问题的 prompt这些 prompt 模板放在 prompts/ 目录,用户可以自由替换为自己的版本,实现不同场景的定制。
GraphRAG Workbench 提供了 Web UI,显著降低了使用门槛,但这并不代表部署就是"一键搞定"。实际部署中存在几个需要手动处理的环节:
项目需要同时配置两套环境:
pnpm install 安装依赖,npm run dev 启动开发服务器。pip install graphrag。这两套环境之间通过本地文件系统(output/ 目录)进行数据交换——Python 生成图谱数据,前端读取并渲染。
GraphRAG 需要调用 OpenAI API 完成实体抽取和问答生成。用户必须:
.env 文件中填入 OPENAI_API_KEY。GraphRAG 支持 Azure OpenAI 部署,通过修改 settings.yaml 中的 api_base 和 auth_type 即可切换。
文档规模直接影响处理时间。根据 GraphRAG 官方基准,1000页文档的完整索引约需 30-60 分钟(取决于 LLM API 响应速度)。大规模文档建议分批处理,并留意终端的内存占用——README 建议 Node.js 内存上限可设为 8GB(NODE_OPTIONS="--max-old-space-size=8192")。
WebGL 2.0 是 3D 可视化的硬性要求。老旧浏览器或不支持 WebGL 的环境(如部分 Linux 无头服务器)无法体验 3D 功能,但可以通过 API 路由以 JSON 形式获取图谱数据,自行对接其他可视化方案。
当前项目没有提供 Dockerfile 或 docker-compose.yml,这意味着无法通过容器化实现一键部署。对于希望在云服务器上快速部署的用户来说,只能自行编写 Dockerfile,需要处理 Node.js 和 Python 两套环境的集成。对于已习惯 Docker 工作流的开发者,这是一个明显的缺憾。
GraphRAG Workbench 特别适合以下场景的用户:
学术研究者:处理大量论文、专利、临床试验报告,快速构建领域知识图谱,发现研究热点和知识空白。
企业内部知识管理:将散落在 Confluence、Notion、邮件附件中的知识文档结构化,通过 3D 图谱直观展示部门之间、项目之间的知识关联。
法律/合规团队:分析判例、合同、法规之间的引用关系和逻辑链条。
金融分析:构建投资标的、产业链、宏观经济事件之间的知识网络。
对于普通用户,如果只是偶尔需要从文档中查找信息,传统的全文检索或简单 RAG 工具可能更高效;但如果需要理解文档之间的关联结构,GraphRAG Workbench 提供了无可替代的沉浸式探索体验。
尽管 GraphRAG Workbench 提供了一套完整的解决方案,仍有几项局限值得关注:
实体抽取质量依赖 LLM:GPT-4o-mini 在实体抽取上表现尚可,但面对专业术语密集的垂直领域(如生物医学),可能出现实体遗漏或关系误判。用户需要反复调优 prompt,或切换到更强大的模型。
图谱规模瓶颈:当实体数量超过数万个时,3D 可视化会变得卡顿(浏览器 WebGL 渲染压力)。GraphRAG 本身支持子图分析来缓解这个问题,但 Workbench 前端的性能优化仍有空间。
无本地模型支持:当前版本完全依赖 OpenAI API,无法使用 Ollama、vLLM 等本地部署的模型。对于数据隐私要求严格的场景(医疗、金融),这是主要障碍。
社区报告生成延迟:大规模文档集的社区报告生成涉及大量 LLM 调用,可能耗时较长且费用不菲。缺乏增量更新机制——修改文档后需要重新完整运行索引。
综合评估,这是一个在知识图谱可视化领域极具创新性的项目: