Envoyer une demande de traitement
Après avoir configuré votre compteGoogle Cloud et créé un outil de traitement, vous pouvez envoyer une requête à votre outil de traitement Document AI.
Le code utilisé pour envoyer la requête est le même pour tous les processeurs. Vous pouvez voir des différences dans le fonctionnement du processeur dans les informations qu'il produit.
En utilisant la version de l'API v1
de Document AI ou la console Google Cloud, vous pouvez envoyer des requêtes de traitement à cette version spécifique de l'outil de traitement. Si vous ne spécifiez pas de version de processeur, la version par défaut est utilisée.
Pour en savoir plus, consultez Gérer les versions de l'outil de traitement.
Traitement en ligne
Les requêtes en ligne (synchrones) vous permettent d'envoyer un seul document à traiter.
Document AI traite immédiatement la requête et renvoie un document
.
Envoyer une requête à un processeur
Les exemples de code suivants vous montrent comment envoyer une requête à un processeur.
REST
Cet exemple vous montre comment fournir le contenu du document (contenu brut du document en octets via une chaîne encodée en base64) dans l'objet rawDocument
.
Vous pouvez également spécifier inlineDocument
, qui est le même format JSON Document
renvoyé par Document AI. Vous pouvez ainsi enchaîner les requêtes en transmettant le même format (par exemple, si vous classifiez un document, puis en extrayez son contenu).
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION: emplacement de votre processeur, par exemple :
us
: États-Uniseu
: Union européenne
- PROJECT_ID : ID de votre projet Google Cloud .
- PROCESSOR_ID: ID de votre processeur personnalisé.
- skipHumanReview: valeur booléenne permettant de désactiver l'examen manuel (compatible avec les outils de traitement Human-in-the-Loop uniquement).
true
: ignore l'examen manuelfalse
: active l'examen manuel (valeur par défaut)
- MIME_TYPE†: l'une des options Type MIME valides.
- IMAGE_CONTENT†: l'un des contenus de document intégrés valides, représenté sous forme de flux d'octets. Pour les représentations JSON, l'encodage base64 (chaîne ASCII) de vos données d'image binaires. Cette chaîne doit ressembler à la chaîne suivante :
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- FIELD_MASK: spécifie les champs à inclure dans la sortie
Document
. Il s'agit d'une liste de noms de champs complets séparés par une virgule au formatFieldMask
.- Exemple :
text,entities,pages.pageNumber
- Exemple :
- INDIVIDUAL_PAGES: liste des pages individuelles à traiter.
† Ce contenu peut également être spécifié à l'aide d'un contenu encodé en base64 dans l'objet inlineDocument
.
Méthode HTTP et URL :
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process
Corps JSON de la requête :
{ "skipHumanReview": skipHumanReview, "rawDocument": { "mimeType": "MIME_TYPE", "content": "IMAGE_CONTENT" }, "fieldMask": "FIELD_MASK", "processOptions": { "individualPageSelector" { "pages": [INDIVIDUAL_PAGES] } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis 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 @request.json \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Si la requête aboutit, le serveur affiche un code d'état HTTP 200 OK
et la réponse au format JSON. Le corps de la réponse contient une instance de Document
.
Envoyer une requête à une version de processeur
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION: emplacement de votre processeur, par exemple :
us
: États-Uniseu
: Union européenne
- PROJECT_ID : ID de votre projet Google Cloud .
- PROCESSOR_ID: ID de votre processeur personnalisé.
- PROCESSOR_VERSION: identifiant de la version du processeur. Pour en savoir plus, consultez Sélectionner une version de l'outil de traitement. Par exemple :
- .
pretrained-TYPE-vX.X-YYYY-MM-DD
stable
rc
- skipHumanReview: valeur booléenne permettant de désactiver l'examen manuel (compatible avec les outils de traitement Human-in-the-Loop uniquement).
true
: ignore l'examen manuelfalse
: active l'examen manuel (valeur par défaut)
- MIME_TYPE†: l'une des options Type MIME valides.
- IMAGE_CONTENT†: l'un des contenus de document intégrés valides, représenté sous forme de flux d'octets. Pour les représentations JSON, l'encodage base64 (chaîne ASCII) de vos données d'image binaires. Cette chaîne doit ressembler à la chaîne suivante :
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- FIELD_MASK: spécifie les champs à inclure dans la sortie
Document
. Il s'agit d'une liste de noms de champs complets séparés par une virgule au formatFieldMask
.- Exemple :
text,entities,pages.pageNumber
- Exemple :
† Ce contenu peut également être spécifié à l'aide d'un contenu encodé en base64 dans l'objet inlineDocument
.
Méthode HTTP et URL :
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process
Corps JSON de la requête :
{ "skipHumanReview": skipHumanReview, "rawDocument": { "mimeType": "MIME_TYPE", "content": "IMAGE_CONTENT" }, "fieldMask": "FIELD_MASK" }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis 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 @request.json \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Si la requête aboutit, le serveur affiche un code d'état HTTP 200 OK
et la réponse au format JSON. Le corps de la réponse contient une instance de Document
.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Document AI C#.
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.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Document AI Java.
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.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Document AI Node.js.
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 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.
Traitement par lot
Les requêtes par lot (asynchrones) vous permettent d'envoyer plusieurs documents en une seule requête. Document AI répond avec un operation
que vous pouvez interroger pour connaître l'état de la requête. Une fois cette opération terminée, elle contient un BatchProcessMetadata
qui pointe vers le bucket Cloud Storage dans lequel les résultats traités sont stockés.
Si les fichiers d'entrée auxquels vous souhaitez accéder se trouvent dans un bucket d'un autre projet, vous devez autoriser l'accès à ce bucket avant de pouvoir accéder aux fichiers. Consultez la section Accès au fichier de configuration.
Envoyer une requête à un processeur
Les exemples de code suivants vous montrent comment envoyer une requête de traitement par lot à un processeur.
REST
Cet exemple montre comment envoyer une requête POST
à la méthode
batchProcess
pour le traitement asynchrone de documents volumineux.
Cet exemple fait intervenir le jeton d'accès associé à un compte de service configuré pour le projet à l'aide de Google Cloud CLI. Pour obtenir des instructions sur l'installation de Google Cloud CLI, la configuration d'un projet avec un compte de service et l'obtention d'un jeton d'accès, consultez la section Avant de commencer.
Une requête batchProcess
lance une opération de longue durée et stocke les résultats dans un bucket Cloud Storage. Cet exemple montre également comment obtenir l'état de cette opération de longue durée une fois qu'elle a commencé.
Envoyer la requête de processus
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION: emplacement de votre processeur, par exemple :
us
: États-Uniseu
: Union européenne
- PROJECT_ID : ID de votre projet Google Cloud .
- PROCESSOR_ID: ID de votre processeur personnalisé.
- INPUT_BUCKET_FOLDER†: bucket/répertoire Cloud Storage à partir duquel lire les fichiers d'entrée, sous la forme suivante :
gs://bucket/directory/
- MIME_TYPE: l'une des options de type MIME valides.
- OUTPUT_BUCKET_FOLDER : répertoire/bucket Cloud Storage dans lequel enregistrer les fichiers de sortie, sous ce format :
gs://bucket/directory/
- skipHumanReview: valeur booléenne permettant de désactiver l'examen manuel (compatible avec les outils de traitement Human-in-the-Loop uniquement).
true
: ignore l'examen manuelfalse
: active l'examen manuel (valeur par défaut)
- FIELD_MASK: spécifie les champs à inclure dans la sortie
Document
. Il s'agit d'une liste de noms de champs complets séparés par une virgule au formatFieldMask
.- Exemple :
text,entities,pages.pageNumber
- Exemple :
† Au lieu d'utiliser gcsPrefix
pour inclure tous les fichiers d'un dossier GCS, vous pouvez également utiliser documents
pour lister individuellement chaque fichier:
"inputDocuments": { "gcsDocuments": { "documents": [ { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT1.ext", "mimeType": "MIME_TYPE" }, { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT2.ext", "mimeType": "MIME_TYPE" } ] } }
Méthode HTTP et URL :
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:batchProcess
Corps JSON de la requête :
{ "inputDocuments": { "gcsPrefix": { "gcsUriPrefix": "INPUT_BUCKET_FOLDER" } }, "documentOutputConfig": { "gcsOutputConfig": { "gcsUri": "OUTPUT_BUCKET_FOLDER", "fieldMask": "FIELD_MASK" } }, "skipHumanReview": BOOLEAN }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis 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 @request.json \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:batchProcess"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" }
Envoyer une requête à une version de processeur
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION: emplacement de votre processeur, par exemple :
us
: États-Uniseu
: Union européenne
- PROJECT_ID : ID de votre projet Google Cloud .
- PROCESSOR_ID: ID de votre processeur personnalisé.
- PROCESSOR_VERSION: identifiant de la version du processeur. Pour en savoir plus, consultez Sélectionner une version de l'outil de traitement. Par exemple :
- .
pretrained-TYPE-vX.X-YYYY-MM-DD
stable
rc
- INPUT_BUCKET_FOLDER†: bucket/répertoire Cloud Storage à partir duquel lire les fichiers d'entrée, sous la forme suivante :
gs://bucket/directory/
- MIME_TYPE: l'une des options de type MIME valides.
- OUTPUT_BUCKET_FOLDER : répertoire/bucket Cloud Storage dans lequel enregistrer les fichiers de sortie, sous ce format :
gs://bucket/directory/
- skipHumanReview: valeur booléenne permettant de désactiver l'examen manuel (compatible avec les outils de traitement Human-in-the-Loop uniquement).
true
: ignore l'examen manuelfalse
: active l'examen manuel (valeur par défaut)
- FIELD_MASK: spécifie les champs à inclure dans la sortie
Document
. Il s'agit d'une liste de noms de champs complets séparés par une virgule au formatFieldMask
.- Exemple :
text,entities,pages.pageNumber
- Exemple :
† Au lieu d'utiliser gcsPrefix
pour inclure tous les fichiers d'un dossier GCS, vous pouvez également utiliser documents
pour lister individuellement chaque fichier:
"inputDocuments": { "gcsDocuments": { "documents": [ { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT1.ext", "mimeType": "MIME_TYPE" }, { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT2.ext", "mimeType": "MIME_TYPE" } ] } }
Méthode HTTP et URL :
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:batchProcess
Corps JSON de la requête :
{ "inputDocuments": { "gcsPrefix": { "gcsUriPrefix": "INPUT_BUCKET_FOLDER" } }, "documentOutputConfig": { "gcsOutputConfig": { "gcsUri": "OUTPUT_BUCKET_FOLDER", "fieldMask": "FIELD_MASK" } }, "skipHumanReview": BOOLEAN }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis 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 @request.json \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:batchProcess"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" }
Si la requête aboutit, l'API Document AI renvoie le nom de votre opération.
Obtenir les résultats
Pour obtenir les résultats de votre requête, vous devez envoyer une requête GET
à la ressource operations
. Vous trouverez ci-dessous la procédure à suivre pour envoyer une requête de ce type.
Pour en savoir plus, consultez la documentation sur 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 projet Google Cloud .
- 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" } }
Le corps de la réponse contient une instance de Operation
avec des informations sur l'état de l'opération.
Si l'opération a réussi, le champ metadata
est renseigné par une instance de BatchProcessMetadata
contenant des informations sur les documents traités.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Document AI C#.
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.
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 les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Document AI Java.
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.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Document AI Node.js.
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 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.
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 les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Document AI Ruby.
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.
Créer des lots de documents avec le SDK Python
Le traitement par lot permet d'importer 1 000 fichiers maximum par requête. Si vous avez plus de documents à traiter, vous devez les répartir en plusieurs lots.
Document AI Toolbox est un SDK pour Python qui fournit des fonctions utilitaires pour Document AI. L'une des fonctions consiste à créer des lots de documents à traiter à partir d'un dossier Cloud Storage.
Pour en savoir plus sur la façon dont Document AI Toolbox facilite le post-traitement, consultez Gérer la réponse de traitement.
Exemples de code
Les exemples de code suivants montrent comment utiliser Document AI Toolbox.