准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Enable APIs
/ 20
Set up Storage buckets, BigQuery dataset, and Pub/Sub topic
/ 20
Create process-invoices Cloud Function
/ 20
Create geocode-addresses Cloud Function
/ 20
Check pipeline has processed data
/ 20
Document AI API 是一种文档理解解决方案,可以提取文档、电子邮件等非结构化数据,从而让用户更容易理解、分析和使用这些数据。
在本实验中,您将构建一个文档处理流水线,用于自动分析上传到 Cloud Storage 的文档。该流水线使用 Cloud Run 函数和 Document AI 表单处理器来提取数据,并将其存储在 BigQuery 中。如果表单包含地址字段,则会将地址数据发送到 Pub/Sub 主题。这会触发第二个 Cloud Run 函数,该函数使用 Geocoding API 添加坐标,并将结果写入 BigQuery。
这个简单的流水线使用通用表单处理器来检测基本表单数据,例如带标签的地址字段。对于更复杂的文档,Document AI 提供了专门的解析器(超出了本实验的范围),即使没有明确的标签,它也能提取详细信息。例如,账单解析器可以通过理解常见的账单布局,从未加标签的账单中识别地址和供应商详细信息。
您将创建的整体架构如下所示:
此示例架构使用 Cloud Run functions 实施一个简单的流水线,但建议不要在生产环境中使用 Cloud Run functions,因为 Document AI API 调用可能会超出 Cloud Run functions 支持的超时限制。建议使用 Cloud Tasks 来获取更强大的无服务器解决方案。
在本实验中,您将学习如何完成以下操作:
您将配置一个 Cloud Run 函数,以执行以下操作:
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。
点击 Google Cloud 控制台顶部的激活 Cloud Shell 。
在弹出的窗口中执行以下操作:
如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID
gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。
输出:
输出:
gcloud 的完整文档,请参阅 gcloud CLI 概览指南。
您必须为此实验启用 Document AI、Cloud Run functions、Cloud Build 和 Geocoding API,然后创建 Geocoding Cloud Run 函数所需的 API 密钥。
点击 Google Cloud 控制台顶部的激活 Cloud Shell 。
在 Cloud Shell 中,输入以下命令以启用实验所需的 API:
在控制台的导航菜单 () 中,依次点击 API 和服务 > 凭证。
选择创建凭证,然后从下拉菜单中选择 API 密钥。
“API 密钥已创建”对话框中会显示您新建的密钥。API 密钥是一个长字符串,包含大小写字母、数字和短划线。例如,a4db08b757294ea94c08f2df493465a1。
点击操作下的三点状图标,然后在对话框中点击修改 API 密钥。
在 API 限制部分中选择限制密钥,为新 API 密钥添加 API 限制。
点击选择 API 下拉菜单,然后在过滤条件框中输入 Geocoding API。
选择 Geocoding API,然后点击确定。
点击保存按钮。
在此任务中,您会将源文件复制到 Cloud Shell 中。这些文件包括 Cloud Run 函数的源代码,以及您将在实验中创建的 BigQuery 表的架构。
使用专业的 Document AI 表单解析器,在 Document AI Platform 上创建一个通用表单处理器实例。通用表单处理器可处理各种类型的文档并提取文档中所有可识别的文本内容。除了打印的文本,它还可以处理手写的和沿任意方向排列的文本,并支持多种语言,理解表单数据元素之间的关联,因此可以帮助您从包含文本标签的表单字段中提取键值对。
在 Google Cloud 控制台的搜索栏中,输入 Document AI,然后点击产品和页面中的相应结果。
点击探索处理器,然后点击 Form Parser(表单解析器)以创建新处理器。
将处理器的名称指定为 ocr-processor 并从地区列表中选择 US(美国)。
点击创建以创建处理器。
在本实验的后面部分,您将使用此处理器的 ID 和位置配置 Cloud Run 函数,以便 Cloud Run 函数使用此特定处理器来处理示例账单。
在本部分,您将创建文档处理流水线所需的 Google Cloud 资源,从而准备好环境。
为文档处理流水线创建输入、输出和归档 Cloud Storage 存储桶。
创建 BigQuery 数据集和数据处理流水线所需的三个输出表。
您可以在 Cloud 控制台中前往 BigQuery,并使用 BigQuery SQL 工作区检查 invoice_parser_results 数据集中表的架构。
初始化 Pub/Sub 主题,该主题用于触发处理流水线中的 Geocoding API 数据丰富化操作。
创建两个 Cloud Run 函数,以供数据处理流水线用于处理上传到 Cloud Storage 的账单。这些函数使用 Document AI API 从原始文档中提取表单数据,然后使用 GeoCode API 检索从文档中提取的地址信息的地理定位数据。
您可以使用代码编辑器或您选择的任何其他编辑器来检查两个 Cloud Run 函数的源代码。Cloud Run 函数存储在 Cloud Shell 中的以下文件夹中:
scripts/cloud-functions/process-invoices
scripts/cloud-functions/geocode-addresses
当文件上传到您之前创建的输入文件存储桶时,主 Cloud Run 函数 process-invoices 会被触发。
函数文件夹 scripts/cloud-functions/process-invoices 包含用于创建 process-invoices Cloud Run 函数的两个文件。
requirements.txt 文件指定函数所需的 Python 库。这包括 Document AI 客户端库,以及 Python 代码所需的其他 Google Cloud 库,这些库可用于从 Cloud Storage 读取文件,将数据保存到 BigQuery,以及向 Pub/Sub 写入消息,进而触发解决方案流水线中的其余函数。
main.py Python 文件包含 Cloud Run 函数代码,它用于创建 Document AI、BigQuery 和 Pub/Sub API 客户端,以及以下用于处理文档的内部函数:
write_to_bq - 将字典对象写入 BigQuery 表。请注意,在调用此函数之前,您必须确保架构有效。get_text - 将表单名称和值文本锚点映射到文档中的扫描文本。这样,该函数就能识别表单中的特定元素(例如供应商名称和地址),并提取相关值。一个专业的 Document AI 处理器可以直接在实体属性中提供这种上下文信息。process_invoice - 使用异步 Document-AI 客户端 API 从 Cloud Storage 读取和处理文件,如下所述:
process_invoices Cloud Run 函数只会处理检测到具有以下表单字段名称的表单数据:
input_file_nameaddresssupplierinvoice_numberpurchase_orderdatedue_datesubtotaltaxtotal另一个 Cloud Run 函数 geocode-addresses 在 Pub/Sub 主题上收到新消息时触发,并从 Pub/Sub 消息中提取其参数数据。
创建一个 Cloud Run 函数,该函数使用 Document AI 表单处理器来解析已上传到 Cloud Storage 存储桶的表单文档。
创建 Cloud Run 函数,该函数接受来自 Pub/Sub 消息的地址数据,并使用 Geocoding API 精确定位地址。
在此任务中,您将通过 Cloud 控制台修改每个函数的环境变量,以最终确定配置,使其反映您要在实验中使用的特定参数。
为 process-invoices 函数设置 Cloud Run 函数环境变量。
Cloud Run functions,然后点击产品和页面中的相应结果。系统会重定向到 Cloud Run 控制台,点击前往 Cloud Run functions(第 1 代)函数列表页面,查看已部署的函数 process-invoices 和 geocode-addresses。
us 或 eu。此参数必须采用小写字母。PROCESSOR_ID、PARSER_LOCATION 和 GCP_PROJECT 值,以用于您的账单处理器。为 GeoCode 数据丰富化函数设置 Cloud Run 函数环境变量。
将测试数据上传到 Cloud Storage,并随着文档被处理和提取的数据得到增强,监控整个流水线的进度。
process-invoices Cloud Run 函数:Cloud Run functions,然后点击产品和页面中的相应结果。您将看到与创建函数相关的事件,以及为配置环境变量而进行的更新,接着是一些事件,它们会显示有关正在处理的文件和 Document AI 检测到的数据的详细信息。
继续查看事件,直到您看到表明函数已执行完成的最终事件,即函数已完成 LoadJob。如果报告了错误,请仔细检查在上一部分介绍的 .env.yaml 文件中设置的参数是否正确。特别是,您要确保处理器 ID、位置和项目 ID 有效。事件列表不会自动刷新。
处理完成后,如果 Document AI 处理器在上传的文档中检测到地址数据,则 BigQuery 表中将填充 Document AI 提取的实体以及 Geocoding API 提供的丰富化数据。
您会看到欢迎在 Cloud 控制台中使用 BigQuery 消息框,其中提供了指向快速入门指南和版本说明的链接。
BigQuery 控制台即会打开。
在探索器中展开您的项目 ID。
展开 invoice_parser_results。
选择 doc_ai_extracted_entities,然后点击预览。
您可以看到账单处理器从账单中提取的表单信息,以及检测到的地址信息和供应商名称。
您可以看到,对于每个已处理的账单,如果其中包含 Document AI 能够提取的地址数据,则会显示格式化的地址、纬度和经度。
您已成功使用 Document AI API 和其他 Google Cloud 服务构建了端到端账单处理流水线。在本实验中,您启用了 Document AI API,部署了使用 Document AI、BigQuery、Cloud Storage 和 Pub/Sub API 的 Cloud Run 函数,并配置了在将文档上传到 Cloud Storage 时触发的 Cloud Run 函数。您还配置了一个 Cloud Run 函数,以使用 Document AI Python 客户端库,并在接收到 Pub/Sub 消息时自动触发。
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
上次更新手册的时间:2025 年 8 月 26 日
上次测试实验的时间:2025 年 7 月 29 日
版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验