快速把私有文档变成可问答的知识图谱:GraphRAG 实战

发布时间:2026/9/1 21:23:32
快速把私有文档变成可问答的知识图谱:GraphRAG 实战 快速把私有文档变成可问答的知识图谱GraphRAG 实战【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag你有一堆私有文档想让大模型基于它们回答业务问题。普通 RAG 按片段检索跨文档的关联总被漏掉。GraphRAG 会先用 LLM 把文本里的实体和关系抽成知识图谱再按社区做多层摘要让问答既覆盖细节也覆盖全局。它和普通 RAG 差在哪普通 RAG 是找相似片段再拼答案片段之间没有关系。GraphRAG 多了一步结构化实体人物、组织、地点、事件与关系落成图图再聚成多层社区每层生成一份摘要报告。整本书在讲什么这类全局问题靠的是社区报告而不是单一片段。最短路径4条命令跑通需要 Python 3.10–3.12。装好后初始化、索引、问答pip install graphrag graphrag init graphrag index graphrag query What are the top themes in this story?init会生成settings.yaml、.env和input/目录。把模型配置与GRAPHRAG_API_KEY填进.env把.txt、.csv、.json、.jsonl、.parquet等文件放进input/再跑索引。官方提醒GraphRAG 索引会消耗大量 LLM 资源第一次先用小数据集试。第一次完整操作从txt到答案索引跑完几分钟到几十分钟取决于数据量当前目录会多出output/里面是一组 parquet 表entities、relationships、communities、community_reports、text_units、documents 等这就是后续问答的全部依据。然后提问graphrag query Who is Scrooge? --method local不带参数默认走 global 搜索基于社区报告做 map-reduce--method local则走实体关系加原文片段的局部检索。同一问题两种方法对比着问对理解各自的适用场景很有帮助。哪几个参数值得先调都在settings.yaml里配置说明 有完整字段。第一次建议只动这三个chunking.size默认 1200 tokenoverlap默认 100。实体描述被截断、抽取不完整时先调到 2000 左右试试在意成本则调小。extract_graph.entity_types默认organization, person, geo, event。你的领域没有这几类概念如医疗记录、代码库时换成自己的类型名抽取准头会明显不同。cluster_graph.max_cluster_size默认 10控制社区最大规模。报告太笼统就调小摘要会更聚焦只是社区层级变多。结果不理想怎么排查⚠️ 答案总漏掉关键实体多半是entity_types没覆盖你的领域补类型后重新索引。 索引慢、token 花得快数据量大叠加默认 25 路并发concurrent_requests。先缩小数据量或换便宜模型验证流程。 社区报告太泛max_cluster_size偏大导致调小后层级更细。 实体、关系抽得不靠谱跑一次graphrag prompt-tune它会采样你的文本自动重生成抽取和报告用的提示词。进阶统一搜索应用对比检索效果仓库自带一个 Web 应用可以把 basic RAG、local、global、drift 的结果并排对比需要 Python 3.11cd unified-search-app uv sync uv run poe start浏览器打开http://localhost:8501。它靠数据根目录下的listing.json识别多个索引本地数据用环境变量DATA_ROOT指向绝对路径即可。下一步建议熟悉全部参数看docs/config/yaml.md数据持续新增时用graphrag update做增量索引想把图谱导出到 Gephi 里细看参考 可视化指南。【免费下载链接】graphragA modular graph-based Retrieval-Augmented Generation (RAG) system项目地址: https://gitcode.com/GitHub_Trending/gr/graphrag创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考