利用生成式 AI 实现自定义提取器

派生字段和签名检测

通过公开预览版派生字段功能 ,Document AI 客户可以配置一个字段,以便通过基于文档上下文的 智能推断或生成来填充该字段,而不是 直接提取文本。

此版本还添加了另一项功能,用于检测文档中是否存在签名。您可以使用新的 signature 实体类型为此类实体指定架构。签名实体是使用文档中的视觉提示派生的。

自定义提取器中的派生字段

自定义提取器在以下模型中支持派生字段:

  • pretrained-foundation-model-v1.5-2025-05-05(预览版)
  • pretrained-foundation-model-v1.5-pro-2025-06-20(预览版)
  • pretrained-foundation-model-v3.5-2026-05-26(预览版)

您可以在控制台界面中创建或修改文档架构中的标签时启用这些功能。

“派生字段”是一项强大的功能,可让您提取文档中未明确写入的信息。 这样,您就可以配置一个字段,以便通过基于文档整体上下文的智能推理或生成来填充该字段。这不仅限于基本的文本提取,还支持高级用例,例如:

  • 根据地址推断国家/地区。
  • 计算表中的商品总数。
  • 检测身份证是否为“真实身份证”。

架构创建示例

以下示例展示了如何使用美国驾照为此类用例创建派生字段的架构,以及 预期输出。

  1. 创建架构元素时,选择 Derived 方法。

    cde-signature-detection-derived-field-1

  2. 添加描述性标签以提高性能。

    cde-signature-detection-derived-field-2

  3. 对于签名等派生字段,在为文档添加标签时无需设置边界框。对于 ,请选择已检测到

    cde-signature-detection-derived-field-3

  4. 对于签名以外的派生字段,您可以输入任意 作为标签的一部分,以定义可能的输出。

    cde-signature-detection-derived-field-4

预期输出将与此类似,其中签名显示为“已检测到”或“”,派生字段则显示为文本,因为标签的说明会提示请求。

cde-signature-detection-derived-field-5

提取与派生概览

在处理器架构中定义实体时,您可以选择一种方法来填充其值。

  • 提取 :这是默认方法。当实体的值应直接从文档文本中提取时,此方法有效。系统会识别文本并填充 textAnchorpageAnchor 等字段以显示其位置。

  • 派生 :当实体的值需要从文档内容中推断时,使用此方法。由于该值未直接出现在文本中,因此不会填充 textAnchorpageAnchor 字段。

使用情形示例:查找货币代码

假设您需要识别文档中交易的货币代码(例如 USD、CAD、EUR)。

  • 何时使用 Extract:如果文档始终包含明确的 货币符号或代码(例如“USD”或“€”),请使用 Extract 方法 查找并提取该确切文本。

  • 何时使用 Derived:如果文档使用不明确的符号(例如“$” ,可能指 USD、CAD、AUD 等)或根本没有符号,请使用 Derived 方法。该模型会分析文档的上下文(例如账单地址或公司所在地),以推断正确的 ISO 4217 货币代码。

使用情形示例:自定义规范化说明

假设您需要以不同于文档其余部分的格式从文档中提取信息。大多数使用情形应已由 规范化逻辑处理。对于未涵盖的极端情况,可以使用派生字段以您定义的自定义输出格式返回这些实体。例如,您可以使用以下提示从数字中去除连字符:返回不包含所有非数字字符的数字。

cde-signature-detection-derived-field-6

同样,可以使用派生字段( 说明为:以 yyyy-mm-dd (ISO 8601) 格式返回账单日期)对账单日期进行规范化。账单中的日期格式将采用本地日期格式。使用账单来源国家/地区来派生本地日期格式。

配置最佳实践

为了通过派生字段获得最佳结果,我们强烈建议您 为架构中的属性编写清晰的说明性 description, 在添加标签期间。这有助于指导模型完成派生任务。

在货币代码示例中,您可以创建一个名为 currency_code 的字段,并提供以下说明:“使用文档中存在的上下文信号(例如货币符号和地址)查找文档中金额值的 ISO 4217 货币代码。”

限制

派生字段是按页面生成的。这意味着,需要跨多个页面获取信息的使用情形不受完全支持。例如,如果您将派生字段配置为汇总文档,它会为每个页面生成单独的摘要,而不是为整个文档生成一个连贯的摘要。此限制适用于必须使用跨页面信息派生值的任何字段。

自定义提取器中的签名检测

Document AI 的自定义提取器在自定义提取器模型 pretrained-foundation-model-v1.4-2025-02-05pretrained-foundation-model-v1.5-2025-05-05 中支持签名检测。您可以在控制台界面中创建或修改文档架构中的标签时启用此功能。

签名检测 是一项功能,可让您确定文档中是否存在签名。此功能通过分析视觉提示来验证是否存在签名,而不是提取文本。

签名检测的工作原理

如需启用此功能,您可以在定义处理器架构时使用 signature 数据类型。处理器的行为取决于文档中是否检测到签名。

如果找到签名,提取器会在其响应中返回签名实体。 对于名为 has_signed 的字段,响应对象具有以下结构:

"has_signed": {
  "mention_text": "Detected",
  "confidence": <confidence_score_between 0 to 1>,
  "normalized_value": {
    "text": "Detected",
    "signature_value": true
  }
}

如果未找到签名,则不会在处理器的响应中返回该实体。

配置和设置关键要求

如需设置签名检测,请执行以下操作:

  1. 定义架构: 在处理器架构中,为要检测的签名添加新实体。
  2. 设置数据类型: 为此新实体选择“签名”作为数据类型。
  3. 将方法设置为派生: 具有 signature 数据类型的实体只能使用 Derived 方法。由于模型会以视觉方式推断是否存在签名,因此不会提取文本值。因此,不会为签名实体填充 textAnchorpageAnchor 等字段。

使用情形示例

假设您正在处理合同,并且需要验证合同是否已签署。 您可以创建一个名为 is_contract_signed 的架构字段,并将其数据类型设置为 signature。处理已签署的合同时,响应会包含 is_contract_signed 实体,以确认是否存在签名。如果不存在签名,则响应中不会包含此实体。这样,您就可以快速标记未签署的文档以供审核。

后续步骤

了解如何对专用处理器进行再训练