GraphRAG 社区检测:Hyper-Extract 大型文档知识图谱终极方案
【免费下载链接】Hyper-ExtractHypergraph is more powerful. Transform unstructured text into structured knowledge with LLMs. Graphs, hypergraphs, and spatio-temporal extractions — with one command.项目地址: https://gitcode.com/GitHub_Trending/hy/Hyper-Extract
GraphRAG 社区检测是处理大型文档的利器:Hyper-Extract 内置的graph_rag方法将非结构化文本转为实体-关系知识图谱,再借助 Leiden 社区检测算法自动发现主题簇、生成社区摘要报告,让"全局性大提问"也能被准确回答。无论你是研究长论文、财报还是书籍级文档,都能用一条命令完成从提取到问答的完整闭环。
为什么大型文档知识图谱需要社区检测?
传统 RAG 把文档切成碎片逐块检索,遇到"这本书的核心主题有哪些?"这类全局性问题时往往无能为力——答案横跨所有分块,任何单块都答不上来。
GraphRAG 社区检测的思路完全不同:先建整张图谱,再用算法找出内部联系紧密、彼此相对独立的节点簇(社区),为每个社区生成一份 LLM 摘要报告。全局提问时,模型不再翻找原始碎片,而是直接"阅读"这些社区摘要来综合作答。
核心实现位于 hyperextract/methods/rag/graph_rag.py,采用与微软 GraphRAG 相同的架构思路,并做了工程化精简。
GraphRAG 社区检测的三大核心能力
| 能力 | 说明 | 关键 API |
|---|---|---|
| 🔷两级实体关系提取 | 先抽节点(实体)再抽边(关系),LLM 自动合并同名实体 | feed_text()/parse() |
| 🧩层次化社区检测 | 基于 graspologic 的 Hierarchical Leiden 算法,支持多粒度分层 | build_communities(level) |
| 🌐全局搜索 | 基于社区摘要的 Map-Reduce 式问答,回答跨文档主题问题 | search(query, use_community=True) |
每个社区报告(CommunityReport)包含标题、执行摘要、重要性评分(0-10)和 3-5 条关键发现,并随图谱一起持久化到community_data.json,加载后可直接复用,无需重算。
三步构建大型文档知识图谱
第 1 步:安装并配置 LLM
uv tool install hyperextract he config init -p openai -k YOUR_API_KEY社区检测依赖networkx与graspologic两个可选依赖:
pip install networkx graspologic第 2 步:一条命令提取知识图谱
CLI 通过--method graph_rag直接启用 GraphRAG 引擎:
he parse 长文档.md -m graph_rag -o ./kb/Python 侧同样只需两行:
from hyperextract import Template ka = Template.create("method/graph_rag") result = ka.parse(text)文档越长,两阶段提取 + LLM 合并同实体的价值越明显——重复出现的"马斯克"不会被建成多个孤立节点。
第 3 步:社区检测 + 全局问答
result.build_communities() # Leiden 社区检测 + 社区报告生成 result.search("文档整体有哪些核心主题?", use_community=True)use_community=True时,系统自动取评分最高的社区摘要作为上下文,配合向量检索的节点/边结果一起交给 LLM 作答。可视化效果:
知识图谱长什么样:9 种结构选哪种?
Hyper-Extract 提供 9 种类型化知识结构,GraphRAG 基于其中的graph(二元边)。如果你的场景涉及"多方共同参与一个事件"这类关系,可升级为hypergraph(超边);有时间维度则用temporal_graph:
各 RAG 方法的适用边界见官方指南 docs/zh/python/guides/using-methods.md,速查建议:
| 场景 | 推荐方法 | 理由 |
|---|---|---|
| 书籍、长论文、复杂主题 | graph_rag | 社区检测 + 层次化摘要 |
| 中大型文档、追求速度 | light_rag | 最轻量、速度快 |
| 多方协作关系 | hyper_rag | N 元超边更贴近真实 |
常见问题:社区检测没生效怎么办?
- 依赖缺失:
build_communities()需要networkx和graspologic,未安装时会打印提示并跳过。检查pip list | grep -E "networkx|graspologic"。 - 选择社区层级:
build_communities(level=0)取最粗粒度(社区少而大),层级越深社区越多越细,适合按文档主题数量调节。 - 孤点不影响:算法会先剔除孤立节点再聚类,少量独立实体不会导致失败。
- 报告已缓存:社区数据随
dump()保存、随load()恢复,增量喂入新文档(he feed)时无需从头计算。
💡 经验法则:文档超过约 50 页,或你的问题经常是"整体性、综合性"提问时,就切换到
graph_rag方法。
总结
Hyper-Extract 的 GraphRAG 社区检测方案 =两阶段实体关系提取 + Leiden 层次化社区检测 + 社区摘要全局搜索,三件套把"大型文档知识图谱"从概念变成了可复用的工程能力。配合 80+ 领域模板(hyperextract/templates/presets/)与 Obsidian 导出,从一份 PDF 到可问答、可审计、可回滚的知识库,只需一条命令。
【免费下载链接】Hyper-ExtractHypergraph is more powerful. Transform unstructured text into structured knowledge with LLMs. Graphs, hypergraphs, and spatio-temporal extractions — with one command.项目地址: https://gitcode.com/GitHub_Trending/hy/Hyper-Extract
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考