Invia una richiesta di elaborazione
Dopo aver configurato il tuo Google Cloud account 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 responsabili del trattamento. Vedi differenze nel funzionamento del processore nelle informazioni che ogni processore produce.
Se utilizzi la versione dell'API v1
di Document AI o la console Google Cloud , puoi inviare richieste di elaborazione a quella versione specifica del processore. Se non
specifica una versione del processore, viene utilizzata quella 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
.
Inviare una richiesta a un responsabile del trattamento
I seguenti esempi di codice mostrano come inviare una richiesta a un processore.
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. Ciò ti consente di concatenare le richieste passando avanti e indietro lo stesso formato
(ad esempio, se classifichi un documento ed estrai il relativo contenuto).
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la posizione del tuo responsabile del trattamento, ad esempio:
us
- Stati Unitieu
- Unione Europea
- PROJECT_ID: il tuo ID progetto Google Cloud .
- PROCESSOR_ID: l'ID del tuo processore personalizzato.
- skipHumanReview: valore booleano per disattivare la revisione umana (supportato solo dai processori human-in-the-loop).
true
- skips human reviewfalse
: attiva la revisione da parte di persone fisiche (impostazione predefinita)
- MIME_TYPE†: una delle opzioni valide per il tipo MIME.
- IMAGE_CONTENT†: uno dei contenuti del documento in linea validi, rappresentato come un flusso di byte. Per le rappresentazioni JSON, la codifica base64 (stringa ASCII) dei dati immagine binari. Questa stringa dovrebbe essere simile alla
seguente:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- FIELD_MASK: specifica quali campi includere nell'output
Document
. Si tratta di un elenco separato da virgole di nomi completi dei campi nel 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 di queste 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 responsabile del trattamento, ad esempio:
us
- Stati Unitieu
- Unione Europea
- PROJECT_ID: il tuo ID progetto Google Cloud .
- 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: valore booleano per disattivare la revisione umana (supportato solo dai processori human-in-the-loop).
true
- skips human reviewfalse
: attiva la revisione da parte di persone fisiche (impostazione predefinita)
- MIME_TYPE†: una delle opzioni valide per il tipo MIME.
- IMAGE_CONTENT†: uno dei contenuti validi
del documento in linea, rappresentato come
un flusso di byte. Per le rappresentazioni JSON, la codifica base64 (stringa ASCII) dei dati immagine binari. Questa stringa dovrebbe essere simile alla
seguente:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- FIELD_MASK: specifica quali campi includere nell'output
Document
. Si tratta di un elenco separato da virgole di nomi completi dei campi nel 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 di queste 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 in Document AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Java.
Per autenticarti in Document AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura 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 in Document AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Python.
Per autenticarti in Document AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Elaborazione dei dati in modalità batch
Le richieste batch (asincrone) consentono di inviare più documenti in un'unica
richiesta. Document AI risponde con un operation
che puoi eseguire il polling per lo stato della richiesta. Al termine dell'operazione,
contiene un BatchProcessMetadata
che punta al bucket Cloud Storage in cui sono archiviati 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. Consulta Configurare l'accesso ai file.
Inviare una richiesta a un responsabile del trattamento
I seguenti esempi di codice mostrano come inviare una richiesta di elaborazione batch a un processore.
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 sull'installazione di Google Cloud CLI, sulla configurazione di un progetto con un account di servizio e sull'ottenimento di 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
ottenere 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 responsabile del trattamento, ad esempio:
us
- Stati Unitieu
- Unione Europea
- PROJECT_ID: il tuo ID progetto Google Cloud .
- 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 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: valore booleano per disattivare la revisione umana (supportato solo dai processori human-in-the-loop).
true
- skips human reviewfalse
: attiva la revisione da parte di persone fisiche (impostazione predefinita)
- FIELD_MASK: specifica quali campi includere nell'output
Document
. Si tratta di un elenco separato da virgole di nomi completi dei campi nel formatoFieldMask
.- Esempio:
text,entities,pages.pageNumber
- Esempio:
† Anziché utilizzare gcsPrefix
per includere tutti i file in una cartella GCS, puoi anche
utilizzare documents
per elencare singolarmente ogni file:
"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 di queste 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 responsabile del trattamento, ad esempio:
us
- Stati Unitieu
- Unione Europea
- PROJECT_ID: il tuo ID progetto Google Cloud .
- 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 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: valore booleano per disattivare la revisione umana (supportato solo dai processori human-in-the-loop).
true
- skips human reviewfalse
: attiva la revisione da parte di persone fisiche (impostazione predefinita)
- FIELD_MASK: specifica quali campi includere nell'output
Document
. Si tratta di un elenco separato da virgole di nomi completi dei campi nel formatoFieldMask
.- Esempio:
text,entities,pages.pageNumber
- Esempio:
† Anziché utilizzare gcsPrefix
per includere tutti i file in una cartella GCS, puoi anche
utilizzare documents
per elencare singolarmente ogni file:
"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 di queste 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.
Visualizzare i risultati
Per ottenere i risultati della richiesta, devi inviare una richiesta GET
alla risorsa operations
. Di seguito è riportato come inviare una richiesta di questo tipo.
Per saperne di più, consulta la documentazione relativa alle operazioni di lunga durata.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud .
- LOCATION: la posizione in cui viene eseguita l'operazione LRO, 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 di queste 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
che contiene informazioni sui documenti elaborati.
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI C#.
Per autenticarti in Document AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Go.
Per autenticarti in Document AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Java.
Per autenticarti in Document AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura 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 in Document AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Python.
Per autenticarti in Document AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Go.
Per autenticarti in Document AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Document AI Ruby.
Per autenticarti in Document AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura 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 altri 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 assiste nella post-elaborazione, consulta la sezione Gestione della risposta di elaborazione.
Esempi di codice
I seguenti esempi di codice mostrano come utilizzare Document AI Toolbox.