Découvrez comment résoudre certaines erreurs générées par Document AI. Cette rubrique traite des erreurs dont la résolution nécessite un nombre d'étapes ne pouvant pas être indiqué facilement dans un message d'erreur.
Consultez la documentation de l'API Cloud pour connaître les bonnes pratiques de gestion des exceptions.
Autorisations
Pour résoudre le problème, vous devez suivre quelques étapes, comme indiqué dans le message d'erreur.
Les identifiants par défaut de l'application ne sont pas disponibles
Si vous recevez ce message :
The Application Default Credentials are not available. They are available if running in Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.
Document AI utilise les identifiants par défaut de l'application pour l'authentification.
Vous devez disposer d'un compte de service pour votre projet, télécharger la clé (fichier JSON) de votre compte de service dans votre environnement de développement, puis définir l'emplacement de ce fichier JSON sur une variable d'environnement nommée GOOGLE_APPLICATION_CREDENTIALS.
En outre, la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS doit être disponible dans le contexte d'appel de l'API Document AI. Par exemple, si vous définissez la variable à partir d'une session de terminal, mais exécutez le code dans le débogueur de votre IDE, le contexte d'exécution du code peut ne pas avoir accès à la variable. Dans ce cas, la requête à Document AI pourrait échouer faute d'authentification appropriée.
Pour en savoir plus sur la définition de la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS, consultez le guide de démarrage rapide Document AI ou la documentation sur l'utilisation des identifiants par défaut de l'application.
Autorisation refusée
Si vous recevez ce message :
ERROR: (gcloud.auth.application-default.print-access-token) File
(pointed by GOOGLE_APPLICATION_CREDENTIALS environment variable) does not exist!
{
"error": {
"code": 403,
"message": "The request is missing a valid API key.",
"status": "PERMISSION_DENIED"
}
}
Vérifiez que vous disposez d'un fichier JSON de clé de compte de service valide à l'emplacement stocké dans la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS et que cette dernière pointe vers l'emplacement approprié.
Pour diagnostiquer cette erreur, essayez d'ouvrir le fichier de clé du compte de service depuis le dossier à partir duquel vous tentez d'appeler l'API Document AI.
cat $GOOGLE_APPLICATION_CREDENTIALS
Interdit : 403 La méthode POST de l'API n'est pas utilisée ou est désactivée
Si vous recevez le message suivant :
Forbidden: 403 POST Document AI API has not been used in project # before or it is disabled. Enable it by visiting [url], then retry. If you enabled this API recently, wait a few minutes for the action to propagate and retry.
- Accédez au lien indiqué dans le message d'erreur et activez l'API Document AI. Patientez quelques minutes, puis réessayez.
- Vérifiez que vous disposez d'un fichier JSON de clé de compte de service valide stocké dans la variable d'environnement
GOOGLE_APPLICATION_CREDENTIALS. Pour diagnostiquer cette erreur, essayez d'ouvrir le fichier de clé du compte de service depuis le dossier à partir duquel vous tentez d'appeler l'API Document AI.cat $GOOGLE_APPLICATION_CREDENTIALS
Erreur lors de l'écriture du résultat final
Si vous recevez un message semblable à celui-ci lorsque vous recevez les résultats d'une requête de traitement par lot :
{
"name": "projects/project-name/operations/operation-id",
"metadata": {
"@type": "type.googleapis.com/google.cloud.document.v1beta1.OperationMetadata",
"state": "SUCCEEDED",
"createTime": "2019-09-19T02:02:15.885267760Z",
"updateTime": "2019-09-19T02:02:31.896425001Z"
},
"done": true,
"error": {
"code": 5,
"message": "Error writing final output to: gs://bucket-name/filename.json"
}
}
Il est possible que votre compte de service ne dispose pas des autorisations nécessaires pour créer des objets dans votre bucket Cloud Storage. Assurez-vous d'avoir attribué les autorisations appropriées à votre compte de service, comme décrit dans le guide de démarrage rapide.
Il est également possible que vous ayez mal orthographié le nom de votre bucket Cloud Storage. Vérifiez que le bucket auquel vous essayez d'accéder existe.
P4SA n'a pas accès à Cloud Storage
Lorsque le compte de service par produit (P4SA) Document AI n'est pas autorisé à accéder à certaines ressources Cloud Storage.
message: "Cloud DocumentAI P4SA doesn't have access to this Cloud Storage resource:"
Le compte de service ne peut pas créer d'objet dans Cloud Storage
Lorsque le compte de service par produit (P4SA) Document AI n'est pas autorisé à créer un objet dans Cloud Storage.
message: "Service account service-123@gcp-sa-prod-dai-core.iam.gserviceaccount.com
does not have permission storage.objects.create to create
Google Cloud Storage object in bucket gs://foo."
Il est possible que le compte de service Document AI ne dispose pas des autorisations nécessaires pour créer des objets dans votre bucket Cloud Storage. Assurez-vous d'avoir attribué les autorisations appropriées au compte de service Document AI, comme décrit dans la configuration de l'accès aux fichiers entre projets.
Il est également possible que vous ayez mal orthographié le nom de votre bucket Cloud Storage. Vérifiez que le bucket auquel vous essayez d'accéder existe.
L'appelant ne peut pas obtenir d'objets dans Cloud Storage
Lorsque l'appelant de l'API Document AI n'est pas autorisé à obtenir des objets dans Cloud Storage.
message: "The caller does not have permission storage.objects.get to get Google
Cloud Storage objects in bucket gs://foo."
Il se peut que l'appelant de l'API ne dispose pas des autorisations nécessaires pour obtenir des objets dans votre bucket Cloud Storage. Assurez-vous d'avoir attribué les autorisations appropriées à l'appelant.
Il est également possible que vous ayez mal orthographié le nom de votre bucket Cloud Storage. Vérifiez que le bucket auquel vous essayez d'accéder existe.
Arguments non valides
Pour résoudre le problème, vous devez suivre quelques étapes, comme indiqué dans le message d'erreur.
Version de l'API non compatible
Lorsqu'une requête est envoyée à une version d'API qui ne prend pas en charge l'opération.
message: "The requested operation is unsupported for the API version."
Type de processeur non compatible
Lorsqu'une requête est envoyée à une méthode d'API qui ne prend pas en charge le type de processeur donné.
message: "The requested operation is unsupported for the processor type: ${PROCESSOR_TYPE}."
Requête incorrecte
Lorsqu'une requête API est envoyée, mais que les champs de la requête comportent une ou plusieurs infractions.
Chaque cas de non-respect est enregistré en tant que field_violations dans les détails de google.rpc.BadRequest.
message: "Request contains an invalid argument."
details {
[type.googleapis.com/google.rpc.BadRequest] {
field_violations { field: "foo" description: "bar" }
}
}
Échec du traitement par lot de tous les documents
Lorsque le traitement de chaque document d'une requête de traitement par lot échoue.
message: "Failed to process all documents."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "FAILED_TO_PROCESS_ALL_DOCUMENTS"
domain: "documentai.googleapis.com"
}
}
Aucun document
Lorsque des documents sont requis ou attendus, mais qu'aucun n'est fourni, par exemple lors de l'importation de documents par URI Cloud Storage.
message: "No valid documents found in ${training|test} directory. Ensure files are in a supported MIME type. For details, see https://cloud.google.com/document-ai/docs/file-types."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "NO_DOCUMENTS"
domain: "documentai.googleapis.com"
}
}
Les paramètres gcsUriPrefix et gcsOutputConfig.gcsUri doivent commencer par gs:// et se terminer par une barre oblique inverse (/). Vérifiez la configuration des URI de bucket.
Exemple : gs://bucket/directory/
L'entraînement n'est pas accepté
Lorsqu'une demande de version de processeur d'entraînement est effectuée sur un type de processeur qui ne prend pas en charge l'entraînement.
message: "Training is not supported on processor type: ${DOCUMENT_TYPE}_PROCESSOR."
Aucun document sélectionné
Lorsque des documents sont attendus, mais qu'aucun n'est sélectionné dans l'ensemble de données, par exemple lors de la création de tâches d'étiquetage de données.
message: No documents selected. Please select at least one document."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "NO_DOCUMENTS_SELECTED"
domain: "documentai.googleapis.com"
}
}
Type de document introuvable
Lorsque la classe d'un document (comme une licence, un passeport ou une facture) ne correspond pas à la classification nécessaire pour le type de processeur. Par exemple, lorsque l'étape de classification du parseur W2 ne trouve pas d'éléments dans une facture.
Il peut également s'afficher sous la forme Couldn't preview the document: Unable to find a document of type: 'foo' dans la console Google Cloud .
Ce message d'erreur s'applique aux anciens processeurs.
message: "Unable to find a document of type: 'foo'"
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "DOCUMENT_OF_TYPE_NOT_FOUND"
domain: "documentai.googleapis.com"
}
}
La taille limite du document a été dépassée
Lorsque la limite supérieure de la taille de fichier d'un document a été dépassée lors de l'importation d'un ensemble de données ou de l'exécution d'une prédiction.
message: "Document size (2) exceeds limit: 1 (bytes)."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "DOCUMENT_SIZE_LIMIT_EXCEEDED"
domain: "documentai.googleapis.com"
metadata { key: "limit" value: "1" }
metadata { key: "size" value: "2" }