Document Intelligence 发票模型

此内容适用于:选中标记v3.1 (GA) | 先前版本:蓝色复选标记v3.0蓝色复选标记v2.1

此内容适用于:选中标记v3.0 (GA) | 最新版本:紫色复原标记v3.1 | 以前的版本:蓝色复选标记v2.1

此内容适用于:选中标记v2.1

Document Intelligence 发票模型使用强大的光学字符识别 (OCR) 功能分析和提取销售发票、公用事业账单和采购订单中的关键字段与行项。 发票可以采用各种格式和质量,包括手机拍摄的图像、扫描文档和数字 PDF。 该 API 可分析发票文本,提取客户姓名、帐单邮寄地址、截止日期和未付金额等关键信息,并返回结构化的 JSON 数据表示形式。 该模型目前支持 27 种语言的发票。

支持的文档类型:

  • 发票
  • 公共事业账单
  • 销售订单
  • 采购订单

自动处理发票

自动发票处理是从计费帐户文档中提取关键应付账款字段的过程。 提取的数据包括与应付账款 (AP) 工作流集成的发票中的行项,用于审核和付款。 传统的应付账款处理过程需要大量人工作业,因此非常耗时。 从发票中准确提取关键数据通常是发票自动化过程中的第一步,也是最关键的一步。

使用文档智能工作室处理的示例发票

在文档智能工作室中分析的示例发票的屏幕截图。

使用文档智能示例标记工具处理的示例发票

示例发票的屏幕截图。

开发选项

文档智能 v3.1 支持以下工具、应用程序和库:

功能 资源 模型 ID
发票模型 文档智能工作室
REST API
C# SDK
Python SDK
Java SDK
JavaScript SDK
预生成的发票

文档智能 v3.0 支持以下工具、应用程序和库:

功能 资源 模型 ID
发票模型 文档智能工作室
REST API
C# SDK
Python SDK
Java SDK
JavaScript SDK
预生成的发票

文档智能 v2.1 支持以下工具、应用程序和库:

功能 资源
发票模型 文档智能标记工具
REST API
客户端库 SDK
文档智能 Docker 容器

输入要求

  • 为获得最佳结果,请针对每个文档提供一张清晰的照片或高质量的扫描件。

  • 支持的文件格式:

    型号 PDF 图像:
    JPEG/JPG、PNG、BMP、TIFF、HEIF
    Microsoft Office:
    Word (DOCX)、Excel (XLSX)、PowerPoint (PPTX) 和 HTML
    阅读
    布局 ✔(2024-02-29-preview、2023-10-31-preview)
    常规文档
    预生成
    自定义
  • 对于 PDF 和 TIFF,最多可处理 2000 页(对于免费层订阅,仅处理前两页)。

  • 用于分析文档的文件大小对于付费 (S0) 层为 500 MB,对于免费 (F0) 层为 4 MB。

  • 图像尺寸必须介于 50 x 50 像素与 10,000 x 10,000 像素之间。

  • 如果 PDF 是密码锁定的文件,则必须先删除锁,然后才能提交它们。

  • 对于 1024 x 768 像素的图像,要提取的文本的最小高度为 12 像素。 此尺寸对应于 150 点/英寸 (DPI) 的大约 8 号字文本。

  • 对于自定义模型训练,自定义模板模型的训练数据最大页数为 500,自定义神经模型的训练数据最大页数为 50,000。

  • 对于自定义提取模型训练,模板模型的训练数据总大小为 50 MB,神经模型的训练数据总大小为为 1G-MB。

  • 对于自定义分类模型训练,训练数据的总大小为 1GB,最大为 10,000 页。

  • 支持的文件格式:JPEG、PNG、PDF 和 TIFF。
  • 对于支持的 PDF 和 TIFF,最多处理 2,000 页。 对于免费层订阅服务器,只处理前两页。
  • 支持的文件大小必须小于 50 MB,且尺寸介于 50 x 50 和 10,000 x 10,000 像素之间。

发票模型数据提取

了解如何从发票中提取数据,包括客户信息、供应商详细信息和行项目。 需要以下资源:

  • Azure 订阅 - 可以创建试用订阅

  • Azure 门户中的文档智能实例。 可以使用免费定价层 (F0) 来试用该服务。 在部署资源后,选择“转到资源”以获取密钥和终结点。

该屏幕截图显示了 Azure 门户中密钥和终结点的位置。

  1. 在文档智能工作室主页上,选择“发票”

  2. 可以分析示例发票或上传自己的文件。

  3. 选择“运行分析”按钮,并根据需要配置“分析选项”:

    文档智能工作室中“运行分析”和“分析选项”按钮的屏幕截图。

试用 Document Intelligence Studio

文档智能示例标记工具

  1. 导航到“文档智能示例工具”。

  2. 在示例工具主页上,选择“使用预生成模型获取数据”磁贴。

    布局模型分析结果过程的屏幕截图。

  3. 从下拉菜单中选择要分析的“表单类型”。

  4. 从以下选项中选择要分析的文件的 URL:

  5. 从“源”字段的下拉菜单中选择“URL”,粘贴所选 URL,然后选择“提取”按钮。

    源位置下拉菜单的屏幕截图。

  6. 在“文档智能服务终结点”字段中,粘贴使用文档智能订阅获得的终结点。

  7. 在“密钥”字段中,粘贴从文档智能资源中获取的密钥。

    显示选择表单类型下拉菜单的屏幕截图。

  8. 选择“运行分析”。 文档智能示例标记工具可调用分析预生成 API 并分析文档。

  9. 查看结果 - 查看提取的键值对、明细项目、突出显示的提取的文本和检测到的表。

    布局模型分析结果操作的屏幕截图。

注意

示例标记工具不支持 BMP 文件格式。 这是工具的一项限制,而不是文档智能服务的限制。

支持的语言和区域设置

有关受支持语言的完整列表,请参阅我们的“语言支持 - 预生成模型”页。

字段提取

名称 Type 说明 标准化输出
CustomerName 字符串 发票客户
CustomerId 字符串 客户参考 ID
PurchaseOrder 字符串 采购订单参考编号
InvoiceId 字符串 此特定发票的 ID(通常为“发票编号”)
InvoiceDate Date 开具发票的日期 yyyy-mm-dd
DueDate Date 此发票的支付截止日期 yyyy-mm-dd
VendorName 字符串 供应商名称
VendorTaxId String 与供应商关联的纳税人编号
VendorAddress 字符串 供应商邮寄地址
VendorAddressRecipient 字符串 与 VendorAddress 关联的名称
CustomerAddress 字符串 客户的邮件地址
CustomerTaxId String 与客户的纳税人编号
CustomerAddressRecipient 字符串 与 CustomerAddress 关联的名称
BillingAddress 字符串 客户的具体帐单邮寄地址
BillingAddressRecipient 字符串 与 BillingAddress 关联的名称
ShippingAddress 字符串 客户的具体送货地址
ShippingAddressRecipient 字符串 与 ShippingAddress 关联的名称
PaymentTerm String 发票的付款条款
总计 Number 此发票上标识的小计字段 Integer
TotalTax Number 此发票上标识的总税款字段 Integer
InvoiceTotal 数字(美元) 与此发票关联的新费用总计 Integer
AmountDue 数字(美元) 应支付给供应商的总金额 Integer
ServiceAddress 字符串 客户的具体服务地址或房产地址
ServiceAddressRecipient 字符串 与 ServiceAddress 关联的名称
RemittanceAddress 字符串 客户的明确汇款或付款地址
RemittanceAddressRecipient 字符串 与 RemittanceAddress 关联的名称
ServiceStartDate Date 服务时段的开始日期(例如,公用事业帐单服务期间) yyyy-mm-dd
ServiceEndDate Date 服务时段的结束日期(例如,公用事业帐单服务期间) yyyy-mm-dd
PreviousUnpaidBalance Number 先前未付的具体余额 Integer
CurrencyCode String 与提取的金额相关联的货币代码
KVKNumber(仅限 NL) 字符串 在荷兰注册的企业的唯一标识符 12345678
PaymentDetails 数组 包含“付款选项”详细信息的数组,例如 IBANSWIFTBPay(AU)
TotalDiscount 数字 适用于发票的全部折扣 Integer
TaxItems 数组 包含附加税收信息的数组,例如 CGSTIGSTSGST。 此行项前仅适用于德国 (de)、西班牙 (es)、葡萄牙 (pt) 和加拿大英语 (en-CA) 区域设置

行项目

下面是在 JSON 输出响应中从发票中提取的行项(以下输出使用此示例发票):

名称 Type 说明 文本(行项目 #1) 值(标准化输出)
字符串 行项目的完整字符串文本行 2021/3/4 A123 咨询服务 2 小时 30.00 美元 10% 60.00 美元
金额 Number 行项目的数量 60.00 美元 100
说明 字符串 发票行项目的文本说明 咨询服务 咨询服务
数量 Number 此发票行项目的数量 2 2
单价 Number 此项目一个单位的净价或毛价(具体取决于发票的发票总额设置) 30.00 美元 30
ProductCode 字符串 与特定行项目关联的产品代码、产品编号或 SKU A123
计价单位 字符串 行项目单位,如公斤、磅等。 小时
日期 Date 对应于每个行项目的日期。 这通常是行项目的发货日期 2021/3/4 2021-03-04
税款 Number 与每个行项目关联的税款。 可能的值包括税金和税款 Y/N 10.00
TaxRate 数字 与每个行项目关联的税率。 10%

提取的发票键值对和行项位于 JSON 输出的 documentResults 部分。

键值对

预生成的发票 2022-06-30 及更高版本支持选择性地返回键值对。 默认情况下,将禁用键值对的返回。 键值对是发票中的特定范围,用于标识标签或键及其关联的响应或值。 在发票中,这些键值对可能是用户为该字段或电话号码输入的标签和值。 AI 模型经过训练,可基于各种文档类型、格式和结构提取可识别的键和值。

当模型检测到有键但无关联的值,或模型处理可选字段时,键也可以单独存在。 例如,在某些实例中,表单上的中间名字段可留空。 键值对始终是文档中包含的文本范围。 对应以不同方式描述相同值的文档,例如客户/用户,关联的键将是客户或用户(具体取决于上下文)。

提取的字段

发票服务会提取文本、表和 26 个发票字段。 下面是在 JSON 输出响应中从发票中提取的字段(以下输出使用此示例发票)。

名称 Type 说明 文本 值(标准化输出)
CustomerName 字符串 正在开票的客户 Microsoft Corp
CustomerId 字符串 客户的引用 ID CID-12345
PurchaseOrder 字符串 采购订单参考编号 PO-3333
InvoiceId 字符串 此特定发票的 ID(通常为“发票编号”) INV-100
InvoiceDate date 开具发票的日期 2019 年 11 月 15 日 2019-11-15
DueDate date 此发票的支付截止日期 2019/12/15 2019-12-15
VendorName string 创建发票的供应商 CONTOSO
VendorAddress 字符串 供应商的邮件地址 123 456th St New York, NY, 10001
VendorAddressRecipient 字符串 与 VendorAddress 关联的名称 Contoso 总部
CustomerAddress 字符串 客户的邮件地址 123 Other Street, Redmond, Washington, 98052
CustomerAddressRecipient 字符串 与 CustomerAddress 关联的名称 Microsoft Corp
BillingAddress 字符串 客户的具体帐单邮寄地址 123 Bill Street, Redmond, Washington, 98052
BillingAddressRecipient 字符串 与 BillingAddress 关联的名称 Microsoft 服务
ShippingAddress 字符串 客户的具体送货地址 123 Ship Street, Redmond, Washington, 98052
ShippingAddressRecipient 字符串 与 ShippingAddress 关联的名称 Microsoft 交付
总计 数字 此发票上标识的小计字段 100.00 美元 100
TotalTax 数字 此发票上标识的总税款字段 $10.00 10
InvoiceTotal 数字 与此发票关联的新费用总计 110.00 美元 110
AmountDue 数字 应支付给供应商的总金额 610.00 美元 610
ServiceAddress 字符串 客户的具体服务地址或房产地址 123 Service Street, Redmond, Washington, 98052
ServiceAddressRecipient 字符串 与 ServiceAddress 关联的名称 Microsoft 服务
RemittanceAddress 字符串 客户的明确汇款或付款地址 123 Remit St New York, NY, 10001
RemittanceAddressRecipient 字符串 与 RemittanceAddress 关联的名称 Contoso 计费
ServiceStartDate date 服务时段的开始日期(例如,公用事业帐单服务期间) 2019/10/14 2019-10-14
ServiceEndDate date 服务时段的结束日期(例如,公用事业帐单服务期间) 2019/11/14 2019-11-14
PreviousUnpaidBalance 数字 先前未付的具体余额 500.00 美元 500

下面是在 JSON 输出响应中从发票中提取的行项,使用此示例发票

名称 Type 说明 文本(行项目 #1) 值(标准化输出)
字符串 行项目的完整字符串文本行 2021/3/4 A123 咨询服务 2 小时 30.00 美元 10% 60.00 美元
金额 数字 行项目的数量 60.00 美元 100
说明 字符串 发票行项目的文本说明 咨询服务 咨询服务
数量 数字 此发票行项目的数量 2 2
单价 数字 此项目一个单位的净价或毛价(具体取决于发票的发票总额设置) 30.00 美元 30
ProductCode 字符串 与特定行项目关联的产品代码、产品编号或 SKU A123
计价单位 字符串 行项目单位,如公斤、磅等。 小时
日期 date 对应于每个行项目的日期。 这通常是行项目的发货日期 2021/3/4 2021-03-04
税款 数字 与每个行项目关联的税款。 可能的值包括税金、税款 % 和税款 Y/N 10%

JSON 输出

JSON 输出分为三个部分:

  • "readResults" 节点包含所有已识别的文本和选定标记。 文本按页,然后按行,然后按单个单词进行组织。
  • "pageResults" 节点包含提取的表和单元格及其边界框、置信度以及对 readResults 中的行和词的引用。
  • "documentResults" 节点包含模型发现的特定于发票的值和行项目。 可以在此处找到发票中的所有字段,如发票 ID、送货地址、帐单地址、客户、总计、行项目等等。

迁移指南

后续步骤