实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

使用 Document AI 专用处理器 (Python)

实验 10 分钟 universal_currency_alt 5 个点数 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

GSP1140

Google Cloud 自学实验的徽标

概览

Document AI 是一种文档理解解决方案,接受非结构化数据(例如文档、邮件、账单、表单等),使数据更易于理解、分析和使用。该 API 通过内容分类、实体提取、高级搜索等功能提供结构化数据。

在本实验中,您将学习如何使用 Document AI 专用处理器,通过 Python 对专用文档进行分类和解析。对于解析和实体提取,我们将以账单为例进行说明。此过程和示例代码适用于 Document AI 支持的任何专用文档

目标

在本实验中,您将学习如何执行以下任务:

  • 使用专用处理器提取架构化实体。

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell “激活 Cloud Shell”图标

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 Cloud Shell 信息窗口中的设置。
    • 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。

如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

任务 1. 启用 Document AI API

您必须先启用 Cloud Document AI API,然后才能开始使用 Document AI。

  1. 点击控制台顶部的激活 Cloud Shell 按钮,打开 Cloud Shell。

  2. 在 Cloud Shell 中,运行以下命令以启用 Document AI API。

gcloud services enable documentai.googleapis.com

您应会看到类似下图的界面:

Operation "operations/..." finished successfully.

您还需要安装 Pandas,这是适用于 Python 的开源数据分析库。

  1. 运行以下命令以安装 Pandas。
pip3 install --upgrade pandas
  1. 运行以下命令,安装 Document AI 的 Python 客户端库。
pip3 install --upgrade google-cloud-documentai

您应会看到类似下图的界面:

... Installing collected packages: google-cloud-documentai Successfully installed google-cloud-documentai-2.15.0

现在,您可以使用 Document AI API 了!

点击检查我的进度以验证是否完成了以下目标:

启用 Document AI API

任务 2. 创建表单解析器处理器

在本教程中,您必须先创建一个表单解析器处理器实例,以便在 Document AI Platform 中使用。

  1. 在导航菜单中,点击人工智能下的查看所有产品,然后选择 Document AI

Document AI 概览控制台

  1. 点击探索处理器,向下滚动到专用,然后在账单解析器中点击创建处理器

采购文档拆分器

  1. 将其命名为 lab-invoice-parser,并从列表中选择距离最近的区域。

  2. 点击创建以创建处理器。

  3. 复制您的处理器 ID。您稍后必须在代码中使用此 ID

实验账单解析器

创建处理器

下载示例文档

我们提供了一些示例文档,供您在此实验中使用。

  1. 运行以下命令,将示例表单下载到 Cloud Shell。
gcloud storage cp gs://cloud-samples-data/documentai/codelabs/specialized-processors/procurement_multi_document.pdf . gcloud storage cp gs://cloud-samples-data/documentai/codelabs/specialized-processors/google_invoice.pdf .
  1. 使用以下命令确认文件已下载到 Cloud Shell:
ls

您应会看到类似下图的界面:

google_invoice.pdf procurement_multi_document.pdf

任务 3. 提取实体

现在,您可以从文件中提取架构化实体,包括置信度得分、属性和标准化值。

发出 API 请求的代码与上一步相同,可以通过在线请求或批量请求完成。

您将从实体中获取以下信息:

  • 实体类型
    • (例如 invoice_datereceiver_nametotal_amount
  • 原始值
    • 原始文档文件中的数据值。
  • 标准化值
  • 置信度值
    • 模型对值准确性的“确信”程度。

某些实体类型(例如 line_item)也可能包含属性,属性属于嵌套实体,例如 line_item/unit_priceline_item/description。此示例对嵌套结构进行扁平化处理,以便于查看。

账单解析器

  1. 在 Cloud Shell 中,创建一个名为 extraction.py 的文件,并将以下代码粘贴到该文件中:
import pandas as pd from google.cloud import documentai_v1 as documentai def online_process( project_id: str, location: str, processor_id: str, file_path: str, mime_type: str, ) -> documentai.Document: """ 使用 Document AI Online Processing API 处理文档。 """ opts = {"api_endpoint": f"{location}-documentai.googleapis.com"} # 实例化客户端 documentai_client = documentai.DocumentProcessorServiceClient(client_options=opts) # 处理器的完整资源名称,例如: # projects/project-id/locations/location/processor/processor-id # 您必须先在 Cloud 控制台中创建新处理器 resource_name = documentai_client.processor_path(project_id, location, processor_id) # 将文件读入内存 with open(file_path, "rb") as file: file_content = file.read() # 将二进制数据加载到 Document AI RawDocument 对象中 raw_document = documentai.RawDocument(content=file_content, mime_type=mime_type) # 配置处理请求 request = documentai.ProcessRequest(name=resource_name, raw_document=raw_document) # 使用 Document AI 客户端处理示例表单 result = documentai_client.process_document(request=request) return result.document PROJECT_ID = "YOUR_PROJECT_ID" LOCATION = "YOUR_PROJECT_LOCATION" # 格式为“us”或“eu” PROCESSOR_ID = "INVOICE_PARSER_ID" # 在 Cloud 控制台中创建处理器 # 当前工作目录中的本地文件 FILE_PATH = "google_invoice.pdf" # 请参阅 https://cloud.google.com/document-ai/docs/processors-list # 了解支持的文件类型 MIME_TYPE = "application/pdf" document = online_process( project_id=PROJECT_ID, location=LOCATION, processor_id=PROCESSOR_ID, file_path=FILE_PATH, mime_type=MIME_TYPE, ) types = [] raw_values = [] normalized_values = [] confidence = [] # 获取每个键值对及其对应的置信度得分。 for entity in document.entities: types.append(entity.type_) raw_values.append(entity.mention_text) normalized_values.append(entity.normalized_value.text) confidence.append(f"{entity.confidence:.0%}") # 获取具有置信度得分的属性(子实体) for prop in entity.properties: types.append(prop.type_) raw_values.append(prop.mention_text) normalized_values.append(prop.normalized_value.text) confidence.append(f"{prop.confidence:.0%}") # 创建 Pandas DataFrame,以表格格式打印值。 df = pd.DataFrame( { "Type": types, "Raw Value": raw_values, "Normalized Value": normalized_values, "Confidence": confidence, } ) print(df)
  1. INVOICE_PARSER_ID 替换为您之前创建的账单解析器处理器的 ID,并使用文件 google_invoice.pdf

  2. YOUR_PROJECT_IDYOUR_PROJECT_LOCATION 分别替换为您的 Google Cloud 项目 ID 和处理器位置。

  3. 运行脚本:

python3 extraction.py

输出应如下所示:

Type Raw Value Normalized Value Confidence 0 due_date Sep 30, 2019 2019-09-30 99% 1 net_amount 22,379.39 22379.39 99% 2 total_amount 19,647.68 19647.68 99% 3 invoice_date Sep 24, 2019 2019-09-24 98% 4 total_tax_amount 1,767.97 1767.97 94% 5 receiver_name Jane Smith, 88% 6 receiver_address 1600 Amphitheatre Pkway Mountain View, CA 94043 77% 7 invoice_id 23413561D 60% 8 freight_amount 199.99 199.99 60% 9 invoice_type invoice_statement 59% 10 currency $ USD 58% 11 supplier_name Google Google 37% 12 line_item 9.99 12 12 ft HDMI cable 119.88 100% 13 line_item/unit_price 9.99 9.99 95% 14 line_item/quantity 12 12 75% 15 line_item/description 12 ft HDMI cable 64% 16 line_item/amount 119.88 119.88 90% 17 line_item 12 399.99 27" Computer Monitor 4,799.88 100% 18 line_item/quantity 12 12 76% 19 line_item/unit_price 399.99 399.99 95% 20 line_item/description 27" Computer Monitor 42% 21 line_item/amount 4,799.88 4799.88 93% 22 line_item Ergonomic Keyboard 12 59.99 719.88 100% 23 line_item/description Ergonomic Keyboard 42% 24 line_item/quantity 12 12 75% 25 line_item/unit_price 59.99 59.99 94% 26 line_item/amount 719.88 719.88 85% 27 line_item Optical mouse 12 19.99 239.88 100% 28 line_item/description Optical mouse 55% 29 line_item/quantity 12 12 72% 30 line_item/unit_price 19.99 19.99 94% 31 line_item/amount 239.88 239.88 81% 32 line_item Laptop 12 1,299.99 15,599.88 100% 33 line_item/description Laptop 65% 34 line_item/quantity 12 12 71% 35 line_item/unit_price 1,299.99 1299.99 94% 36 line_item/amount 15,599.88 15599.88 91% 37 line_item Misc processing fees 899.99 899.99 1 100% 38 line_item/description Misc processing fees 54% 39 line_item/unit_price 899.99 899.99 92% 40 line_item/amount 899.99 899.99 82% 41 line_item/quantity 1 1 68%
  1. 创建 Cloud Storage 存储桶,并将命令 docai_outputs.txt 生成的输出上传到该存储桶。
# 创建存储桶 export PROJECT_ID=$(gcloud config get-value project) gsutil mb gs://$PROJECT_ID-docai # 创建并上传文件 python3 extraction.py > docai_outputs.txt gsutil cp docai_outputs.txt gs://$PROJECT_ID-docai 创建 Cloud Storage 存储桶并上传输出文件

可选:试用其他专用处理器

您已成功使用用于处理采购单据的 Document AI 对文档进行分类,并解析账单。Document AI 还支持下面列出的其他专用解决方案:

您可以按照相同的步骤,使用相同的代码来处理任何专用处理器。

如果您想试用其他专用解决方案,可以重新执行实验,使用其他处理器类型和专用示例文档。

注意:部分身份证件、借贷单据和合同处理器目前仅限部分用户使用。如果您有适用于这些处理器的商业应用场景,请先填写并提交相应的申请表单,然后再继续操作。

示例文档

以下是一些示例文档,您可以使用它们试用其他专用处理器。

解决方案 处理器类型 文档
身份证件 美国驾照解析器
借贷单据 借贷单据拆分器和分类器
借贷单据 W9 解析器
合同 合同解析器

您可以在文档中找到其他示例文档和处理器输出。

恭喜!

恭喜!您已成功使用 Document AI 解析了账单。您还学习了如何使用 Python 客户端库调用 Document AI API。

后续步骤/了解详情

请查看以下资源,详细了解 Document AI 和 Python 客户端库:

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2024 年 11 月 7 日

上次测试实验的时间:2024 年 11 月 7 日

版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

使用无痕模式或无痕浏览器窗口是运行此实验的最佳方式。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。