Hyper-Extract
用 LLM 将非结构化文档一键转换为知识图谱、超图、时空图等结构化知识,支持 80+ 领域模板
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用 LLM 将非结构化文档一键转换为知识图谱、超图、时空图等结构化知识,支持 80+ 领域模板
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有过这样的经历:面对一篇 50 页的论文,想快速找出里面所有的关键人物、机构和技术术语?或者读完一份财报,想立刻得到一份结构化的「人物—事件—时间轴」?这类需求在 NLP 领域叫做 信息抽取(Information Extraction),传统方案需要训练专门的 NER 模型、关系抽取模型,门槛极高。
Hyper-Extract 打破了这个门槛——它用 LLM 的 structured output 能力,让任何人都能用一条命令把非结构化文档变成结构化知识。喂一篇论文,吐出一个知识图谱;喂一份财报,生成一套关系网络。
在 RAG(检索增强生成)大行其道的今天,主流方案把非结构化文档切成块(chunk)塞进向量数据库。但这种方案有两个根本局限:每个 chunk 内部的实体关系被稀释了;切块本身丢失了文档的全局结构信息。当用户问「这篇论文的作者之间有什么关系」「这家公司近三年的高管变动趋势」这类跨块问题,朴素 RAG 几乎无法回答。
Hyper-Extract 正是为解决这个痛点而生。它的核心思路是:在 LLM 理解文档内容的同时,直接输出强类型结构。不是检索后生成,而是边理解边抽取——实体、关系、时序、空间信息,全部结构化输出。输出的结果可以存入向量数据库供语义检索,也可以直接可视化或二次分析。
该项目的作者是 Yifan Feng(evanfeng97@gmail.com),目前处于活跃开发状态(最后更新 2026-06-14),有 1134 star、132 fork,代码质量较高,测试覆盖完善,支持 Python 3.11+。
Hyper-Extract 采用清晰的三层架构:
Auto-Types(自动类型层):核心抽象层,提供 8 种强类型数据结构——AutoModel、AutoList、AutoSet、AutoGraph、AutoHypergraph、AutoTemporalGraph、AutoSpatialGraph、AutoSpatioTemporalGraph。每个类型继承自 BaseAutoType,内部通过 extract 方法调用 LLM,利用 JSON Schema 或 Function Calling 约束输出格式,解析后自动存入对应结构。代码在 hyperextract/types/ 下,单文件行数达 27000-41000 行,是项目最核心的部分。
Methods(方法层):负责组织「如何抽取」的策略,包含典型抽取方法(kg_gen、itext2kg、atom)和 RAG 增强方法(graph_rag、light_rag、hyper_rag、cog_rag、hypergraph_rag)。RAG 方法通过语义检索相关块再引导 LLM 抽取,适合长文档场景。核心实现在 hyperextract/methods/ 下。
Templates(模板层):最贴近用户的抽象,提供 80+ 预设 YAML 模板,覆盖金融(财报分析、股权结构)、法律(合同义务、案例引用)、医疗(药品相互作用)、中医药(方剂组成、经络图谱)、工业(设备拓扑、安全控制)、通用(人物履历、工作流程)等 6 大领域。用户无需写代码,选一个模板即可抽取对应类型的知识。模板系统通过 template_engine 模块解析和验证。
CLI 层基于 Typer 构建,提供 parse(解析文档)、search(语义检索)、show(可视化图谱)、config(管理 API 配置)、list(列出可用模板)等子命令。

图1:Hyper-Extract 三层架构 — Auto-Types、Methods、Templates 协同工作
项目重度依赖 LLM 的 structured output 能力。所有 Auto-* 类型在抽取时构造 JSON Schema,通过 LangChain 的 with_structured_output 方法绑定到 LLM。以 AutoGraph 为例,抽取时生成如下 JSON Schema,LLM 严格按照 Schema 输出 JSON,解析后直接构建图结构。这种方式比传统序列标注模型(NERTagger)省去了训练环节,且支持 zero-shot 跨领域迁移——换一套 Schema 就换一个抽取目标。
create_client 工厂函数支持多种 LLM 后端:
gpt-4o、gpt-4o-mini、gpt-5 等Embedding 阶段使用 FAISS 构建向量索引,支持任意 OpenAI-compatible 接口。
通过 feed 命令,用户可以将新文档追加到已有知识库,系统自动去重合并,生成增量图谱。这解决了「文档不断更新、知识库如何同步」的问题,是 Hyper-Extract 区别于一次性抽取工具的核心差异化能力。

图2:8 种知识结构对比——从简单列表到时空图谱
# 安装(一行命令)
uv tool install hyperextract
# 配置 API key
he config init -k YOUR_OPENAI_API_KEY
# 抽取知识
he parse examples/en/tesla.md -t general/biography_graph -o ./output/ -l en
# 查询
he search ./output/ "What are Tesla's major achievements?"
# 可视化
he show ./output/
开发者也可以直接 import 使用:
from hyperextract import Template
ka = Template.create("general/biography_graph")
result = ka.parse(open("paper.pdf").read())
result.show()

图3:he show 可视化输出——实体节点 + 关系边的知识图谱
第一,抽取质量高度依赖 LLM 本身的能力。 GPT-4o 能稳定输出高质量图谱,但小型开源模型在复杂 Schema 下容易出现 schema drift。作者提到支持 deepseek-r1,但其长程推理特性对结构化抽取的适配性有待验证。
第二,没有自我纠错机制。 当前版本 LLM 一次生成抽取结果,没有验证-修正循环。如果首次抽取遗漏了某些实体,工具不会主动补充。
此外,项目目前处于 Alpha 阶段,生产环境使用需谨慎。
Hyper-Extract 代表的趋势是 LLM-native 的知识工程。在此之前,构建知识图谱需要:实体识别模型 → 关系抽取模型 → 图谱构建系统,涉及多模型训练、复杂 ETL 流程。Hyper-Extract 把这个链条压缩成「选模板 → 调 LLM → 得图谱」三步。这让知识抽取的门槛从「专业 NLP 工程师」降到了「会用命令行的任何人」。
从社区数据看,项目增长稳健,最后更新 2026-06-14,版本已演进到 0.2.0。

图4:Hyper-Extract 项目首页——文档解析 → 结构抽取 → 知识演化全流程