Invia una richiesta di elaborazione
Dopo aver configurato il tuo accountGoogle Cloud e creato un processore, puoi inviare una richiesta al tuo processore Document AI.
Il codice utilizzato per inviare la richiesta è lo stesso per tutti i processori. Puoi vedere le differenze nel funzionamento del processore nelle informazioni generate da ciascun processore.
Se utilizzi la versione v1
dell'API Document AI o la console Google Cloud, puoi inviare richieste di elaborazione a quella versione specifica del processore. Se non specifichi una versione del processore, viene utilizzata la versione predefinita.
Per saperne di più, consulta Gestione delle versioni del processore.
Elaborazione online
Le richieste online (sincrone) ti consentono di inviare un singolo documento per l'elaborazione.
Document AI elabora immediatamente la richiesta e restituisce un document
.
Invia una richiesta a un elaboratore
I seguenti esempi di codice mostrano come inviare una richiesta a un elaboratore.
REST
Questo esempio mostra come fornire i contenuti del documento (contenuti non elaborati del documento in byte
tramite una stringa codificata Base64) nell'oggetto rawDocument
.
In alternativa, puoi anche specificare inlineDocument
,
che è lo stesso formato JSON Document
restituito
da Document AI. In questo modo puoi concatenare le richieste passando lo stesso formato avanti e indietro
(ad esempio, se classifichi un documento ed estraendone i contenuti).
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la posizione del tuo elaboratore, ad esempio:
us
- Stati Unitieu
- Unione Europea
- PROJECT_ID: il tuo Google Cloud ID progetto.
- PROCESSOR_ID: l'ID del tuo processore personalizzato.
- skipHumanReview: un valore booleano per disattivare la revisione da parte di persone fisiche (supportato solo dai processori human-in-the-loop).
true
- salta la revisione umanafalse
: attiva la revisione da parte di persone fisiche (valore predefinito)
- MIME_TYPE†: una delle opzioni valide per il tipo MIME.
- IMAGE_CONTENT†: uno dei contenuti validi dei documenti in linea, rappresentato come uno stream di byte. Per le rappresentazioni JSON, la codifica base64 (stringa ASCII) dei dati immagine binari. Questa stringa dovrebbe essere simile alla
stringa riportata di seguito:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- FIELD_MASK: specifica i campi da includere nell'output
Document
. Si tratta di un elenco separato da virgole di nomi completi dei campi in formatoFieldMask
.- Esempio:
text,entities,pages.pageNumber
- Esempio:
- INDIVIDUAL_PAGES: un elenco di singole pagine da elaborare.
† Questi contenuti possono essere specificati anche utilizzando contenuti codificati in base64 nell'oggetto
inlineDocument
.
Metodo HTTP e URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process
Corpo JSON della richiesta:
{ "skipHumanReview": skipHumanReview, "rawDocument": { "mimeType": "MIME_TYPE", "content": "IMAGE_CONTENT" }, "fieldMask": "FIELD_MASK", "processOptions": { "individualPageSelector" { "pages": [INDIVIDUAL_PAGES] } } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Se la richiesta riesce, il server restituisce un codice di stato HTTP 200 OK
e la risposta in formato JSON. Il corpo della risposta contiene un'istanza di
Document
.
Inviare una richiesta a una versione del processore
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la posizione del tuo elaboratore, ad esempio:
us
- Stati Unitieu
- Unione Europea
- PROJECT_ID: il tuo Google Cloud ID progetto.
- PROCESSOR_ID: l'ID del tuo processore personalizzato.
- PROCESSOR_VERSION: l'identificatore della versione del processore. Per saperne di più, consulta Selezionare una versione del processore. Ad esempio:
pretrained-TYPE-vX.X-YYYY-MM-DD
stable
rc
- skipHumanReview: un valore booleano per disattivare la revisione da parte di persone fisiche (supportato solo dai processori human-in-the-loop).
true
- salta la revisione umanafalse
: attiva la revisione da parte di persone fisiche (valore predefinito)
- MIME_TYPE†: una delle opzioni valide per il tipo MIME.
- IMAGE_CONTENT†: uno dei contenuti validi dei documenti in linea, rappresentato come uno stream di byte. Per le rappresentazioni JSON, la codifica base64 (stringa ASCII) dei dati immagine binari. Questa stringa dovrebbe essere simile alla
stringa riportata di seguito:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- FIELD_MASK: specifica i campi da includere nell'output
Document
. Si tratta di un elenco separato da virgole di nomi completi dei campi in formatoFieldMask
.- Esempio:
text,entities,pages.pageNumber
- Esempio:
† Questi contenuti possono essere specificati anche utilizzando contenuti codificati in base64 nell'oggetto
inlineDocument
.
Metodo HTTP e URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process
Corpo JSON della richiesta:
{ "skipHumanReview": skipHumanReview, "rawDocument": { "mimeType": "MIME_TYPE", "content": "IMAGE_CONTENT" }, "fieldMask": "FIELD_MASK" }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Se la richiesta riesce, il server restituisce un codice di stato HTTP 200 OK
e la risposta in formato JSON. Il corpo della risposta contiene un'istanza di
Document
.
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI C#.
Per autenticarti a Document AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Java.
Per autenticarti a Document AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Node.js.
Per autenticarti a Document AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Python.
Per autenticarti a Document AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Elaborazione dei dati in modalità batch
Le richieste batch (asincrone) ti consentono di inviare più documenti in un'unica richiesta. Document AI risponde con un operation
che puoi sottoporre a polling per conoscere lo stato della richiesta. Al termine di questa operazione, contiene un BatchProcessMetadata
che rimanda al bucket Cloud Storage in cui vengono memorizzati i risultati elaborati.
Se i file di input a cui vuoi accedere si trovano in un bucket di un altro progetto, devi fornire l'accesso a quel bucket prima di poter accedere ai file. Vedi Configurare l'accesso ai file.
Invia una richiesta a un elaboratore
Gli esempi di codice riportati di seguito mostrano come inviare una richiesta di elaborazione batch a un elaboratore.
REST
Questo esempio mostra come inviare una richiesta POST
al metodo
batchProcess
per l'elaborazione asincrona di documenti di grandi dimensioni.
L'esempio utilizza il token di accesso per un account di servizio configurato per il progetto utilizzando Google Cloud CLI. Per istruzioni su come installare Google Cloud CLI, configurare un progetto con un account di servizio e ottenere un token di accesso, consulta Prima di iniziare.
Una richiesta batchProcess
avvia un'operazione a lunga esecuzione e memorizza i risultati in un bucket Cloud Storage. Questo esempio mostra anche come recuperare lo stato di questa operazione a lunga esecuzione dopo l'avvio.
Invia la richiesta di elaborazione
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la posizione del tuo elaboratore, ad esempio:
us
- Stati Unitieu
- Unione Europea
- PROJECT_ID: il tuo Google Cloud ID progetto.
- PROCESSOR_ID: l'ID del tuo processore personalizzato.
- INPUT_BUCKET_FOLDER†: un bucket/una directory Cloud Storage da cui leggere i file di input, espresso nel seguente formato:
gs://bucket/directory/
- MIME_TYPE: una delle opzioni valide per il tipo MIME.
- OUTPUT_BUCKET_FOLDER: un bucket/una directory Cloud Storage in cui salvare i file di output, espresso nel seguente formato:
gs://bucket/directory/
- skipHumanReview: un valore booleano per disattivare la revisione da parte di persone fisiche (supportato solo dai processori human-in-the-loop).
true
- salta la revisione umanafalse
: attiva la revisione da parte di persone fisiche (valore predefinito)
- FIELD_MASK: specifica i campi da includere nell'output
Document
. Si tratta di un elenco separato da virgole di nomi completi dei campi in formatoFieldMask
.- Esempio:
text,entities,pages.pageNumber
- Esempio:
† Anziché utilizzare gcsPrefix
per includere tutti i file in una cartella GCS, puoi anche utilizzare gcsPrefix
per elencare singolarmente ogni file:documents
"inputDocuments": { "gcsDocuments": { "documents": [ { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT1.ext", "mimeType": "MIME_TYPE" }, { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT2.ext", "mimeType": "MIME_TYPE" } ] } }
Metodo HTTP e URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:batchProcess
Corpo JSON della richiesta:
{ "inputDocuments": { "gcsPrefix": { "gcsUriPrefix": "INPUT_BUCKET_FOLDER" } }, "documentOutputConfig": { "gcsOutputConfig": { "gcsUri": "OUTPUT_BUCKET_FOLDER", "fieldMask": "FIELD_MASK" } }, "skipHumanReview": BOOLEAN }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" }
Inviare una richiesta a una versione del processore
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la posizione del tuo elaboratore, ad esempio:
us
- Stati Unitieu
- Unione Europea
- PROJECT_ID: il tuo Google Cloud ID progetto.
- PROCESSOR_ID: l'ID del tuo processore personalizzato.
- PROCESSOR_VERSION: l'identificatore della versione del processore. Per saperne di più, consulta Selezionare una versione del processore. Ad esempio:
pretrained-TYPE-vX.X-YYYY-MM-DD
stable
rc
- INPUT_BUCKET_FOLDER†: un bucket/una directory Cloud Storage da cui leggere i file di input, espresso nel seguente formato:
gs://bucket/directory/
- MIME_TYPE: una delle opzioni valide per il tipo MIME.
- OUTPUT_BUCKET_FOLDER: un bucket/una directory Cloud Storage in cui salvare i file di output, espresso nel seguente formato:
gs://bucket/directory/
- skipHumanReview: un valore booleano per disattivare la revisione da parte di persone fisiche (supportato solo dai processori human-in-the-loop).
true
- salta la revisione umanafalse
: attiva la revisione da parte di persone fisiche (valore predefinito)
- FIELD_MASK: specifica i campi da includere nell'output
Document
. Si tratta di un elenco separato da virgole di nomi completi dei campi in formatoFieldMask
.- Esempio:
text,entities,pages.pageNumber
- Esempio:
† Anziché utilizzare gcsPrefix
per includere tutti i file in una cartella GCS, puoi anche utilizzare gcsPrefix
per elencare singolarmente ogni file:documents
"inputDocuments": { "gcsDocuments": { "documents": [ { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT1.ext", "mimeType": "MIME_TYPE" }, { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT2.ext", "mimeType": "MIME_TYPE" } ] } }
Metodo HTTP e URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:batchProcess
Corpo JSON della richiesta:
{ "inputDocuments": { "gcsPrefix": { "gcsUriPrefix": "INPUT_BUCKET_FOLDER" } }, "documentOutputConfig": { "gcsOutputConfig": { "gcsUri": "OUTPUT_BUCKET_FOLDER", "fieldMask": "FIELD_MASK" } }, "skipHumanReview": BOOLEAN }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" }
Se la richiesta ha esito positivo, l'API Document AI restituisce il nome dell'operazione.
Visualizza i risultati
Per ottenere i risultati della richiesta, devi inviare una richiesta GET
alla risorsa operations
. Di seguito è riportato un esempio di come inviare una richiesta di questo tipo.
Puoi trovare ulteriori informazioni nella documentazione relativa alle operazioni a lungo termine.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo Google Cloud ID progetto.
- LOCATION: la posizione in cui è in esecuzione l'operazione a lunga esecuzione, ad esempio:
us
- Stati Unitieu
- Unione Europea
- OPERATION_ID: l'ID dell'operazione. L'ID è l'ultimo elemento del nome
dell'operazione. Ad esempio:
- Nome operazione:
projects/PROJECT_ID/locations/LOCATION/operations/bc4e1d412863e626
- ID operazione:
bc4e1d412863e626
- Nome operazione:
Metodo HTTP e URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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" } }
Il corpo della risposta contiene un'istanza di Operation
con informazioni sullo stato dell'operazione.
Se l'operazione è stata completata correttamente, il campo metadata
verrà compilato con un'istanza di BatchProcessMetadata
contenente informazioni sui documenti elaborati.
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI C#.
Per autenticarti a Document AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Go.
Per autenticarti a Document AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Java.
Per autenticarti a Document AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Node.js.
Per autenticarti a Document AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Python.
Per autenticarti a Document AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Go.
Per autenticarti a Document AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Ruby.
Per autenticarti a Document AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Crea batch di documenti con l'SDK Python
L'elaborazione batch consente un massimo di 1000 file per richiesta. Se hai più documenti da elaborare, devi suddividerli in più batch.
Document AI Toolbox è un SDK per Python che fornisce funzioni di utilità per Document AI. Una delle funzioni è creare batch di documenti da elaborare da una cartella Cloud Storage.
Per ulteriori informazioni su come Document AI Toolbox supporta il post-processing, consulta Gestire la risposta di elaborazione.
Esempi di codice
I seguenti esempi di codice mostrano come utilizzare Document AI Toolbox.