Gérer les opérations de longue durée
Les opérations de longue durée sont renvoyées par les appels de méthode de traitement par lot, car leur exécution prend plus de temps que ce qui est approprié pour une réponse d'API. Cela permet d'éviter que le thread appelant ne reste 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. L'opération de longue durée surveille l'état de la tâche de traitement.
Vous pouvez vérifier l'état des opérations de longue durée à l'aide des méthodes d'opérations fournies par l'API Document AI. Vous pouvez également répertorier, interroger ou annuler des opérations de longue durée. Les bibliothèques clientes qui appellent la méthode asynchrone effectuent une interrogation en interne, ce qui active 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 un temps de traitement important). À la fin de l'opération de longue durée principale, l'état détaillé de chaque opération de longue durée de document est fourni.
Les opérations de longue durée sont gérées au niveau du Google Cloud projet et de l'emplacement. Lorsque vous envoyez une requête à l'API, incluez le projet Google Cloud et l'emplacement dans lequel l'opération s'exécute.
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
dans la réponse indique que l'API Document AI a créé une opération de longue durée appelé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 ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID: ID de votre Google Cloud projet.
- LOCATION: emplacement où l'opération de longue durée s'exécute, 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. 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 Go.
Pour vous authentifier auprès de Document AI, configurez le service 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 Python.
Pour vous authentifier auprès de Document AI, configurez le service 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 répertorier les opérations de longue durée d'un Google Cloud projet et d'un emplacement.
REST
Pour répertorier les opérations de longue durée d'un Google Cloud projet et d'un emplacement, appelez la méthode projects.locations.operations.list
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID: ID de votre Google Cloud projet.
- LOCATION: emplacement où une ou plusieurs opérations de longue durée sont exécutées, par exemple :
us
: États-Uniseu
: Union européenne
- FILTER: (obligatoire) Requête pour les opérations de longue durée à renvoyer. Options :
- TYPE (obligatoire) : type d'opération de longue durée à lister. Options :
BATCH_PROCESS_DOCUMENTS
CREATE_PROCESSOR_VERSION
DELETE_PROCESSOR
ENABLE_PROCESSOR
DISABLE_PROCESSOR
UPDATE_HUMAN_REVIEW_CONFIG
HUMAN_REVIEW_EVENT
CREATE_LABELER_POOL
UPDATE_LABELER_POOL
DELETE_LABELER_POOL
DEPLOY_PROCESSOR_VERSION
UNDEPLOY_PROCESSOR_VERSION
DELETE_PROCESSOR_VERSION
SET_DEFAULT_PROCESSOR_VERSION
EVALUATE_PROCESSOR_VERSION
EXPORT_PROCESSOR_VERSION
UPDATE_DATASET
IMPORT_DOCUMENTS
ANALYZE_HITL_DATA
BATCH_MOVE_DOCUMENTS
RESYNC_DATASET
BATCH_DELETE_DOCUMENTS
DELETE_DATA_LABELING_JOB
EXPORT_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 Go.
Pour vous authentifier auprès de Document AI, configurez le service 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 Python.
Pour vous authentifier auprès de Document AI, configurez le service 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 opération de longue durée, appelez la méthode projects.locations.operations.get
de façon répétée jusqu'à la fin de l'opération. Observez un intervalle (10 secondes, par exemple) entre chaque tentative d'interrogation.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID: ID de votre Google Cloud projet
- 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 contient "state": "RUNNING"
.
Une fois l'opération terminée, la réponse contient "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 contient "state": "RUNNING"
.
Une fois l'opération terminée, la réponse contient "state": "SUCCEEDED"
et "done": true
.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Document AI Python.
Pour vous authentifier auprès de Document AI, configurez le service 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 ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID: ID de votre Google Cloud projet.
- LOCATION: emplacement où l'opération de longue durée s'exécute, 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. 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 Go.
Pour vous authentifier auprès de Document AI, configurez le service 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 Python.
Pour vous authentifier auprès de Document AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.