← 返回信息流
GitHub 热榜GitHub Trending · 日·16 小时前

Hyper-Extract:基于LLM的非结构化文本结构化知识提取工具

原标题:yifanfeng97/Hyper-Extract
Python1,686 stars+124 今日

速览

该项目通过单一命令即可实现从非结构化文本到结构化知识的转换,支持构建图(Graphs)、超图(Hypergraphs)以及时空提取(spatio-temporal extractions)。适用于需要深度信息抽取和复杂关系建模的AI数据预处理场景。

AI 深度解读

这是什么

Hyper-Extract 是一个基于大语言模型(LLM)的智能知识提取与演化框架,旨在通过命令行工具(CLI)和 Python API,将高度非结构化的文本数据转化为持久化、可预测且强类型的「知识摘要」(Knowledge Abstracts)。

该项目由 yifanfeng97 维护,主语言为 Python,目前在 GitHub 上已获得 1686+ Star。其核心理念是“告别文档焦虑,让信息一目了然”,通过单一命令即可实现从文档解析到知识图谱生成的全流程自动化。

解决的问题

在信息爆炸时代,企业和研究人员面临的主要痛点包括:

  1. 非结构化数据难以利用:学术论文、财报、新闻等文档通常以自由文本形式存在,缺乏结构化关联,导致信息检索效率低下。
  2. 知识提取成本高:传统方法依赖人工标注或复杂的规则引擎,难以应对多样化的文档类型和复杂的实体关系。
  3. 数据隐私与本地化需求:许多企业敏感数据无法上传至公有云,需要支持本地部署 LLM 和 Embedding 模型,确保数据不出域。
  4. 结构化输出不稳定:通用 LLM 直接输出结构化数据(如 JSON)时,格式往往不统一,难以直接入库或进行后续分析。

Hyper-Extract 通过引入强类型定义和模板化提取机制,解决了从“非结构化文本”到“结构化知识”之间的语义鸿沟。

核心功能

1. 多模态知识抽象(Auto-Types)

Hyper-Extract 支持 8 种强类型数据结构,能够适应不同复杂度的知识表达需求:

  • 基础类型:Model(模型)、List(列表)、Set(集合)。
  • 图结构:Graph(知识图谱)、Hypergraph(超图)、Temporal Graph(时序图)、Spatial Graph(空间图)、Spatio-Temporal Graph(时空图)。

2. 多样化提取算法(Methods)

内置多种先进的提取算法,包括:

  • KG-Gen:通用知识图谱生成。
  • GraphRAG / LightRAG / Hyper-RAG:基于检索增强生成的图结构提取。
  • Cog-RAG:认知增强检索生成。 用户可根据数据复杂度选择最合适的算法。

3. 领域专用模板(Templates)

提供 80+ 预置模板,覆盖 6 大领域,支持零代码配置:

  • 学术研究:将论文转化为包含关键概念、作者、引用关系的交互式图谱。
  • 金融分析:从财报中提取公司、高管、财务指标及其关联。
  • 通用传记:提取人物生平、成就及关系链。

4. 灵活的部署与集成

  • 本地化部署:支持通过 vLLM 本地运行 Qwen3.5-9B 等大模型,结合 bge-m3 等 Embedding 模型,实现数据完全本地化处理。
  • 兼容 OpenAI 接口:Embedding 模型支持任何 OpenAI 兼容端点,包括 text-embedding-3-small、阿里百炼的 text-embedding-v4 以及本地 vLLM 服务。
  • 结构化输出保障:依赖 LLM 的 json_schema 或 Function Calling 能力,确保输出格式严格符合定义。

亮点 / 与同类相比

| 特性 | Hyper-Extract | 传统 RAG / 通用 LLM 提取 | | :--- | :--- | :--- | | 输出结构 | 强类型定义(Pydantic Models, Graphs 等),格式稳定可预测 | 通常为自由文本或松散 JSON,格式易变 | | 知识粒度 | 支持超图、时空图等复杂拓扑结构,不仅限于实体关系 | 多限于简单的实体-关系三元组 | | 使用门槛 | CLI 驱动,一行命令完成解析、存储、搜索、可视化 | 需编写大量代码处理解析、清洗、入库流程 | | 模板化 | 提供 80+ 领域模板,开箱即用 | 需手动设计 Prompt 和 Schema | | 隐私保护 | 原生支持本地 vLLM 部署,数据不出域 | 通常依赖云端 API,存在数据泄露风险 |

技术亮点:

  • 架构分层清晰:采用“Auto-Types + Methods + Templates”三层架构,解耦了数据结构、提取算法和用户配置。
  • 可视化集成:内置 he show 命令,可直接可视化生成的知识图谱,便于人工校验和分析。
  • Python API 友好:除了 CLI,还提供完整的 Python SDK,方便集成到现有数据管道中。

适合谁用 / 上手

适合人群

  • 数据科学家 / AI 工程师:需要从海量非结构化文档中构建知识图谱,用于下游 RAG 或分析任务。
  • 金融 / 法律 / 医疗分析师:需要快速从财报、合同、病历中提取关键实体和关系,且对数据隐私有高要求。
  • 研究人员:希望自动化文献综述,将多篇论文转化为关联知识网络。
  • 开发者:希望快速搭建基于知识图谱的应用原型,无需从零开始处理 LLM 输出解析。

快速上手指南

1. 安装 推荐使用 uv 进行安装:

uv tool install hyperextract

2. 配置 API Key 初始化配置并填入 API Key(若使用本地模型,可留空或填 dummy):

he config init -k YOUR_OPENAI_API_KEY

3. 提取知识 解析示例文档,指定模板为通用传记图谱,输出语言为英文:

he parse examples/en/tesla.md -t general/biography_graph -o ./output/ -l en

4. 查询与可视化 搜索提取的知识:

he search ./output/ "What are Tesla's major achievements?"

可视化图谱:

he show ./output/

5. Python API 集成

from hyperextract import Template

# 创建模板实例
ka = Template.create("general/biography_graph")

# 解析文档内容
with open("examples/en/tesla.md") as f:
    result = ka.parse(f.read())

# 展示结果
result.show()

6. 本地部署示例

from hyperextract import create_client

llm, emb = create_client(
    llm="vllm:Qwen3.5-9B@http://localhost:8000/v1",
    embedder="vllm:bge-m3@http://localhost:8001/v1",
    api_key="dummy",
)

Hyper-Extract 通过简化知识提取流程,为结构化非结构化数据提供了高效、灵活且隐私安全的解决方案。

查看原文 →github.com