Le operazioni a lunga esecuzione vengono restituite dalle chiamate al metodo di elaborazione batch perché richiedono più tempo per essere completate rispetto a quello appropriato per una risposta dell'API. In questo modo, il thread chiamante non viene tenuto aperto durante l'elaborazione di molti documenti. L'API Document AI crea un LRO ogni volta che chiami projects.locations.processors.batchProcess tramite l'API o le librerie client. L'LRO monitora lo stato del job di elaborazione.
Puoi utilizzare i metodi delle operazioni forniti dall'API Document AI per verificare lo stato delle LRO. Puoi anche elencare, eseguire il polling o annullare le LRO. Le librerie client chiamano internamente il metodo asincrono poll, abilitando il callback. (Per Python, await è abilitato.) Inoltre,
dispongono di un parametro di timeout. All'interno dell'LRO principale restituito da .batchProcess, viene creato un LRO per ogni documento (perché i limiti di conteggio delle pagine in batch sono molto più elevati rispetto alla chiamata di sincronizzazione process e l'elaborazione può richiedere molto tempo). Al termine dell'LRO principale, viene fornito lo stato dettagliato di ogni LRO del documento.
Le LRO vengono gestite a livello di progetto e località Google Cloud . Quando effettui una richiesta all'API, includi il progetto Google Cloud e la località in cui è in esecuzione l'LRO.
Il record di un LRO viene conservato per circa 30 giorni dopo il completamento dell'LRO, il che significa che non puoi visualizzare o elencare un LRO dopo questo periodo.
Visualizzazione dei dettagli di un'operazione a lunga esecuzione
I seguenti esempi mostrano come ottenere dettagli su un'operazione LRO.
REST
Per ottenere lo stato e visualizzare i dettagli di un'LRO, chiama il metodo projects.locations.operations.get.
Supponiamo che tu riceva la seguente risposta dopo aver chiamato
projects.locations.processors.batchProcess:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID"
}
Il valore name nella risposta mostra che l'API Document AI ha creato un'LRO denominata projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID.
Puoi anche recuperare il nome dell'LRO elencando le operazioni a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID progetto Google Cloud .
- LOCATION: la posizione in cui è in esecuzione l'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"
}
}
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Document AI Go.
Per eseguire l'autenticazione in Document AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Document AI Python.
Per eseguire l'autenticazione in Document AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Elenco delle operazioni a lunga esecuzione
Gli esempi seguenti mostrano come elencare le LRO in un progetto e una località Google Cloud .
REST
Per elencare le LRO in un progetto e una località Google Cloud , chiama il metodo projects.locations.operations.list.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID progetto Google Cloud .
- LOCATION: la località in cui sono in esecuzione una o più LRO, ad esempio:
us- Stati Unitieu- Unione Europea
- FILTER: (Obbligatorio) Query per le LRO da restituire. Opzioni:
- TYPE: (Obbligatorio) Tipo di LRO da elencare. Opzioni:
BATCH_PROCESS_DOCUMENTSCREATE_PROCESSOR_VERSIONDELETE_PROCESSORENABLE_PROCESSORDISABLE_PROCESSORUPDATE_HUMAN_REVIEW_CONFIGHUMAN_REVIEW_EVENTCREATE_LABELER_POOLUPDATE_LABELER_POOLDELETE_LABELER_POOLDEPLOY_PROCESSOR_VERSIONUNDEPLOY_PROCESSOR_VERSIONDELETE_PROCESSOR_VERSIONSET_DEFAULT_PROCESSOR_VERSIONEVALUATE_PROCESSOR_VERSIONEXPORT_PROCESSOR_VERSIONUPDATE_DATASETIMPORT_DOCUMENTSANALYZE_HITL_DATABATCH_MOVE_DOCUMENTSRESYNC_DATASETBATCH_DELETE_DOCUMENTSDELETE_DATA_LABELING_JOBEXPORT_DOCUMENTS
Metodo HTTP e URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations?filter=TYPE=TYPE
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?filter=TYPE=TYPE"
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?filter=TYPE=TYPE" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{
"operations": [
{
"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"
}
},
...
]
}
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Document AI Go.
Per eseguire l'autenticazione in Document AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Document AI Python.
Per eseguire l'autenticazione in Document AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Polling di un'operazione a lunga esecuzione
I seguenti esempi mostrano come eseguire il polling dello stato di un'operazione con esecuzione prolungata.
REST
Per eseguire il polling di un'operazione LRO, chiama ripetutamente il metodo projects.locations.operations.get finché l'operazione non viene completata. Utilizza un backoff tra ogni richiesta di polling, ad esempio 10 secondi.
Prima di utilizzare i dati della richiesta riportati di seguito, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la località in cui è in esecuzione l'LRO
- OPERATION_ID: l'identificatore dell'LRO
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 per eseguire il polling dello stato di un'operazione LRO ogni 10 secondi:
while true; \ do 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"; \ sleep 10; \ done
Dovresti ricevere una risposta JSON ogni 10 secondi.
Durante l'esecuzione dell'operazione, la risposta conterrà "state": "RUNNING".
Al termine dell'operazione, la risposta conterrà "state": "SUCCEEDED" e "done": true.
PowerShell
Esegui questo comando per eseguire il polling dello stato di un'operazione LRO ogni dieci secondi:
$cred = gcloud auth print-access-token $headers = @{ Authorization = "Bearer $cred" } Do { 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 sleep 10 } while ($true)
Dovresti ricevere una risposta JSON ogni 10 secondi.
Durante l'esecuzione dell'operazione, la risposta conterrà "state": "RUNNING".
Al termine dell'operazione, la risposta conterrà "state": "SUCCEEDED" e "done": true.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Document AI Python.
Per eseguire l'autenticazione in Document AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Annullamento di un'operazione a lunga esecuzione
I seguenti esempi mostrano come annullare un'operazione LRO mentre è in esecuzione.
REST
Per annullare un'LRO, chiama il metodo projects.locations.operations.cancel.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID progetto Google Cloud .
- LOCATION: la posizione in cui è in esecuzione l'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:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{}
"error": { "code": 400, "message": "Operation has completed and cannot be cancelled: 'PROJECT_ID/locations/LOCATION/operations/OPERATION_ID'.", "status": "FAILED_PRECONDITION" }
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Document AI Go.
Per eseguire l'autenticazione in Document AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Document AI Python.
Per eseguire l'autenticazione in Document AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.