Python SDK¶
使用 Hyper-Extract Python API 构建知识提取管道。
安装¶
开发安装:
快速示例¶
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 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