このドキュメントでは、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_type(OCR_PROCESSOR、INVOICE_PROCESSOR、FORM_PARSER_PROCESSOR)は、API を入力フィールドのこちらで確認できます。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 パスにある Doc 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 取り込みパイプラインは、次のオプションで説明するように、ドキュメントの取り込み時にオプションのカスタマイズをサポートしています。
skip_ingested_documentsフラグを使用して、同じ Cloud Storage フォルダでパイプラインが複数回トリガーされたときに、取り込まれたドキュメントをスキップします。Cloud Storage 内のドキュメントに、パイプラインのステータス トラッキング機能であるstatus=ingestedメタデータが含まれている場合、このフラグが有効になっていると、ドキュメントは再取り込みされません。ドキュメントの作成時に追加のドキュメント レベルの ACL ポリシーを指定するには、
document_acl_policyフラグを使用します。このフラグは、Document AI ウェアハウスでドキュメント レベルの ACL が有効になっているプロジェクト用です。ドキュメントにコンテンツが含まれている場合は、
enable_document_text_extractionフラグを使用して、Document AI Warehouse に元ドキュメントのテキストを抽出させます。このフラグは Document AI 処理とは異なり、Document AI ウェアハウスでは次のドキュメント ファイル形式のみがサポートされます。RAW_DOCUMENT_FILE_TYPE_TEXTRAW_DOCUMENT_FILE_TYPE_DOCX
folderフィールドを使用して、取り込んだドキュメントのターゲット フォルダを指定します。取り込まれたすべてのドキュメントは、指定された親フォルダにリンクされます。cloud_functionフィールドを使用して、ドキュメント proto ファイルのフィールドを Document AI Warehouse に送信する前にさらにカスタマイズします。cloud_functionの値は、Document AI ウェアハウス サービス アカウントからアクセス可能な有効な URL である必要があります。各通話は 5 分以内に終了する必要があります。リクエストとレスポンスは JSON 形式です。これらのキーはリクエスト ペイロードにあります。display_namepropertiesplain_textまたはcloud_ai_document.textreference_iddocument_schema_nameraw_document_pathraw_document_file_type
レスポンス ペイロードのキーは、proto の一部として Document AI ウェアハウスに取り込まれます。キーが変更された場合や、レスポンスにキーが追加された場合、元の値は上書きされます。レスポンス内の余分なキーは破棄されます。対応する値が無効な場合、ドキュメントの取り込みは失敗します。
display_namepropertiesplain_textまたはcloud_ai_document.textreference_iddocument_acl_policyfolder
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=queued、status=processed、status=ingested、status=failedのいずれか。 - キー:
error、値:the error message。
- キー:
サポートされているドキュメントの種類
パイプラインでサポートされているドキュメント タイプは、Document AI ウェアハウスでサポートされているドキュメント タイプと同じです。テキスト、PDF、画像(スキャンされた PDF、TIFF ファイル、JPEG ファイル)、Microsoft Office ファイル(DOCX、PPTX、XSLX)。
Cloud Storage メタデータからのドキュメント プロパティ
パイプラインで Cloud Storage メタデータを使用して、Document AI Warehouse でカスタム プロパティを作成できます。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 Warehouse のウェブ アプリケーションに移動します。