W
AI-Wiki
CONCEPT

知识抽取模板

定义

知识抽取模板Hyper-Extract 用于零代码配置抽取任务的预设规范。它的核心作用,不是单纯给任务起一个名字,而是把“要抽什么、按什么结构抽、字段怎么组织、如何唯一标识结果对象”这些本来需要手写代码或手写 schema 的内容,封装成可复用的模板配置。

在 README 的表述里,模板层负责把抽取任务的结构与字段规范配置化,使高度非结构化文本可以被稳定地转成强类型的 Knowledge Abstract

在 Hyper-Extract 中的语境

README 明确把模板放在 Hyper-Extract 的三层架构里理解:

  • Auto-Types:定义 8 种强类型知识结构,如 Model、List、Set、Graph、Hypergraph、Temporal Graph、Spatial Graph、Spatio-Temporal Graph。
  • Methods:定义抽取算法或方法,如 KG-Gen、GraphRAG、LightRAG、Hyper-RAG、Cog-RAG 等。
  • Templates:定义面向具体任务的预设模板,用于零代码配置。

也就是说,模板层并不等于底层数据结构本身,也不等于抽取算法本身;它更像是位于两者之上的“任务规格说明书”,把某个领域或场景需要的语言、输出字段、标识符和语义约束固定下来,交给底层结构与方法执行。

规模与覆盖范围

README 给出的规模信息非常明确:

  • 内置 80+ YAML Templates
  • 覆盖 6 个领域
  • README 中点名的领域包括:General、Finance、Legal、Medical、TCM、Industry

这意味着模板不是零散示例,而是仓库中一整套可直接使用的预设集合。README 还提供了浏览入口,可查看全部 80+ presets。

与零代码使用方式的关系

知识抽取模板 与 Hyper-Extract 的“零代码”体验直接相关。README 多次强调:用户可以不自己写抽取逻辑,只需在命令行选择模板。

典型方式是通过 CLI 的 -t 参数指定模板,例如:

he parse paper.pdf -t general/academic_graph -o ./paper_kb/

或:

he parse earnings.md -t finance/earnings_graph -o ./finance_kb/

在快速开始中,README 还给出:

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

这里的关键点是:

  • 用户不需要自己编写实体抽取、关系抽取、字段映射等逻辑。
  • 只要选择合适的模板,Hyper-Extract 就会按模板约束生成对应的结构化结果。
  • 模板名通常带有领域和任务倾向,如 general/academic_graphfinance/earnings_graphgeneral/biography_graph

因此,模板是 CLI 零代码工作流的入口之一,也是把通用引擎变成具体业务抽取任务的关键配置。

模板包含哪些元素

README 在“三层架构”的模板示例中,展示了一个 graph 类型模板。该示例清楚说明模板通常包含以下元素:

  • language:模板所面向的语言。
  • name:模板名称。
  • type:输出知识结构类型。
  • tags:分类标签或领域标签。
  • description:模板要抽取什么内容的说明。
  • output fields:输出对象及其字段定义。
  • identifiers:对象唯一标识规则。

README 示例原型可概括为:

language: en
name: Knowledge Graph
type: graph
tags: [general]
description: 'Extract entities and their relationships.'
output:
  entities:
    fields:
      - name: name
        type: str
      - name: type
        type: str
      - name: description
        type: str
  relations:
    fields:
      - name: source
        type: str
      - name: target
        type: str
      - name: type
        type: str
identifiers:
  entity_id: name
  relation_id: '{source}|{type}|{target}'

从这个例子可以看出,模板不仅描述“抽实体和关系”,还把实体字段、关系字段、唯一标识规则都具体写死为配置。

graph 示例中的标识设计

README 展示的模板类型明确是 graph。在这个示例里,标识符设计有两层:

  • entity_id: name
  • relation_id: '{source}|{type}|{target}'

其设计思路可以概括为:

实体标识 entity_id

示例使用实体的 name 作为唯一标识。这种设计适合以下场景:

  • 抽取结果中的实体名称本身足以区分对象。
  • 任务更重视“文档中的概念或对象节点”而非复杂主键。
  • 图谱节点去重可以直接依赖名称。

但它也隐含边界:如果不同实体可能重名,单用 name 作为 ID 就可能发生冲突。因此这是一种简单、直观、便于零代码上手的默认设计,而不是适用于所有领域的万能方案。

关系标识 relation_id

示例把关系 ID 设计成:

{source}|{type}|{target}

这说明关系的唯一性由三元组组合决定:

  • 起点 source
  • 关系类型 type
  • 终点 target

这种拼接式设计的好处是:

  • 不必额外生成随机 ID。
  • 关系是否重复可以按语义三元组直接判断。
  • 对知识图谱类输出尤其自然,因为很多边本来就是“源节点—关系类型—目标节点”的组合。

同样,这也体现出模板层的价值:唯一标识策略并不是代码里临时决定,而是模板中显式声明的规则。

模板如何约束输出

从 README 的 graph 示例可见,模板至少会约束两类内容:

  1. 输出结构类型:例如本例是 graph,因此结果会按实体与关系组织,而不是普通列表或单个模型。
  2. 字段集合与字段类型:例如实体有 nametypedescription,关系有 sourcetargettype,且都声明为 str

这让抽取结果具备几个 README 强调的特征:

  • persistent:可以持久保存和继续演化。
  • predictable:输出字段和结构是可预期的。
  • strongly-typed:字段和结构有明确类型约束。

所以,模板并不是“提示词别名”,而是对输出知识结构的显式模式约束。

直接复用与自定义

README 同时给出了两种模板使用路径:

直接复用内置模板

对于常见场景,用户可以直接选用仓库里的 presets,例如通用、金融等领域模板。使用方式就是在 CLI 或 API 中按名称创建或指定模板。

CLI 示例:

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

Python API 示例:

from hyperextract import Template

ka = Template.create("general/biography_graph")

创建自定义模板

如果内置的 80+ presets 不能满足需求,README 明确给出了自定义入口:

  • 可浏览预设模板集合。
  • 可通过 DESIGN_GUIDE 创建自定义模板。

这说明模板体系并非封闭黑盒,而是开放给用户扩展的配置机制。也就是说,模板既是现成可复用资产,也是用户定义自己领域抽取规范的接口。

边界与理解要点

理解 知识抽取模板 时,有几个边界需要注意:

  • 它不是抽取算法本身。算法属于 Methods 层。
  • 它不是知识结构类型本身。结构类型属于 Auto-Types 层。
  • 它也不是单纯的领域标签;领域只是 tags 或 preset 分类的一部分。
  • 它的价值在于把任务语义、字段设计、输出模式和标识规则一起配置化。

因此,同样是 graph 结构,完全可以存在多个不同模板:一个面向学术论文,一个面向财报,一个面向人物传记。它们共享图结构类型,但字段语义、标签、描述和标识策略可以不同。

相关条目