傳送處理要求

設定Google Cloud 帳戶建立處理器後,即可向 Document AI 處理器傳送要求。

用於傳送要求的程式碼適用於所有處理器。您會發現每個處理器輸出的資訊中,處理器運作方式有所差異。

使用 Document AI 的 v1 API 版本或 Google Cloud 控制台時,您可以將處理要求傳送至該特定處理器版本。如果您未指定處理器版本,系統會使用預設版本。詳情請參閱「管理處理器版本」。

線上處理

線上 (同步) 要求可讓您傳送單一文件進行處理。 Document AI 會立即處理要求,並傳回 document

向處理器傳送要求

下列程式碼範例說明如何將要求傳送至處理器。

REST

這個範例說明如何在 rawDocument 物件中提供文件內容 (以位元組為單位的原始文件內容,透過 Base64 編碼字串)。

或者,您也可以指定 inlineDocument,這與 Document AI 傳回的 Document JSON 格式相同。這樣一來,您就能來回傳遞相同格式,串連要求 (例如分類文件,然後擷取內容)。

使用任何要求資料之前,請先修改下列項目的值:

  • 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==
    如需更多資訊,請參閱「Base64 編碼」主題。
  • FIELD_MASK:指定要納入 Document 輸出內容的欄位。這是以逗號分隔的完整欄位名稱清單,格式為 FieldMask
    • 範例:text,entities,pages.pageNumber
  • INDIVIDUAL_PAGES:要處理的個別頁面清單。
    • 或者,提供欄位 fromStartfromEnd,從文件開頭或結尾處理特定頁數。

† 您也可以在 inlineDocument 物件中使用 Base64 編碼的內容指定這項內容。

HTTP 方法和網址:

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==
    如需更多資訊,請參閱「Base64 編碼」主題。
  • FIELD_MASK:指定要納入 Document 輸出內容的欄位。這是以逗號分隔的完整欄位名稱清單,格式為 FieldMask
    • 範例:text,entities,pages.pageNumber

† 您也可以在 inlineDocument 物件中使用 Base64 編碼的內容指定這項內容。

HTTP 方法和網址:

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 `