Les opérations de longue durée sont renvoyées par les appels de méthode de traitement par lot, car elles prennent plus de temps que ce qui est approprié pour une réponse de l'API. Cela permet de ne pas maintenir le thread appelant ouvert pendant le traitement de nombreux documents. L'API Document AI crée une opération de longue durée chaque fois que vous appelez projects.locations.processors.batchProcess via l'API ou les bibliothèques clientes. La LRO suit l'état du job de traitement.
Vous pouvez utiliser les méthodes d'opérations fournies par l'API Document AI pour vérifier l'état des LRO. Vous pouvez également répertorier, interroger ou annuler des opérations de longue durée. Les bibliothèques clientes appellent la méthode asynchrone "poll" en interne, ce qui permet d'activer le rappel. (Pour Python, await est activé.) Ils comportent également un paramètre de délai avant expiration. Dans l'opération de longue durée principale renvoyée par .batchProcess, une opération de longue durée est créée pour chaque document (car les limites de nombre de pages par lot sont beaucoup plus élevées que l'appel process de synchronisation et peuvent prendre beaucoup de temps à traiter). Une fois l'opération de longue durée principale terminée, l'état détaillé de chaque opération de longue durée de document est fourni.
Les LRO sont gérées au niveau du projet et de l'emplacement Google Cloud . Lorsque vous envoyez une requête à l'API, incluez le projet Google Cloud et l'emplacement dans lequel l'opération de longue durée est exécutée.
L'enregistrement associé à une opération de longue durée est conservé pendant environ 30 jours après son exécution, ce qui signifie que vous ne pouvez pas afficher ni répertorier une opération de longue durée après cette date.
Obtenir les détails d'une opération de longue durée
Les exemples suivants montrent comment afficher les détails d'une opération de longue durée.
REST
Pour connaître l'état et afficher les détails d'une opération de longue durée, appelez la méthode projects.locations.operations.get.
Supposons que vous receviez la réponse suivante après avoir appelé projects.locations.processors.batchProcess :
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID"
}
La valeur name de la réponse indique que l'API Document AI a créé une LRO nommée projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID.
Vous pouvez également obtenir le nom de l'opération en répertoriant les opérations de longue durée.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud .
- LOCATION : emplacement où l'opération de longue durée est exécutée, par exemple :
us– États-Uniseu- Union européenne
- OPERATION_ID : ID de l'opération. L'ID est le dernier élément du nom de l'opération. Par exemple :
- Nom de l'opération :
projects/PROJECT_ID/locations/LOCATION/operations/bc4e1d412863e626 - ID de l'opération :
bc4e1d412863e626
- Nom de l'opération :
Méthode HTTP et URL :
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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
Exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
{
"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
Pour en savoir plus, consultez la documentation de référence de l'API Document AI en langage Go.
Pour vous authentifier auprès de Document AI, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Document AI en langage Python.
Pour vous authentifier auprès de Document AI, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Liste des opérations de longue durée
Les exemples suivants montrent comment lister les LRO dans un projet et un emplacement Google Cloud .
REST
Pour lister les LRO dans un projet et un emplacement Google Cloud , appelez la méthode projects.locations.operations.list.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud .
- LOCATION : emplacement où une ou plusieurs LRO sont en cours d'exécution, par exemple :
us– États-Uniseu- Union européenne
- FILTER (obligatoire) : requête pour les LRO à renvoyer. Options :
- TYPE (obligatoire) : type de LRO à lister. Options :
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
Méthode HTTP et URL :
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations?filter=TYPE=TYPE
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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
Exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
{
"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
Pour en savoir plus, consultez la documentation de référence de l'API Document AI en langage Go.
Pour vous authentifier auprès de Document AI, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Document AI en langage Python.
Pour vous authentifier auprès de Document AI, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Interroger une opération de longue durée
Les exemples suivants montrent comment interroger l'état d'une opération de longue durée.
REST
Pour interroger une LRO, appelez la méthode projects.locations.operations.get de manière répétée jusqu'à ce que l'opération se termine. Utilisez un intervalle entre chaque requête d'interrogation, par exemple 10 secondes.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement d'exécution de l'opération de longue durée.
- OPERATION_ID : identifiant de l'opération de longue durée.
Méthode HTTP et URL :
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante pour interroger l'état d'une opération de longue durée toutes les 10 secondes :
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
Vous devriez recevoir une réponse JSON toutes les 10 secondes.
Pendant l'exécution de l'opération, la réponse contiendra "state": "RUNNING".
Une fois l'opération terminée, la réponse contiendra "state": "SUCCEEDED" et "done": true.
PowerShell
Exécutez la commande suivante pour interroger l'état d'une opération de longue durée toutes les 10 secondes :
$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)
Vous devriez recevoir une réponse JSON toutes les 10 secondes.
Pendant l'exécution de l'opération, la réponse contiendra "state": "RUNNING".
Une fois l'opération terminée, la réponse contiendra "state": "SUCCEEDED" et "done": true.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Document AI en langage Python.
Pour vous authentifier auprès de Document AI, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Annuler une opération de longue durée
Les exemples suivants montrent comment annuler une opération de longue durée en cours d'exécution.
REST
Pour annuler une opération de longue durée, appelez la méthode projects.locations.operations.cancel.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud .
- LOCATION : emplacement où l'opération de longue durée est exécutée, par exemple :
us– États-Uniseu- Union européenne
- OPERATION_ID : ID de l'opération. L'ID est le dernier élément du nom de l'opération. Par exemple :
- Nom de l'opération :
projects/PROJECT_ID/locations/LOCATION/operations/bc4e1d412863e626 - ID de l'opération :
bc4e1d412863e626
- Nom de l'opération :
Méthode HTTP et URL :
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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
Exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
{}
"error": { "code": 400, "message": "Operation has completed and cannot be cancelled: 'PROJECT_ID/locations/LOCATION/operations/OPERATION_ID'.", "status": "FAILED_PRECONDITION" }
Go
Pour en savoir plus, consultez la documentation de référence de l'API Document AI en langage Go.
Pour vous authentifier auprès de Document AI, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Document AI en langage Python.
Pour vous authentifier auprès de Document AI, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.