Workflows でドキュメント処理パイプラインを構築する
Document AI を使用して、ドキュメントを処理するステップが複数含まれるワークフローを構築する場合は、サーバーレス オーケストレーションを使用してワークフローを管理することをおすすめします。
Workflows は、一連のタスクを定義した順序でまとめてリンクできます。さらに、インフラストラクチャの管理は不要であり、需要に応じてシームレスにスケールします(ゼロへのスケールダウンも可能)。料金モデルは従量課金制で、料金は実行時間に対してのみ発生します。
Workflows には、Document AI API のコネクタが組み込まれています。コネクタでは、構成ファイルを使用して手順を定義する以外に、追加のコードは必要ありません。コネクタはリクエストの形式設定を処理し、API の詳細を非表示にします。コネクタには、認証、再試行と長時間実行オペレーションを処理する組み込みの動作もあります。
詳細については、コネクタを理解するをご覧ください。
このガイドでは、バッチ処理で Invoice パーサー プロセッサを使用して、一連のサンプル請求書を処理します。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Document AI, Cloud Storage, Workflows APIs. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Document AI, Cloud Storage, Workflows APIs. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- Google Cloud コンソールのナビゲーション メニューで [Document AI] をクリックし、[プロセッサ ギャラリー] を選択します。 
- [プロセッサ ギャラリー] で、[Invoice パーサー] を - 検索 して [作成] を選択します。  
- [プロセッサ名] を入力します(例: - workflows-invoice-processor)。
- プロセッサをホストするリージョン(Document AI API の - location)を選択します。
- [作成] をクリックします。[プロセッサの詳細] タブが表示されます。 
- プロセッサ ID をコピーします。これは、後でコードを作成する際に使用します。   
- Cloud Storage ドキュメントのバケットの作成ガイドに沿ってバケットを作成するか、既存のバケットを使用します。 
- バケットにフォルダを作成します( - docai-workflows-outputなど)。
- Google Cloud コンソールで Workflows ダッシュボードを開きます。 
- [ - 作成 ] をクリックして、最初のワークフローを作成します。[ワークフローの作成] ページが表示されます。  
- ワークフローの名前を変更 して- docai-workflows-quickstartにします。
- 説明を追加し、このプロジェクトにサービス アカウントがある場合はそれを選択します。 - サービス アカウントがない場合は、[新しいサービス アカウントを作成] を選択します。- サービス アカウントに名前を付け、[作成して続行] を選択します。  
- 次のロールを付与します。
- Document AI API User
- Workflows Invoker
- Logs Writer
- Service Usage Consumer
  
 
- サービス アカウントに名前を付け、[作成して続行] を選択します。
 
- サービス アカウントがない場合は、[新しいサービス アカウントを作成] を選択します。
- [ワークフローの作成] ページで、[ - 次へ ] をクリックします。
- Workflows エディタ でデフォルトの YAML を消去し、次のコードを貼り付けます。- main: params: [input] steps: - start: call: sys.log args: text: ${input} - vars: assign: - input_gcs_bucket: ${input.inputBucket} - output_gcs_bucket: ${input.outputBucket} - processor_id: ${input.processorId} - location: ${input.location} - project_id: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} - batch_process: call: googleapis.documentai.v1.projects.locations.processors.batchProcess args: name: ${"projects/" + project_id + "/locations/" + location + "/processors/" + processor_id} location: ${location} body: inputDocuments: gcsPrefix: gcsUriPrefix: ${input_gcs_bucket} documentOutputConfig: gcsOutputConfig: gcsUri: ${output_gcs_bucket} skipHumanReview: true result: batch_process_resp - return: return: ${batch_process_resp}
- [デプロイ] を選択します。
- ページの上部にある [ - 実行 ] をクリックして、[ワークフローを実行] ページに移動します。このページでは、コンソールでワークフローをテストできます。
- 次の入力 JSON のプレースホルダ変数を置き換えます。 - OUTPUT_BUCKET_PATH: 先ほど作成した出力バケットとフォルダのフルパス。
- PROCESSOR_ID: 先ほど作成したプロセッサのプロセッサ ID。
- LOCATION: 先ほど作成したプロセッサのリージョン。
 - { "inputBucket": "gs://cloud-samples-data/documentai/workflows", "outputBucket": "OUTPUT_BUCKET_PATH", "processorId": "PROCESSOR_ID", "location": "LOCATION" }
- JSON をコピーして - 入力テキスト ボックス に貼り付けます。
- ワークフローの下部にある [ - 実行 ] をクリックして入力内容をテストし、プロセスが完了するまで待ちます。
- ワークフローが完了すると、出力 JSON は次のようになります。 - { "done": true, "metadata": { "@type": "type.googleapis.com/google.cloud.documentai.v1.BatchProcessMetadata", "createTime": "2023-02-24T18:31:18.521764Z", "individualProcessStatuses": [ { "humanReviewStatus": { "state": "SKIPPED" }, "inputGcsSource": "gs://cloud-samples-data/documentai/workflows/baking_technologies_invoice.pdf", "outputGcsDestination": "OUTPUT_BUCKET_PATH/11119195367705871803/0", "status": {} }, { "humanReviewStatus": { "state": "SKIPPED" }, "inputGcsSource": "gs://cloud-samples-data/documentai/workflows/generic_invoice.pdf", "outputGcsDestination": "OUTPUT_BUCKET_PATH/11119195367705871803/1", "status": {} }, { "humanReviewStatus": { "state": "SKIPPED" }, "inputGcsSource": "gs://cloud-samples-data/documentai/workflows/google_invoice.pdf", "outputGcsDestination": "OUTPUT_BUCKET_PATH/11119195367705871803/2", "status": {} } ], "state": "SUCCEEDED", "updateTime": "2023-02-24T18:31:52.543163Z" }, "name": "projects/PROJECT_ID/locations/LOCATION/operations/11119195367705871803", "response": { "@type": "type.googleapis.com/google.cloud.documentai.v1.BatchProcessResponse" } }
- 出力ストレージ バケットを開くと、オペレーション ID 名が付いたフォルダに、処理された各請求書の出力が表示されます。   
- このフォルダ内にはサブフォルダがあり、 - DocumentJSON ファイルを含む入力バッチから処理されたドキュメントごとにサブフォルダが作成されます。
- 各 JSON ファイルを検査するか、ユースケースに関連するフィールドを使用するためのコードを記述できます。詳細については、レスポンスの処理ガイドをご覧ください。 
- ワークフローで追加のステップをリンクして、抽出されたエンティティを分析用のデータベースに挿入するなど、出力をさらに処理できるようになりました。 
- ワークフローをトリガーする方法の詳細については、ワークフローのドキュメントをご覧ください。 
- ワークフローの詳細
- Document AI Workflows コネクタの詳細を確認する
- 現在使用可能なプロセッサのリストと説明をご覧ください。
- レスポンスを処理する方法を学習する。
Invoice パーサーを作成する
Google Cloud コンソールを使用して、新しい Invoice パーサーを作成します。詳細については、プロセッサの作成と管理のページをご覧ください。
Cloud Storage で出力バケットを構成する
バッチ(非同期)処理を使用する場合は、入力ファイルと出力ファイルを Cloud Storage に保存する必要があります。次のバケットには、このガイドの入力として使用するサンプル ファイルが含まれています。
gs://cloud-samples-data/documentai/workflows
プロジェクトに出力ファイルを保存するようにバケットを構成します。
ワークフローの作成
ワークフローの定義
 
ワークフローのテスト
ワークフローがデプロイされたので、[ワークフローの詳細] ページが表示されます。
クリーンアップ
このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、次の手順を実施します。
不要な Google Cloud 料金が発生しないようにするには、Google Cloud console を使用して、不要なプロセッサ、バケット、ワークフロー、プロジェクトを削除します。