始める前に
- ラボでは、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 にアップロードされたドキュメントを自動的に分析するドキュメント処理パイプラインを構築します。このパイプラインでは、Document AI フォーム プロセッサを利用する Cloud Run 関数でデータを抽出して BigQuery に保存します。フォームに住所フィールドが含まれている場合、住所データは Pub/Sub トピックに送信されます。これにより、もう一つの Cloud Run 関数がトリガーされます。この関数は Geocoding API を使用して座標を追加し、結果を BigQuery に書き込みます。
このシンプルなパイプラインでは、一般用フォーム プロセッサを使用して、ラベル付き住所フィールドなどの基本的なフォームデータを検出します。より複雑なドキュメントに対しては、Document AI には、明示的なラベルがなくても詳細な情報を抽出する特殊なパーサー(このラボの範囲には含まれていません)が用意されています。たとえば、Invoice Parser は、一般的な請求書のレイアウトを理解することで、ラベルのない請求書から住所やサプライヤーの詳細を特定できます。
作成する全体的なアーキテクチャは次のようになります。
このアーキテクチャ例では、Cloud Run functions を使用して簡単なパイプラインを実装していますが、Document AI API 呼び出しが Cloud Run functions でサポートされているタイムアウトを超える可能性があるため、本番環境では Cloud Run functions は推奨されません。より堅牢なサーバーレス ソリューションとして、Cloud Tasks をおすすめします。
このラボでは、次の方法について学びます。
Cloud Run 関数を次のように構成します。
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
ウィンドウで次の操作を行います。
接続した時点で認証が完了しており、プロジェクトに各自の Project_ID、
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力:
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] を選択して、[OK] をクリックします。
[保存] をクリックします。
このタスクでは、ソースファイルを Cloud Shell にコピーします。これらのファイルには、Cloud Run 関数のソースコードと、ラボで作成する BigQuery テーブルのスキーマが含まれています。
Document AI の専用パーサーである Form Parser を使用して、Document AI Platform で使用する汎用フォーム プロセッサのインスタンスを作成します。この汎用フォーム プロセッサでは、あらゆる種類のドキュメントを処理でき、ドキュメント内の識別可能なテキスト要素がすべて抽出されます。タイプされたテキストだけでなく手書きのテキストも処理でき、さまざまな向きのテキスト、多数の言語に対応可能です。また、フォームデータ要素の相互関係を理解するので、テキストラベルのあるフォーム フィールドの Key-Value ペアを抽出可能です。
Google Cloud コンソールの検索バーに「Document AI」と入力し、プロダクト ページの検索結果をクリックします。
[プロセッサを確認] をクリックし、[Form パーサー] をクリックして新しいプロセッサを作成します。
プロセッサ名に「form-processor」を指定して、リージョンの一覧から [US(米国)] を選択します。
[作成] をクリックして、プロセッサを作成します。
このラボの後半で、このプロセッサのプロセッサ ID とロケーションを使用して Cloud Run 関数を構成します。これにより、Cloud Run 関数はこの特定のプロセッサを使用してサンプル請求書を処理します。
このセクションでは、ドキュメント処理パイプラインに必要な Google Cloud リソースを作成して、環境を準備します。
ドキュメント処理パイプラインの入力、出力、アーカイブ用の Cloud Storage バケットを作成します。
データ処理パイプラインに必要な BigQuery データセットと 3 つの出力テーブルを作成します。
Cloud コンソールで BigQuery に移動し、BigQuery SQL ワークスペースを使用して invoice_parser_results データセット内のテーブルのスキーマを調べることができます。
処理パイプラインで Geocoding API のデータ拡充オペレーションをトリガーするために使用する、Pub/Sub トピックを初期化します。
データ処理パイプラインが Cloud Storage にアップロードされた請求書を処理するために使用する 2 つの Cloud Run 関数を作成します。これらの関数は、Document AI API を使用して未加工のドキュメントからフォームデータを抽出し、GeoCode API を使用してドキュメントから抽出された住所情報に関する位置情報を取得します。
2 つの 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 には、Cloud Run 関数 process-invoices を作成するために使用される 2 つのファイルが含まれています。
requirements.txt ファイルでは、関数に必要な Python ライブラリを指定します。これには、Document AI クライアント ライブラリだけでなく、Cloud Storage からファイルを読み取り、BigQuery にデータを保存し、ソリューション パイプラインの残りの関数をトリガーするメッセージを Pub/Sub に書き込むために Python コードで必要な他の Google Cloud ライブラリも含まれます。
Python ファイル main.py には、Document AI、BigQuery、Pub/Sub の各 API クライアントを作成する Cloud Run 関数のコードと、ドキュメントを処理するための次の内部関数が含まれています。
write_to_bq - 辞書オブジェクトを BigQuery テーブルに書き込みます。この関数を呼び出す前に、スキーマが有効であることを確認する必要があります。get_text - フォーム名と値のテキスト アンカーを、ドキュメント内のスキャンされたテキストにマッピングします。これにより、関数はサプライヤー名や住所などの特定のフォーム要素を識別し、関連する値を抽出できます。専用の Document AI プロセッサは、そのコンテキスト情報をエンティティ プロパティに直接提供します。process_invoice - 非同期の Document-AI クライアント API を使用して、Cloud Storage からファイルを読み取り、次のように処理します。
Cloud Run 関数 process_invoices は、次のフォーム フィールド名で検出されたフォームデータのみを処理します。
input_file_nameaddresssupplierinvoice_numberpurchase_orderdatedue_datesubtotaltaxtotalもう一つの Cloud Run 関数である geocode-addresses は、新しいメッセージが Pub/Sub トピックに到着するとトリガーされ、Pub/Sub メッセージからパラメータ データを抽出します。
Document AI フォーム プロセッサを使用して、Cloud Storage バケットにアップロードされたフォーム ドキュメントを解析する Cloud Run 関数を作成します。
Pub/Sub メッセージから住所データを受け取り、Geocoding API を使用して住所を正確に特定する Cloud Run 関数を作成します。
このタスクでは、Cloud コンソールで各関数の環境変数を編集してラボ固有のパラメータを反映させます。これで Cloud Run 関数の構成が完了します。
process-invoices 関数の Cloud Run 関数環境変数を設定します。
Cloud Run functions」と入力し、プロダクト ページの検索結果をクリックします。Cloud Run コンソールにリダイレクトされるので、[Cloud Run 関数(第 1 世代)に移動する] をクリックして、デプロイされた関数 process-invoices と geocode-addresses を確認します。
us または eu になります。このパラメータは必ず小文字にしてください。PROCESSOR_ID、PARSER_LOCATION、GCP_PROJECT の値をもう一度更新します。GeoCode データ拡充関数の Cloud Run 関数環境変数を設定します。
テストデータを Cloud Storage にアップロードし、パイプラインでドキュメントが処理されて抽出されたデータが強化されていく進行状況をモニタリングします。
process-invoices をトリガーするサンプル フォームを Cloud Storage バケットにアップロードします。Cloud Run functions」と入力し、プロダクト ページの検索結果をクリックします。関数の作成と環境変数を構成するための更新に関連するイベントが表示されます。続いて、処理されるファイルの詳細と、Document AI によって検出されたデータを示すイベントが表示されます。
LoadJob で関数の実行が終了したことを示す最終イベントが表示されるまで、イベントを監視します。エラーが報告された場合は、前のセクションの .env.yaml ファイルで設定したパラメータが正しいことを再確認してください。特に、プロセッサ ID、ロケーション、プロジェクト ID が有効であることを確認してください。イベントリストは自動的には更新されません。
処理の最後に、BigQuery テーブルに Document AI で抽出されたエンティティと、Geocoding API によって提供された拡充データ(Document AI プロセッサが、アップロードされたドキュメントで住所データを検出した場合のみ)が入力されます。
[Cloud コンソールの BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。
BigQuery コンソールが開きます。
[エクスプローラ] でプロジェクト ID を開きます。
[invoice_parser_results] を開きます。
[doc_ai_extracted_entities] を選択して [プレビュー] をクリックします。
請求書プロセッサによって請求書から抽出されたフォーム情報が表示され、住所情報とサプライヤー名が検出されていることがわかります。
Document AI で抽出できた住所データを含む請求書ごとに、書式設定済みの住所、緯度、経度が表示されます。
Document AI API と他の Google Cloud サービスを使用して、エンドツーエンドの請求書処理パイプラインを構築できました。このラボでは、Document AI API を有効にし、Document AI API、BigQuery API、Cloud Storage API、Pub/Sub API を使用する Cloud Run 関数をデプロイし、ドキュメントが Cloud Storage にアップロードされたときにトリガーされるように Cloud Run 関数を構成しました。また、Python 用の Document AI クライアント ライブラリを使用し、Pub/Sub メッセージが作成されたときにトリガーされるように Cloud Run 関数を構成しました。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2025 年 8 月 26 日
ラボの最終テスト日: 2025 年 7 月 29 日
Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください