ML.PROCESS_DOCUMENT 関数

このドキュメントでは、オブジェクト テーブルの非構造化ドキュメントを処理できる ML.PROCESS_DOCUMENT 関数について説明します。

構文

ML.PROCESS_DOCUMENT(
  MODEL `project_id.dataset.model_name`,
  TABLE `project_id.dataset.object_table`
)

引数

ML.PROCESS_DOCUMENT は次の引数を取ります。

  • project_id: プロジェクト ID。

  • dataset: モデルを含む BigQuery データセット。

  • model: REMOTE_SERVICE_TYPECLOUD_AI_DOCUMENT_V1リモートモデルの名前。

  • object_table: ドキュメントの URI を含むオブジェクト テーブルの名前。

    オブジェクト テーブル内のドキュメントは、サポートされているタイプである必要があります。サポートされていないタイプのドキュメントが含まれる行に対しては、エラーが返されます。

出力

ML.PROCESS_DOCUMENT は、次の列を返します。

  • ml_process_document_result: Document AI API によって返されたエンティティを含む JSON 値。
  • ml_process_document_result_status: 対応する行の API レスポンス ステータスを含む STRING 値。オペレーションが成功した場合、この値は空になります。
  • モデルで指定されたプロセッサによって返されるフィールド。
  • オブジェクト テーブルの列。

割り当て

Cloud AI サービスの関数の割り当てと上限をご覧ください。

ロケーション

ML.PROCESS_DOCUMENT は、関数が参照するリモートモデルと同じリージョンで実行する必要があります。Document AI に基づくモデルは、USEUマルチリージョンでのみ作成できます。

制限事項

この関数では、15 ページを超えるドキュメントを処理できません。そのようなファイルを含む行では、エラーが返されます。

次の例では、請求書パーサーを使用して、documents テーブルで表されるドキュメントを処理します。

モデルを作成します。

# Create model
CREATE OR REPLACE MODEL
`myproject.mydataset.invoice_parser`
REMOTE WITH CONNECTION `myproject.myregion.myconnection`
OPTIONS (remote_service_type = 'cloud_ai_document_v1',
document_processor='projects/project_number/locations/processor_location/processors/processor_id/processorVersions/version_id');

ドキュメントを処理します。

SELECT *
FROM ML.PROCESS_DOCUMENT(
  MODEL `myproject.mydataset.invoice_parser`,
  TABLE `myproject.mydataset.documents`
);

次のような結果になります。

ml_process_document_result ml_process_document_status invoice_type currency ...
{"entities":[{"confidence":1,"id":"0","mentionText":"10 105,93 10,59","pageAnchor":{"pageRefs":[{"boundingPoly":{"normalizedVertices":[{"x":0.40452111,"y":0.67199326},{"x":0.74776918,"y":0.67199326},{"x":0.74776918,"y":0.68208581},{"x":0.40452111,"y":0.68208581}]}}]},"properties":[{"confidence":0.66... USD

次のステップ