Cloud Storage 取り込みパイプライン

このドキュメントでは、Cloud Storage 取り込みパイプラインの機能と、パイプラインの実行方法について説明します。

Cloud Storage 取り込みパイプラインの機能

ユーザーは、Cloud Storage から Document AI Warehouse にドキュメントを転送できます。ユーザーは、検索、ドキュメント管理ワークフローなどのタスクで処理するか、Document AI の出力をテストするかを選択できます。

このパイプラインを使用する理由

多くのドキュメントを取り込む必要がある場合(処理の有無を問わず)、このパイプラインは信頼性の高いワークフローを提供します。また、概念実証や本番環境のワークロードのために、Document AI Warehouse のお客様のオンボーディングを迅速に行うことができます。

パイプラインの機能

一般に、Cloud Storage 取り込みパイプラインは次のアクションをサポートしています。

  • 未加工のドキュメントを Document AI ウェアハウスに取り込む。

    {
      name: "projects/PROJECT_NUMBER/locations/LOCATION_ID",
      gcs_ingest_pipeline: {
        input_path: "gs://BUCKET_NAME/FOLDER_NAME",
        schema_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID"
      }
    }
    
  • Document AI で処理されたドキュメントを Document AI ウェアハウスに取り込む。

    {
      name: "projects/PROJECT_NUMBER/locations/LOCATION_ID",
      gcs_ingest_pipeline: {
        input_path: "gs://BUCKET_NAME/FOLDER_NAME",
        schema_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID",
        processor_type: "PROCESS_TYPE"
      }
    }
    

    processor_type は、入力ファイルが Document AI で処理されたことを示すために必要です。processor_typeOCR_PROCESSORINVOICE_PROCESSORFORM_PARSER_PROCESSOR)は、こちらの [Type in API] フィールド here にあります。

  • Document AI で処理されたドキュメントと対応する未加工のドキュメントを同じリクエストで取り込む。

    {
      name: "projects/PROJECT_NUMBER/locations/LOCATION_ID",
      gcs_ingest_pipeline: {
        input_path: "gs://BUCKET_NAME/FOLDER_NAME",
        schema_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID",
        processor_type: "PROCESS_TYPE"
      }
    }
    

    input_path ロケーションには、Document AI で処理されたドキュメントが含まれている必要があります。パイプラインは、その URI パスにある Document AI で処理されたドキュメントごとに、対応する未加工のドキュメントを検索します。

  • 1 種類の未加工のドキュメントを取り込み、パイプラインで Document AI 処理をトリガーする。

    {
      name: "projects/PROJECT_NUMBER/locations/LOCATION_ID",
      gcs_ingest_with_doc_ai_processors_pipeline: {
        input_path: "gs://BUCKET_NAME/FOLDER_NAME",
        extract_processor_infos: {
          processor_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/processors/PROCESSOR_ID",
          schema_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID"
        },
        processor_results_folder_path: "gs://OUTPUT_BUCKET_NAME/OUTPUT_BUCKET_FOLDER_NAME"
      }
    }
    

    extract_processor_infos フィールドには、抽出プロセッサを 1 つだけ含める必要があります。input_path フィールドのすべてのドキュメントは 1 つのドキュメント タイプとみなされ、同じ抽出プロセッサによって処理されます。

  • 複数の種類の未加工のドキュメントを取り込み、パイプラインで Document AI 処理をトリガーする。

    {
      name: "projects/PROJECT_NUMBER/locations/LOCATION_ID",
      gcs_ingest_with_doc_ai_processors_pipeline: {
        input_path: "gs://BUCKET_NAME/FOLDER_NAME",
        split_classify_processor_info: {
          processor_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/processors/PROCESSOR_ID"
        },
        extract_processor_infos: [
          {
            processor_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/processors/PROCESSOR_ID",
            document_type: "DOCUMENT_TYPE",
            schema_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID"
          }
        ],
        processor_results_folder_path: "gs://OUTPUT_BUCKET_NAME/OUTPUT_BUCKET_FOLDER_NAME"
      }
    }
    

    split_classify_processor_info フィールドは、ドキュメントをタイプ別に分類します。extract_processor_infos フィールド(配列として渡される)には、分類結果のドキュメント タイプごとに異なる抽出プロセッサを含める必要があります。

取り込みの構成

Cloud Storage 取り込みパイプラインは、次のオプションで説明されているように、ドキュメントの取り込み時にオプションのカスタマイズをサポートしています。

  • パイプラインが同じ Cloud Storage フォルダで複数回トリガーされた場合は、skip_ingested_documents フラグを使用して、取り込まれたドキュメントをスキップします。Cloud Storage のドキュメントに status=ingested メタデータ(パイプラインのステータス トラッキング機能)が含まれている場合、このフラグが有効になっていると、ドキュメントは再度取り込まれません。

  • ドキュメントの作成時に追加のドキュメント レベルの ACL ポリシーを指定するには、document_acl_policy フラグを使用します。このフラグは、Document AI Warehouse でドキュメント レベルの ACL が有効になっているプロジェクト用です。

  • ドキュメントにコンテンツが含まれている場合は、enable_document_text_extraction フラグを使用して、Document AI Warehouse で未加工のドキュメントのテキストを抽出します。このフラグは Document AI 処理とは異なり、ドキュメント抽出では Document AI ウェアハウスで次のドキュメント ファイル形式のみがサポートされます。

    • RAW_DOCUMENT_FILE_TYPE_TEXT
    • RAW_DOCUMENT_FILE_TYPE_DOCX
  • folder フィールドを使用して、取り込まれたドキュメントのターゲット フォルダを指定します。取り込まれたドキュメントはすべて、指定された親フォルダにリンクされます。

  • cloud_function フィールドを使用して、ドキュメント proto ファイルが Document AI ウェアハウスに送信される前に、フィールドをさらにカスタマイズします。cloud_function の値は、Document AI Warehouse サービス アカウントがアクセスできる有効な URL である必要があります。各呼び出しは 5 分以内に終了する必要があります。リクエストとレスポンスは JSON 形式です。リクエスト ペイロードには次のキーが含まれている場合があります。

    • display_name
    • properties
    • plain_text または cloud_ai_document.text
    • reference_id
    • document_schema_name
    • raw_document_path
    • raw_document_file_type

    レスポンス ペイロードのキーは、proto の一部として Document AI Warehouse に取り込まれます。キーが変更またはレスポンスに追加されると、元の値が上書きされます。レスポンス内の余分なキーは破棄されます。対応する値が無効な場合、ドキュメントの取り込みは失敗します。

    • display_name
    • properties
    • plain_text または cloud_ai_document.text
    • reference_id
    • document_acl_policy
    • folder
  • pipeline_config を使用した取り込みパイプラインのカスタマイズ。

    {
      name: "projects/PROJECT_NUMBER/locations/LOCATION_ID",
      gcs_ingest_pipeline: {
        input_path: "gs://BUCKET_NAME/FOLDER_NAME",
        schema_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID",
        skip_ingested_documents: "true",
        pipeline_config: {
          enable_document_text_extraction: "true"
          folder: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documents/FOLDER_DOCUMENT_ID",
          cloud_function: "https://REGION-PROJECT_ID.cloudfunctions.net/CLOUD_FUNCTION_NAME"
        }
      }
    }
    

ステータスのトラッキング

ステータス トラッキングには、パイプライン全体と各ドキュメントの取り込み結果の進捗状況が表示されます。

  • LRO が完了しているかどうかを確認することで、パイプラインが完了しているかどうかを確認できます。

  • Cloud Storage メタデータを表示して、パイプライン内の各ドキュメントのステータスを確認できます。Cloud Storage は、各ドキュメントに次の Key-Value ペアを作成します。

    • キー: status、値: status=queuedstatus=processedstatus=ingestedstatus=failed
    • キー: error、値: the error message

サポートされているドキュメントの種類

パイプラインでサポートされているドキュメント タイプは、Document AI ウェアハウスでサポートされているドキュメント タイプと同じです。テキスト、PDF、画像(スキャンした PDF、TIFF ファイル、JPEG ファイル)、Microsoft Office ファイル(DOCX、PPTX、XSLX)。

Cloud Storage メタデータのドキュメント プロパティ

パイプラインで Cloud Storage メタデータを使用して、Document AI ウェアハウスでカスタマイズされたプロパティを作成できます。Cloud Storage ドキュメントのメタデータ値は、キーがスキーマ内のプロパティ名と一致する場合、対応する Document AI Warehouse ドキュメント プロパティに自動的にコピーされます。

パイプラインの実行

Cloud Storage 取り込みパイプラインでさまざまな機能をトリガーするには、さまざまなパラメータが必要です。詳細については、メソッド: projects.locations.runPipeline をご覧ください。

次の部分では、Cloud Storage 取り込みパイプラインをトリガーする 2 つの例を示します。

  • Document AI プロセッサを使用せずに Cloud Storage 取り込みパイプラインを実行する。

    REST

    curl --location --request POST 'https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID:runPipeline' \
    --header 'Content-Type: application/json' \
    --header "Authorization: Bearer ${AUTH_TOKEN}" \
    --data '{
            "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID",
            "gcs_ingest_pipeline": {
                "input_path": "gs://BUCKET_NAME/FOLDER_NAME/",
    "schema_name": "projects/PROJECT_NUMBER/locations/
    LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID",
                "skip_ingested_documents": "true"
            },
            "request_metadata": {
                "user_info": {
                    "id": "user:USER EMAIL ADDRESS"
                }
            }
    }'
  • Document AI プロセッサを使用して Cloud Storage 取り込みパイプラインを実行する。

    REST

    curl --location --request POST 'https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID:runPipeline' \
    --header 'Content-Type: application/json' \
    --header "Authorization: Bearer ${AUTH_TOKEN}" \
    --data '{
            "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID",
            "gcs_ingest_with_doc_ai_processors_pipeline": {
                "input_path": "gs://BUCKET_NAME/FOLDER_NAME/",
                "split_classify_processor_info": {
                  "processor_name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/processors/PROCESSOR_ID"
                },
                "extract_processor_infos": [
                  {
                    "processor_name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/processors/PROCESSOR_ID",
                    "document_type": "DOCUMENT_TYPE",
                    "schema_name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID"
                  }
                ],
                "processor_results_folder_path": "gs://OUTPUT_BUCKET_NAME/OUTPUT_BUCKET_FOLDER_NAME/"
                "skip_ingested_documents": "true"
            },
            "request_metadata": {
                "user_info": {
                    "id": "user:USER EMAIL ADDRESS"
                }
            }
    }'

このコマンドは、長時間実行オペレーションのリソース名を返します。このリソース名を使用すると、次のステップに沿ってパイプラインの進捗状況を追跡できます。

長時間実行オペレーションの結果を取得する

REST

curl --location --request GET 'https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION' \
--header "Authorization: Bearer ${AUTH_TOKEN}"

次のステップ

取り込まれたドキュメントを確認するには、Document AI ウェアハウスのウェブ アプリケーションに移動します。