GraphRAG:三分钟把一堆文档变成可问答的知识图谱
【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag
硬盘里躺着一堆文档,却只能靠翻?GraphRAG 是微软开源的图检索增强生成(Graph RAG)系统:用 LLM 自动从文本里抽出实体和关系,建成知识图谱,让你对整个数据集提问。跑通它,只需要几分钟。
它到底在解决什么
你能拿到的,是把非结构化文本变成可查询的图谱,外加每一层级的摘要报告。
普通向量 RAG 检索的是文本片段,答得好不好取决于片段切得巧不巧。GraphRAG 先把文本组织成「实体-关系」网络,再把网络按社区聚合成报告,所以它还能回答跨越整个数据集的大局问题,而不只是某个实体的局部事实。
🚀 三分钟跑起来
先装上并初始化工作区(需要 Python 3.10-3.12):
python -m pip install graphrag graphrag initinit会生成.env、settings.yaml和input/目录,把 OpenAI 或 Azure 的密钥填进.env。没有现成数据的话,把仓库里docs/data/operation_dulce的样例拷进input/即可。
然后开始建索引:
graphrag index跑几分钟,output/目录里会出现一组 Parquet 表——你的图谱、社区报告、向量都在这。现在可以提问了:
graphrag query "这次行动的总体目标是什么?"一句话提醒:索引会为每个文本单元调用 LLM,费用随数据量走。官方建议从小数据集起步,数据大时可以先用下一节提到的省钱方式试水。
⚙️ 拆开看看:它怎么工作
切分与抽图。文档先被切成文本单元,LLM 逐个单元抽取实体、关系和可选的声明,再把全语料里同名实体的描述合并成一份。这一步占总成本的大头。
社区划分与报告。实体接着被社区检测聚成层次化的组,每一层生成一份摘要报告;文本同时嵌入向量库。所有结果以 Parquet 表落盘,方便你直接检查中间产物。
按路径取答案。查询有两条主路:local search 从图谱里某个实体的邻域加原文出发,适合问具体人物;global search 对全部社区报告做 map-reduce,适合问整体主题。
🔀 换个姿势用
- 换便宜索引法:
graphrag index --method fast走 FastGraphRAG,用 NLP 取代大部分 LLM 调用,成本低很多,摘要质量够用。 - 调提示词:
settings.yaml里的实体类型和提示模板都可以改;想省事就看 提示调优指南,支持自动生成并打分提示词。 - 换模型:在
settings.yaml的 models 部分分别配置对话和嵌入模型。 - 增量更新:新文档放进
input/后跑graphrag update,图谱增量刷新,不用全量重建。 - 换查询方式:
graphrag query加--method local、--method drift,对比不同路径的答案。 - 看图谱本身:把
output/里的 entities.parquet、relationships.parquet 导出到 Gephi 里打开。
❓ 你大概率会问
问:建一次索引到底多贵?标准方式每个文本单元都调用 LLM,费用和数据量成正比。官方建议先用小数据试,以摘要问答为主的话换--method fast再跑一遍。
问:它和普通 RAG 差在哪,什么时候值得用?普通 RAG 检索文本片段,GraphRAG 额外把片段组织成知识图谱和社区报告。当你的问题是「这个数据集讲了什么」这类全局题时,差距最明显。
问:支持哪些模型?开箱默认 OpenAI 和 Azure OpenAI,对话模型与嵌入模型在settings.yaml中各自配置,也可以指向自己的部署端点。
🧭 接下来玩点什么
想要界面,把仓库克隆下来跑统一搜索应用:
git clone https://gitcode.com/GitHub_Trending/gr/graphrag cd graphrag/unified-search-app uv sync && uv run poe start打开页面后,同一个问题可以用不同搜索方法并排对比,还能让应用替你生成候选问题。懒得开界面也行:先用 global search 问一个全局问题,再切 local 深挖某个实体的关系,两种体验差一下就记住了。
更多细节看官方文档,所有配置项的说明在配置参考。
【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考