声明式知识提取模板
定义
声明式知识提取模板是 Hyper-Extract 在配置层使用的一种任务声明机制:用 YAML 来声明知识提取任务,而不是在代码里硬编码字段结构、抽取规则、唯一标识和展示方式。
它的核心价值不是单纯“把 Prompt 写到配置文件里”,而是把一个提取任务拆成若干彼此分离、可替换的部分:
output schema定义要抽取哪些字段、对象或关系结构。guideline定义如何高质量抽取,以及需要避免哪些常见错误。identifiers定义实体、关系或复杂图对象的唯一标识规则。display定义知识对象在可视化或展示时使用什么标签。
因此,同一个底层引擎或同一套代码,可以通过切换模板,快速从“人物生平图谱”切换到“财报摘要”“合同关系”“病历结构化信息”或“时空事件图”。
在本文档中的语境
在本文语境里,声明式知识提取模板不是一个泛指的“配置文件”概念,而是 Hyper-Extract 三层架构中的配置层,与数据层的强类型知识提取结果类型,以及算法层的提取方法分离。
文中明确把架构分成三层:
- Layer 1:Auto-Types,负责承载结构化结果,并做验证、序列化、搜索、可视化、合并等。
- Layer 2:Methods,负责真正调用 LLM 或 RAG/Typical 方法进行抽取。
- Layer 3:Templates,即本文所说的声明式知识提取模板,负责描述任务本身。
这里的关键思想是:任务定义不直接绑定某个算法实现。模板负责说明任务要求,方法层负责执行,类型层负责接收、校验与后处理结果。这种解耦使 Hyper-Extract 能同时支持 CLI 和 Python API,也让模板能够跨场景复用。
核心作用
用 YAML 声明提取逻辑,而不是在代码里硬编码
声明式知识提取模板最核心的作用,是把提取逻辑从代码中抽出来,用 YAML 显式声明。
这意味着用户不需要每做一个新任务就去改 Python 代码、重写数据模型、手工拼 Prompt 或添加显示逻辑,而是可以直接通过模板配置:
- 提取任务叫什么;
- 用什么语言执行;
- 输出属于哪种知识结构类型;
- 具体要抽取哪些字段或关系;
- 抽取时应遵守什么规则;
- 怎样判断两个对象是否是同一实体或同一关系;
- 展示时给对象生成什么可读标签。
对使用者来说,这使知识提取从“写程序”更接近“声明任务”。文中把它描述为零代码定义提取逻辑,并支持低代码扩展。
让任务定义与算法实现解耦
模板并不等于具体抽取引擎。Hyper-Extract 同时提供 10+ 提取引擎,包含 RAG-based 方法和 Typical 方法,用户可以通过模板或 API 选择适合的引擎。
这说明模板的职责不是规定“必须用哪种算法”,而是把任务目标稳定地定义出来。算法层可以替换,但任务定义不必跟着重写。
内置规模与覆盖范围
文中明确说明,声明式知识提取模板并不是一个只提供少量示例的机制,而是已经内置了 80+ 预设模板,覆盖 6 大领域:
- Finance(金融)
- Legal(法律)
- Medical(医学)
- TCM(中医)
- Industry(工业)
- General(通用)
这意味着该机制不是只为某一个垂直任务设计,而是从一开始就被当作跨领域知识提取的统一任务描述层。用户既可以直接复用预设模板,也可以在此基础上自定义新模板。
关键字段组成
文中列出的模板关键字段包括:
languagenametypedescriptionoutput schemaguidelineidentifiersdisplay
这些字段分别承担不同职责。
language
language 用来指定模板工作的语言环境,例如文中提到系统支持 en、zh 等多语言。它影响抽取任务面向的文本语言,以及生成规则与输出的语言上下文。
name
name 是模板名称,用于标识具体任务。CLI 与 Python API 中按模板名创建任务,例如示例里使用 general/biography_graph。
type
type 指明输出结果对应哪种知识结构类型。由于 Hyper-Extract 底层有 8 大 Auto-Types,模板需要通过 type 把任务映射到合适的结构,例如记录型结果、普通图谱、超图、时间图、空间图或时空图。
description
description 用于说明该模板要解决什么问题、适合什么文本、希望产出什么知识对象。它帮助系统和使用者理解任务边界,而不是只靠字段名猜测。
output schema
output schema 负责定义输出结构,也就是“提取什么”。它会声明字段、对象结构、关系结构以及类型约束,最终与 Pydantic 支撑的强类型结果对象相衔接。
guideline
guideline 负责定义“如何提取得更好”。它不是结构定义,而是抽取过程的质量规则、判定原则、歧义处理方式和常见错误规避要求。
identifiers
identifiers 负责定义唯一标识逻辑,用来确保实体、关系或更复杂图对象在抽取、合并、增量演进时能够被稳定识别。
display
display 用来控制可视化标签生成。它不直接改变是否抽取成功,但会影响抽取结果在展示、浏览和图谱可视化中的可读性。
schema 与 guideline 分离
这是 声明式知识提取模板 中最重要的设计点之一。文中明确强调 Schema vs Guideline 分离。
output schema 回答“提取什么”
output schema 的职责是定义结果结构本身,也就是要抽什么数据。它描述的是目标对象,而不是抽取策略。
例如,一个模板可以通过 schema 指定:
- 需要抽取哪些实体字段;
- 需要输出哪些关系;
- 结果是列表、集合还是图结构;
- 某些关系是否带时间或地点字段。
它解决的是“目标数据长什么样”的问题。
guideline 回答“如何高质量提取”
guideline 的职责则是说明抽取时应遵守的规则。文中明确说它用于定义“如何高质量提取”,以及“避免哪些常见错误”。
这类规则通常不是结构的一部分,但会显著影响结果质量,例如:
- 遇到歧义时应如何判断;
- 信息不足时是否应保守处理;
- 哪些表述不能误识别为关系;
- 哪些字段必须从原文显式支持,而不能臆造;
- 哪类重复、混淆或过度泛化应当避免。
把 schema 与 guideline 分开,带来两个直接好处:
- 第一,结构定义更稳定,不会和提示细节混在一起。
- 第二,可以在不改输出结构的前提下单独优化抽取质量规则。