自定义 Auto-Type 完整指南:Hyper-Extract 如何扩展 8 大知识结构
【免费下载链接】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
Hyper-Extract 是一个开源知识抽取框架,能把非结构化文本转成结构化知识图谱,支持 8 大 Auto-Type 知识结构。本文面向新手,带你快速搞懂 Auto-Type 扩展的 3 条路径——配置化 Python schema、YAML 模板、注册自定义方法,并附一张选型决策树,让你按需求挑对知识结构。
先认识:8 大 Auto-Type 是什么?
Auto-Type(自动类型)是 Hyper-Extract 的核心数据结构,相当于"塑造文档输出结果的容器"。它们分为三类:
- 记录类型:存数据,不涉及实体关系(AutoModel / AutoList / AutoSet)
- 图谱类型:表示实体间关系(AutoGraph / AutoHypergraph / AutoTemporalGraph / AutoSpatialGraph / AutoSpatioTemporalGraph)
- 语料类型:不做提取、只做块级检索(AutoDocument,零 LLM 成本)
| Auto-Type | 输出形状 | 典型用例 | 源码位置 |
|---|---|---|---|
| AutoModel | 单个对象 | 财报摘要、产品规格 | model.py |
| AutoList | 有序数组 | Top 10 榜单、流程步骤 | list.py |
| AutoSet | 去重数组 | 关键词、标签集合 | set.py |
| AutoGraph | 节点 + 边 | 人际网络、概念图谱 | graph.py |
| AutoHypergraph | 节点 + 超边 | 多方协作、复杂事件 | hypergraph.py |
| AutoTemporalGraph | 图谱 + 时间 | 传记时间线、新闻分析 | temporal_graph.py |
| AutoSpatialGraph | 图谱 + 位置 | 旅行日志、地理网络 | spatial_graph.py |
| AutoSpatioTemporalGraph | 图谱 + 时间 + 位置 | 军事历史、疫情追踪 | spatio_temporal_graph.py |
所有类型都继承自 BaseAutoType,共享同一套能力:feed_text喂入文本、build_index建索引、search语义检索、chat问答、show可视化、dump/load存取——这就是"扩展"能轻松复用的原因。
扩展路径 1:配置化 Auto-Type(最常用)
当你需要自定义节点/边结构,但不想从零写提取逻辑时,直接用 Python 的 Pydantic 类定义 schema,再实例化对应的 Auto-Type 即可。以自定义图谱为例:
from hyperextract import AutoGraph class Person(BaseModel): name: str = Field(description="人员全名") role: str = Field(description="职位或角色") graph = AutoGraphPerson, Collaboration, llm_client=llm, embedder=embedder, ) graph.feed_text(text) # 喂入文本,自动分块、并行提取、合并去重关键参数只有 5 个:schema 定义结构、键提取器定义去重、LLM 与嵌入模型负责提取与检索。完整参数表与时序图谱示例见 使用自动类型指南。
可运行的中文示例:graph_demo.py(从苏轼传记中提取实体与关系)、hypergraph_demo.py。
扩展路径 2:YAML 自定义模板(零代码分享)
如果希望把知识结构沉淀为可复用的文件、分享给团队,就用 YAML 模板。它包含三部分:
- output— 定义要抽取的实体与关系字段(名称、类型、必填项)
- guideline— 给 LLM 的提取规则(双语支持)
- display— 结果的可视化标签
放在~/.hyperextract/templates/目录下,执行he template validate验证后,即可通过Template.create("my_domain/my_template", "zh")加载使用。内置模板库(金融、法律、医学、中医、工业等 7 大类 40+ 模板)可直接参考:hyperextract/templates/。详细的模板 YAML 规范与产品目录完整示例见 创建自定义模板。
扩展路径 3:注册自定义方法(完全控制)
需要完全接管提取过程(比如接自己的算法)时,用register_method注册你的方法类并声明它产出的 Auto-Type(如autotype="graph"),之后就能像内置方法一样通过Template.create("method/my_method")调用。方法注册机制源码在 registry.py。
如何选?3 层架构 + 决策树
Hyper-Extract 提供三个控制层级,按需选:
| 层级 | 方式 | 适合谁 |
|---|---|---|
| 层级 1 | 模板 / 内置方法 | 新手快速上手 |
| 层级 2 | 配置化 Auto-Type | 要自定义 schema,但复用内置提取逻辑 |
| 层级 3 | 注册自定义方法 | 完全控制提取过程 |
结构选型决策树:
- 只要可检索的原始块 →AutoDocument
- 单个结构化对象(像表单) →AutoModel
- 项目集合:顺序重要 →AutoList;只需唯一项 →AutoSet
- 实体间关系:二元 →AutoGraph(加时间/位置/时空维度对应升级);三元及以上 →AutoHypergraph
完整决策树与用例对照表见 自动类型概念文档,API 参考见 autotypes 文档。
小结
Hyper-Extract 的 Auto-Type 扩展遵循"容器化"设计:8 大知识结构各自内建去重、合并、索引、检索与问答能力,你只需在 3 条路径中选一条——Python 配置 schema 最灵活、YAML 模板最易分享、自定义方法控制力最强。先从内置模板起步,再按需求逐层深入,就能把任意文档变成可查询的结构化知识。
【免费下载链接】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),仅供参考