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

用 Document AI 实现大规模自动数据采集:实验室挑战赛

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

GSP367

Google Cloud 自学实验的徽标

概览

在实验室挑战赛中,我们会为您提供一个场景和一系列任务。您将使用从课程的各个实验中学到的技能自行确定如何完成这些任务,而不是按照分步说明进行操作。自动评分系统(显示在本页面中)会提供有关您是否已正确完成任务的反馈。

在您参加实验室挑战赛期间,我们不会再教授新的 Google Cloud 概念知识。您需要拓展所学的技能,例如通过更改默认值和查看并研究错误消息来更正您自己所犯的错误。

要想获得满分,您必须在该时间段内成功完成所有任务!

建议已报名参加用 Document AI 实现大规模自动数据采集技能徽章课程的学员参加此实验室挑战赛。准备好接受挑战了吗?

挑战场景

您是一家大型基础设施管理公司的数据工程师,被指派与公司的财务部门合作开展一个内部项目。该公司必须处理堆积如山且不断增加的文件,所有文件都需要逐一进行人工验证和授权。这是一项成本高昂的任务,需要投入大量人力。该公司打算利用 Google Cloud 工具,以高效且省力的方式自动收集、分类和验证文档。

您的挑战

您需要创建一个文档处理流水线,用于自动处理上传到 Cloud Storage 的文档。此流水线由一个主要的 Cloud Run 函数组成,该函数使用 Document AI 表单处理器处理新文件,以从文档中提取数据。然后,该函数会将从这些文件中检测到的表单数据保存到 BigQuery。

我们为您提供了用于执行处理操作的 Cloud Run 函数的源代码。请按照下方架构图所示部署文档处理流水线,并确保针对您的特定流水线正确配置各项组件。

Document AI 实验室挑战赛解决方案架构

任务 1. 启用 Cloud Document AI API 并复制实验源文件。

在此任务中,您将启用 Cloud Document AI API 并将启动文件复制到 Cloud Shell 中。

启用 Cloud Document AI API

  • 启用 Cloud Document AI API。
启用 Cloud Document AI API

将实验源文件复制到 Cloud Shell 中

包含预定义代码的 Cloud Run 函数托管在远程 Cloud Storage 存储桶中。将这些源文件复制到 Cloud Shell 中。这些文件包括 Cloud Run 函数的源代码,以及您将在实验中创建的 BigQuery 表的架构。

  • 在 Cloud Shell 中,输入以下命令来克隆实验的源代码库:
mkdir ./document-ai-challenge gsutil -m cp -r gs://spls/gsp367/* \ ~/document-ai-challenge/

任务 2. 创建表单处理器

使用 Document AI Form Parser 处理器在通用(非专用)部分中创建通用表单处理器实例。通用表单处理器可处理各种类型的文档,并提取文档中所有可识别的文本内容,以及从布局中推断出的表单信息。

  • 使用以下配置详情创建处理器:
属性
处理器类型 Form Parser
处理器名称
地区 US
注意:在本实验的后续部分,您将使用此处理器的 PROCESSOR IDPARSER LOCATION 配置 Cloud Run 函数,以便 Cloud Run 函数使用此特定处理器来处理账单。点击创建的处理器,并记下 PROCESSOR ID。不过,处理器区域是 PARSER LOCATION。 创建表单处理器

任务 3. 创建 Google Cloud 资源

创建文档处理流水线所需的 Google Cloud Storage 和 BigQuery 资源,完成环境准备。

创建输入、输出和归档 Cloud Storage 存储桶

  • 在此步骤中,您必须创建以下三个 Cloud Storage 存储桶,并启用统一的存储桶级访问权限。
存储桶名称 用途 存储类别 位置
用于输入账单 Standard
用于存储已处理的数据 Standard
用于归档账单 Standard
注意:可以使用 gsutil 工具的 -mb 参数创建存储桶,使用 -c 参数设置存储类别,使用 -l 参数设置区域位置,并使用 -b 标志(设为 on 或 off)设置统一存储桶级访问权限。如需详细了解如何使用 gsutil 创建存储桶,请参阅 mb - 创建存储桶参考文档

创建 BigQuery 数据集和表

  • 在此步骤中,您需要创建数据处理流水线所需的 BigQuery 数据集和输出表。

数据集

数据集名称 位置
invoice_parser_results US
注意:使用 bq mk 创建 BigQuery 资源。命令行开关参数 -d 用于创建数据集,--location 用于设置资源的位置。如需详细了解如何使用 bq 命令行工具创建数据集,请参阅创建数据集指南

JSON 文件 document-ai-challenge/scripts/table-schema/doc_ai_extracted_entities.json 中提供了提取信息的表架构。使用此架构在 invoice_parser_results 数据集中创建一个名为 doc_ai_extracted_entities 的表。

注意:使用 bq mk 创建 BigQuery 资源。命令行开关 --table 用于创建表。如需详细了解如何使用 bq 命令行工具创建具有架构定义的表,请参阅关于创建和使用表的指南

您可以在 Cloud 控制台中前往 BigQuery,并使用 BigQuery SQL 工作区检查 invoice_parser_results 数据集中表的架构。

创建 Google Cloud 资源

任务 4. 部署文档处理 Cloud Run 函数

要完成此任务,您需要部署数据处理流水线使用的 Cloud Run 函数,以处理上传到 Cloud Storage 的账单。此函数将使用 Document AI API 通用表单处理器从原始文档中提取表单数据。

您可以使用代码编辑器或您选择的任何其他编辑器来检查 Cloud Run 函数的源代码。Cloud Run 函数存储在 Cloud Shell 中的以下文件夹中:

  • Process Invoices - scripts/cloud-functions/process-invoices

当文件上传到您之前创建的输入文件存储桶时,必须触发 Cloud Run 函数 process-invoices

部署 Cloud Run 函数以处理上传到 Cloud Storage 的文档

部署一个 Cloud Run 函数,该函数使用 Document AI 表单处理器来解析上传到 Cloud Storage 存储桶的表单文档。

  1. 前往 scripts 目录:
cd ~/document-ai-challenge/scripts
  1. 将 Artifact Registry Reader 角色分配给 Compute Engine 服务账号:
PROJECT_ID=$(gcloud config get-value project) PROJECT_NUMBER=$(gcloud projects list --filter="project_id:$PROJECT_ID" --format='value(project_number)') SERVICE_ACCOUNT=$(gcloud storage service-agent --project=$PROJECT_ID) gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT \ --role roles/pubsub.publisher
  1. 部署 Cloud Run 函数:
export CLOUD_FUNCTION_LOCATION={{{ project_0.default_region | "REGION" }}} gcloud functions deploy process-invoices \ --gen2 \ --region=${CLOUD_FUNCTION_LOCATION} \ --entry-point=process_invoice \ --runtime=python313 \ --service-account=${PROJECT_ID}@appspot.gserviceaccount.com \ --source=cloud-functions/process-invoices \ --timeout=400 \ --env-vars-file=cloud-functions/process-invoices/.env.yaml \ --trigger-resource=gs://${PROJECT_ID}-input-invoices \ --trigger-event=google.storage.object.finalize\ --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --allow-unauthenticated 注意:如果在部署函数时收到权限错误,请等待 2-3 分钟,然后重新运行命令。

如果您检查 Cloud Run 函数的源代码,会发现该函数通过两个运行时环境变量获取 Document AI 处理器详细信息。

  • 您需要重新配置 Cloud Run 函数部署,以便环境变量 PROCESSOR_IDPARSER_LOCATION 包含您在上一步中部署的 Form Parser 处理器的正确值。
  • PARSER_LOCATION 值必须采用小写字母
  • 请务必将 PROJECT_ID 环境变量更新为您的项目 ID。

等待函数完全重新部署。

部署文档处理 Cloud Run 函数

任务 5. 测试并验证端到端解决方案

在最后一项任务中,您需要使用流水线成功处理 ~/document-ai-challenge/invoices 文件夹中的一组账单。

  1. 将这些账单上传到输入 Cloud Storage 存储桶,并监控流水线的进度。

  2. 观察事件,直到看到表明函数执行已完成且状态为 OK 的最后一则事件。

流水线完全处理完文档后,您会看到 Document AI 处理器从账单中提取的表单信息已写入 BigQuery 表中。

注意:如需监控进度,请点击 Cloud Run functions“管理”部分中的日志,查看日志。 注意:在本实验中,您可能会看到一些不会对文档处理产生重大影响的错误,尤其是超时错误。如果您没有看到数据写入 BigQuery 的报告,请仔细检查 Cloud Run 控制台的变量和密钥标签页中设置的参数是否正确,然后重试。

特别是,请确保您设置的处理器 ID 和位置变量有效,并注意位置参数必须使用小写字母。 另请注意,事件列表不会自动刷新。
验证流水线处理的数据

恭喜!

恭喜!在本实验中,您成功创建了一个文档处理流水线,该流水线使用 Document AI API 自动处理上传到 Cloud Storage 的文档。您创建了表单处理器,部署了 Cloud Run 函数来处理文档,并通过处理一组账单来验证端到端解决方案。

“用 Document AI 实现大规模自动数据采集”课程徽章

Google Cloud 培训和认证

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

本手册的最后更新时间:2025 年 11 月 14 日

本实验的最后测试时间:2025 年 11 月 14 日

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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