Google Cloud アカウントを設定し、プロセッサを作成したら、Document AI プロセッサにリクエストを送信できます。
リクエストの送信に使用されるコードは、すべてのプロセッサで同じです。各プロセッサが出力する情報で、プロセッサの機能の違いを確認できます。
Document AI の v1 API バージョンまたは Google Cloud コンソールで使用すると、その特定のプロセッサ バージョンに処理リクエストを送信できます。プロセッサ バージョンを指定しない場合、デフォルトのバージョンが使用されます。詳細については、プロセッサ バージョンの管理をご覧ください。
オンライン処理
オンライン(同期)リクエストでは、処理する単一のドキュメントを送信できます。Document AI はリクエストを直ちに処理し、document を返します。
プロセッサにリクエストを送信する
次のコードサンプルは、プロセッサにリクエストを送信する方法を示しています。
REST
このサンプルでは、rawDocument オブジェクトでドキュメント コンテンツ(Base64 でエンコードされた文字列を介したバイト単位の未加工のドキュメント コンテンツ)を指定する方法を示します。
また、Document AI から返される Document JSON 形式と同じ inlineDocument を指定することもできます。これにより、同じ形式をやり取りしてリクエストをチェーンできます(ドキュメントを分類してからコンテンツを抽出する場合など)。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: プロセッサのロケーション(例: - 
  )
- us- 米国
- eu- 欧州連合
 
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- PROCESSOR_ID: カスタム プロセッサの ID。
- skipHumanReview: 人間によるレビューを無効にするブール値(人間参加型プロセッサでのみサポートされます)。- true- 人間によるレビューをスキップします
- false- 人間による確認を有効にします(デフォルト)
 
- MIME_TYPE†: 有効な MIME タイプ オプションのいずれか。
- IMAGE_CONTENT†: 有効なインライン ドキュメント コンテンツのいずれか。バイト ストリームとして表されます。JSON 表現の場合、バイナリ画像データの base64 エンコード(ASCII 文字列)。これは次のような文字列になります。
- /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
 
- FIELD_MASK: Document出力に含めるフィールドを指定します。これは、FieldMask形式の完全修飾フィールド名のカンマ区切りリストです。- 例: text,entities,pages.pageNumber
 
- 例: 
- INDIVIDUAL_PAGES: 処理する個々のページのリスト。
† このコンテンツは、inlineDocument オブジェクトで Base64 エンコードされたコンテンツを使用して指定することもできます。
HTTP メソッドと URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process
リクエストの本文(JSON):
{
  "skipHumanReview": skipHumanReview,
  "rawDocument": {
    "mimeType": "MIME_TYPE",
    "content": "IMAGE_CONTENT"
  },
  "fieldMask": "FIELD_MASK",
  "processOptions": {
    "individualPageSelector" {
      "pages": [INDIVIDUAL_PAGES]
    }
  }
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process"
PowerShell
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process" | Select-Object -Expand Content
リクエストが成功すると、サーバーは 200 OK HTTP ステータス コードと JSON 形式のレスポンスを返します。レスポンスの本文には Document のインスタンスが含まれます。
プロセッサ バージョンにリクエストを送信する
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: プロセッサのロケーション(例: - 
  )
- us- 米国
- eu- 欧州連合
 
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- PROCESSOR_ID: カスタム プロセッサの ID。
- PROCESSOR_VERSION: プロセッサのバージョン ID。詳細については、プロセッサ バージョンを選択するをご覧ください。例: 
- pretrained-TYPE-vX.X-YYYY-MM-DD
- stable
- rc
 
- skipHumanReview: 人間によるレビューを無効にするブール値(人間参加型プロセッサでのみサポートされます)。- true- 人間によるレビューをスキップします
- false- 人間による確認を有効にします(デフォルト)
 
- MIME_TYPE†: 有効な MIME タイプ オプションのいずれか。
- IMAGE_CONTENT†: 有効なインライン ドキュメント コンテンツのいずれか。バイト ストリームとして表されます。JSON 表現の場合、バイナリ画像データの base64 エンコード(ASCII 文字列)。これは次のような文字列になります。
- /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
 
- FIELD_MASK: Document出力に含めるフィールドを指定します。これは、FieldMask形式の完全修飾フィールド名のカンマ区切りリストです。- 例: text,entities,pages.pageNumber
 
- 例: 
† このコンテンツは、inlineDocument オブジェクトで Base64 エンコードされたコンテンツを使用して指定することもできます。
HTTP メソッドと URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process
リクエストの本文(JSON):
{
  "skipHumanReview": skipHumanReview,
  "rawDocument": {
    "mimeType": "MIME_TYPE",
    "content": "IMAGE_CONTENT"
  },
  "fieldMask": "FIELD_MASK"
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process"
PowerShell
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process" | Select-Object -Expand Content
リクエストが成功すると、サーバーは 200 OK HTTP ステータス コードと JSON 形式のレスポンスを返します。レスポンスの本文には Document のインスタンスが含まれます。
C#
詳細については、Document AI C# API リファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Document AI Java API リファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Document AI Node.js API リファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Document AI Python API リファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
バッチ処理
バッチ(非同期)リクエストを使用すると、1 回のリクエストで複数のドキュメントを送信できます。Document AI は、リクエストのステータスをポーリングできる operation を返します。このオペレーションが完了すると、処理された結果が保存されている Cloud Storage バケットを指す BatchProcessMetadata が含まれます。
アクセスする入力ファイルが別のプロジェクトのバケットにある場合は、ファイルにアクセスする前にそのバケットへのアクセス権を付与する必要があります。設定ファイルへのアクセスをご覧ください。
プロセッサにリクエストを送信する
次のコードサンプルは、プロセッサにバッチ処理リクエストを送信する方法を示しています。
REST
このサンプルでは、大規模なドキュメントの非同期処理のために POST リクエストを 
  batchProcess メソッドに送信する方法を示します。この例では、Google Cloud CLI を使用するプロジェクト用に設定されたサービス アカウントのアクセス トークンを使用します。Google Cloud CLI のインストール、サービス アカウントでのプロジェクトの設定、アクセス トークンの取得を行う手順については、始める前にをご覧ください。
batchProcess リクエストは長時間実行オペレーションを開始し、結果を Cloud Storage バケットに保存します。このサンプルでは、長時間実行オペレーションの開始後にそのステータスを取得する方法も示します。
プロセス リクエストを送信する
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: プロセッサのロケーション(例: - 
  )
- us- 米国
- eu- 欧州連合
 
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- PROCESSOR_ID: カスタム プロセッサの ID。
- INPUT_BUCKET_FOLDER†: 次の形式で入力ファイルを読み取る Cloud Storage バケット/ディレクトリ。
- gs://bucket/directory/
 
- MIME_TYPE: 有効な MIME タイプ オプションのいずれか。
- OUTPUT_BUCKET_FOLDER: 次の形式で出力ファイルを保存する Cloud Storage バケット/ディレクトリ。
- gs://bucket/directory/
 
- skipHumanReview: 人間によるレビューを無効にするブール値(人間参加型プロセッサでのみサポートされます)。- true- 人間によるレビューをスキップします
- false- 人間による確認を有効にします(デフォルト)
 
- FIELD_MASK: Document出力に含めるフィールドを指定します。これは、FieldMask形式の完全修飾フィールド名のカンマ区切りリストです。- 例: text,entities,pages.pageNumber
 
- 例: 
† gcsPrefix を使用して GCS フォルダ内のすべてのファイルを含める代わりに、documents を使用して各ファイルを個別にリストすることもできます。
  "inputDocuments": {
    "gcsDocuments": {
      "documents": [
        {
          "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT1.ext",
          "mimeType": "MIME_TYPE"
        },
        {
          "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT2.ext",
          "mimeType": "MIME_TYPE"
        }
      ]
    }
  }HTTP メソッドと URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:batchProcess
リクエストの本文(JSON):
{
  "inputDocuments": {
    "gcsPrefix": {
      "gcsUriPrefix": "INPUT_BUCKET_FOLDER"
    }
  },
  "documentOutputConfig": {
    "gcsOutputConfig": {
      "gcsUri": "OUTPUT_BUCKET_FOLDER",
      "fieldMask": "FIELD_MASK"
    }
  },
  "skipHumanReview": BOOLEAN
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:batchProcess"
PowerShell
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:batchProcess" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
}
プロセッサ バージョンにリクエストを送信する
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: プロセッサのロケーション(例: - 
  )
- us- 米国
- eu- 欧州連合
 
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- PROCESSOR_ID: カスタム プロセッサの ID。
- PROCESSOR_VERSION: プロセッサのバージョン ID。詳細については、プロセッサ バージョンを選択するをご覧ください。例: 
- pretrained-TYPE-vX.X-YYYY-MM-DD
- stable
- rc
 
- INPUT_BUCKET_FOLDER†: 次の形式で入力ファイルを読み取る Cloud Storage バケット/ディレクトリ。
- gs://bucket/directory/
 
- MIME_TYPE: 有効な MIME タイプ オプションのいずれか。
- OUTPUT_BUCKET_FOLDER: 次の形式で出力ファイルを保存する Cloud Storage バケット/ディレクトリ。
- gs://bucket/directory/
 
- skipHumanReview: 人間によるレビューを無効にするブール値(人間参加型プロセッサでのみサポートされます)。- true- 人間によるレビューをスキップします
- false- 人間による確認を有効にします(デフォルト)
 
- FIELD_MASK: Document出力に含めるフィールドを指定します。これは、FieldMask形式の完全修飾フィールド名のカンマ区切りリストです。- 例: text,entities,pages.pageNumber
 
- 例: 
† gcsPrefix を使用して GCS フォルダ内のすべてのファイルを含める代わりに、documents を使用して各ファイルを個別にリストすることもできます。
  "inputDocuments": {
    "gcsDocuments": {
      "documents": [
        {
          "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT1.ext",
          "mimeType": "MIME_TYPE"
        },
        {
          "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT2.ext",
          "mimeType": "MIME_TYPE"
        }
      ]
    }
  }HTTP メソッドと URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:batchProcess
リクエストの本文(JSON):
{
  "inputDocuments": {
    "gcsPrefix": {
      "gcsUriPrefix": "INPUT_BUCKET_FOLDER"
    }
  },
  "documentOutputConfig": {
    "gcsOutputConfig": {
      "gcsUri": "OUTPUT_BUCKET_FOLDER",
      "fieldMask": "FIELD_MASK"
    }
  },
  "skipHumanReview": BOOLEAN
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:batchProcess"
PowerShell
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:batchProcess" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
}
リクエストが成功すると、Document AI API はオペレーションの名前を返します。
結果を取得する
リクエストの結果を取得するには、GET リクエストを operations リソースに送信する必要があります。このようなリクエストを送信する方法は次のとおりです。詳細については、長時間実行オペレーションのドキュメントをご覧ください。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- LOCATION: LRO を実行しているロケーション。例: - us- 米国
- eu- 欧州連合
 
- OPERATION_ID: オペレーションの ID。この ID は、オペレーションの名前の最後の要素です。例:
    - オペレーション名: projects/PROJECT_ID/locations/LOCATION/operations/bc4e1d412863e626
- オペレーション ID: bc4e1d412863e626
 
- オペレーション名: 
HTTP メソッドと URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.documentai.v1.BatchProcessMetadata",
    "state": "SUCCEEDED",
    "stateMessage": "Processed 1 document(s) successfully",
    "createTime": "TIMESTAMP",
    "updateTime": "TIMESTAMP",
    "individualProcessStatuses": [
      {
        "inputGcsSource": "INPUT_BUCKET_FOLDER/DOCUMENT1.ext",
        "status": {},
        "outputGcsDestination": "OUTPUT_BUCKET_FOLDER/OPERATION_ID/0",
        "humanReviewStatus": {
          "state": "ERROR",
          "stateMessage": "Sharded document protos are not supported for human review."
        }
      }
    ]
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.documentai.v1.BatchProcessResponse"
  }
}
レスポンスの本文には、オペレーションのステータスに関する情報を含む Operation のインスタンスが含まれます。オペレーションが正常に完了すると、metadata フィールドに、処理されたドキュメントに関する情報を含む BatchProcessMetadata のインスタンスが入力されます。
C#
詳細については、Document AI C# API リファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Document AI Go API リファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Document AI Java API リファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Document AI Node.js API リファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Document AI Python API リファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Document AI Go API リファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Document AI Ruby API リファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python SDK を使用してドキュメント バッチを作成する
バッチ処理では、リクエストあたり最大 1,000 個のファイルを処理できます。処理するドキュメントが複数ある場合は、ドキュメントを複数のバッチに分割して処理する必要があります。
Document AI Toolbox は、Document AI のユーティリティ関数を提供する Python 用の SDK です。関数の 1 つは、Cloud Storage フォルダから処理用のドキュメントのバッチを作成することです。
Document AI Toolbox が後処理をどのように支援するかについて詳しくは、レスポンスの処理をご覧ください。
コードサンプル
次のコードサンプルは、Document AI Toolbox の使用方法を示しています。