跳转至

Python SDK

使用 Hyper-Extract Python API 构建知识提取管道。


安装

pip install hyperextract

开发安装:

pip install hyperextract[dev]

快速示例

from hyperextract import Template

# 创建模板
ka = Template.create("general/biography_graph", language="zh")

# 提取知识
with open("document.md") as f:
    result = ka.parse(f.read())

# 访问数据
print(f"节点数: {len(result.nodes)}")
print(f"边数: {len(result.edges)}")

# 构建索引以支持搜索/对话功能
result.build_index()

# 可视化
result.show()

交互式可视化


核心类

Template

模板化提取的主要入口点。

from hyperextract import Template

# 从预设创建
ka = Template.create("general/biography_graph", language="zh")

# 从自定义 YAML 创建
ka = Template.create("/path/to/custom_template.yaml", language="zh")

# 从方法创建
ka = Template.create("method/light_rag")

自动类型

8 种用于不同提取需求的数据结构类型:

用例
AutoModel 结构化数据模型
AutoList 有序集合
AutoSet 去重集合
AutoGraph 实体关系图谱
AutoHypergraph 多实体关系
AutoTemporalGraph 基于时间的关系
AutoSpatialGraph 基于位置的关系
AutoSpatioTemporalGraph 时间 + 空间组合

API 概览

Template API

# 创建
ka = Template.create(template_path, language="zh")

# 提取
result = ka.parse(text)           # 新提取
result.feed_text(text)            # 添加到现有

# 查询
result.build_index()              # 构建搜索索引
results = result.search(query)    # 语义搜索
response = result.chat(query)     # 与知识聊天

# 持久化
result.dump("./output/")          # 保存到磁盘
result.load("./output/")          # 从磁盘加载

# 可视化
result.show()                     # 交互式可视化

交互式可视化


文档结构


用例示例

研究论文分析

from hyperextract import Template

ka = Template.create("general/concept_graph", language="zh")

with open("paper.md") as f:
    paper = ka.parse(f.read())

# 构建可搜索知识库
paper.build_index()

# 提问
response = paper.chat("主要贡献是什么?")
print(response.content)

财务报告提取

from hyperextract import Template

ka = Template.create("finance/earnings_summary", language="zh")

report = ka.parse(earnings_text)
print(report.data.revenue)
print(report.data.eps)

构建知识库

from hyperextract import Template

ka = Template.create("general/graph", language="zh")

# 初始提取
ka = ka.parse(doc1_text)

# 添加更多文档
ka.feed_text(doc2_text)
ka.feed_text(doc3_text)

# 保存供以后使用
ka.dump("./my_ka/")

配置

环境变量

import os

os.environ["OPENAI_API_KEY"] = "your-api-key"
os.environ["OPENAI_BASE_URL"] = "https://api.openai.com/v1"

使用 .env 文件

from dotenv import load_dotenv
load_dotenv()  # 从 .env 文件加载

自定义客户端

from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from hyperextract import Template

llm = ChatOpenAI(model="gpt-4o")
embedder = OpenAIEmbeddings(model="text-embedding-3-large")

ka = Template.create(
    "general/biography_graph",
    language="zh",
    llm_client=llm,
    embedder=embedder
)

类型提示

Hyper-Extract 完全类型化,支持 IDE 自动完成:

from hyperextract import Template, AutoGraph

ka: AutoGraph = Template.create("general/graph", "zh")
result = ka.parse(text)

# IDE 自动完成有效
nodes = result.nodes
edges = result.edges

下一步