
GraphRAG 上手实践把散乱文本变成可查询的知识图谱【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphragGraphRAG 是一个基于图结构的知识图谱检索增强生成Graph-based Retrieval-Augmented Generation系统。它的做法是让大模型从非结构化文本中抽取实体和关系构建图索引再基于这个图谱回答问题。适合手里有大量叙事性文档、想要做实体关系检索和跨文档主题问答的团队或个人开发者。先看它适合做什么GraphRAG 解决的不是再找一个向量库的问题而是把文本整理成结构化的知识网络再在这个网络上做检索和推理。三个典型场景分散文档变成可查询的知识网络把项目文档、新闻稿、调研报告放进input/目录索引后得到实体表、关系表、社区表可以用文件形式直接查看也可以继续提问。回答跨文档的概括性问题比如这批材料里最主要的主题是什么普通向量检索很难覆盖全局GraphRAG 的 global 搜索基于预先生成的社区报告天然适合这类问题。围绕实体找关联问某个人物、组织或地点和谁有关系local 搜索会沿着实体和关系的邻域组织上下文。和普通 RAG 有什么不同维度普通向量 RAGGraphRAG检索单位文本块相似度实体、关系、社区报告全局概括问题容易漏掉不相似但相关的内容依赖预生成的社区摘要覆盖更全适合的任务事实性查找、片段问答关系密集的叙事数据、主题归纳差异是适合的任务类型不同不是绝对优劣。如果你的问题都是精确事实查找向量检索可能更便宜直接。3分钟跑起来GraphRAG 需要 Python 3.10–3.12。先建一个独立工作区mkdir graphrag_quickstart cd graphrag_quickstart python -m venv .venv source .venv/bin/activate python -m pip install graphrag然后在当前目录初始化工作区graphrag init初始化会生成三样东西input/放待处理文本、.env填入你的 OpenAI 或 Azure API key、settings.yaml流水线配置默认值大多可直接使用。把任意一段纯文本放进input/即可开始不需要改配置。完成一个最小可用流程按下面顺序操作每步都能明确看到结果准备数据向input/目录放.txt文件input.type也可配置为csv、json、jsonl。建议第一版用一份几万字的小文本。构建索引运行graphrag index。过程会依次执行切块、实体抽取、关系抽取、社区聚类、社区报告等步骤耗时取决于数据量和模型速度属于正常现象。查看产出完成后会出现output/目录里面是entities.parquet、relationships.parquet、communities.parquet、community_reports.parquet等文件这就是你的图索引。发起查询问一个全局性问题用默认方式graphrag query 这批文档里最主要的主题是什么针对具体实体的问题可以换 local 方式graphrag query 某某组织和谁有关系 --method local如果你想在浏览器里对比多种搜索方式仓库里还有一个演示用的 Web 应用先按上面的流程建好索引然后进入unified-search-app/目录用uv sync安装依赖uv run poe start启动。它支持数据集下拉选择、按问题检索和社区浏览注意它定位为实验性 demo需要按 unified-search-app/README.md 准备listing.json。只调这几个参数配置都在settings.yaml以下四项对结果影响最大默认值以当前仓库实际版本为准chunking.size默认 1200 token控制每次送入模型的文本块大小。块越小抽取越细但成本更高块越大容易丢失细节。数据比较碎时再考虑调小。extract_graph.entity_types默认[organization, person, geo, event]决定抽取哪些类型的实体。这是最值得先改的一项——如果你的数据里核心概念是产品合同条款故障类型就把它们加进来。实体类型不对后面所有查询都会跑偏。cluster_graph.max_cluster_size默认 10控制社区划分粒度。数值越大社区越少、越粗全局问答的覆盖面越广但具体性下降。models下的 chat 和 embedding 模型直接影响效果和费用。建议先用便宜快速的模型跑通流程确认结果方向没问题再换大模型正式索引。另外官方文档明确建议开箱即用的提示词未必最优值得花 10 分钟按 docs/prompt_tuning/ 调整提示词模板文件在packages/graphrag/graphrag/prompts/。新手常见坑与排查方向索引比预期慢、花费高GraphRAG 每个文本块都要调用大模型成本和数据量成正比。官方文档反复提醒从小的数据集开始。先用几千字验证全流程再上正式数据。input.type和实际文件不匹配配置里声明的是 csv放的却是 txt流水线会在加载阶段直接报错。检查settings.yaml中input.type与input/目录里的扩展名是否一致。查询结果答非所问优先检查两件事——entity_types是否覆盖了你关心的概念问题是否更适合另一种搜索方式全局概括用默认 global实体细节用 local。.env里的 key 没配对查询或索引阶段报认证错误先确认.env中GRAPHRAG_API_KEY已替换用 Azure 的话还要在settings.yaml的 models 段配置azure_deployment_name和api_base。版本升级后配置报错小版本升级后建议重新执行graphrag init --root path --force刷新配置格式详见 breaking-changes.md。什么时候适合用什么时候不适合适合实体关系明确的叙事性数据新闻、案件卷宗、项目文档、访谈记录需要这类数据整体在讲什么的全局归纳或者需要沿着实体关系做结构化推理。不适合纯闲聊式问答、单一事实的精确查找向量检索更简单便宜、数据量极小以至于直接塞进上下文就够的场景。另外注意官方 README 声明该项目目前处于维护模式以 bug 修复和依赖更新为主不建议把它当作持续演进的生产组件来规划。收尾GraphRAG 的价值在于把提问从文本相似度匹配提升到知识网络检索的层面代价是需要提前付出索引成本。想继续深入从 docs/ 入手配置细节看 docs/config/yaml.md命令参考看 docs/cli.md。【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考