Hier erfahren Sie, wie Sie einige durch Document AI verursachte Fehler beheben können. In diesem Thema werden Fehler beschrieben, deren Lösung mehr Schritte erfordert, als in einer Fehlermeldung beschrieben werden können.
Empfohlene Vorgehensweisen für die Fehlerbehandlung finden Sie in der Cloud API-Dokumentation.
Berechtigungen
Zur Behebung des Problems sind einige Schritte erforderlich, wie in der Fehlermeldung beschrieben.
Standardanmeldedaten für Anwendungen sind nicht verfügbar
Sie erhalten diese Meldung:
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 verwendet für die Authentifizierung die Standardanmeldedaten für Anwendungen.
Sie müssen ein Dienstkonto für Ihr Projekt haben, den Schlüssel (die JSON-Datei) für das Dienstkonto in die Entwicklungsumgebung herunterladen und dann als Speicherort dieser JSON-Datei eine Umgebungsvariable mit dem Namen GOOGLE_APPLICATION_CREDENTIALS festlegen.
Darüber hinaus muss die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS in dem Kontext verfügbar sein, in dem Sie die Document AI API aufrufen. Wenn Sie beispielsweise die Variable in einer Terminalsitzung festlegen, Ihren Code jedoch im Debugger Ihrer IDE ausführen, hat der Ausführungskontext Ihres Codes möglicherweise keinen Zugriff auf die Variable. In diesem Fall kann Ihre Anfrage an Document AI fehlschlagen, weil keine ordnungsgemäße Authentifizierung erfolgt.
In der Kurzanleitung zu Document AI und in der Dokumentation zur Verwendung der Standardanmeldedaten für Anwendungen finden Sie weitere Informationen dazu, wie Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS festlegen.
Berechtigung verweigert
Sie erhalten diese Meldung:
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"
}
}
Bestätigen Sie, dass Sie eine gültige Dienstkonto-JSON-Datei an dem in der Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS gespeicherten Ort haben und dass die Variable auf den richtigen Ort verweist.
Zur Diagnose dieses Fehlers öffnen Sie die Dienstkontoschlüsseldatei in dem Ordner, aus dem Sie die Document AI API aufrufen möchten.
cat $GOOGLE_APPLICATION_CREDENTIALS
Unzulässig: 403 POST API wurde nicht verwendet oder wurde deaktiviert
Wenn Sie die Meldung erhalten:
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.
- Rufen Sie den in der Fehlermeldung angegebenen Link auf und aktivieren Sie die Document AI API. Warten Sie einige Minuten und versuchen Sie es dann noch einmal.
- Prüfen Sie, ob Sie eine gültige JSON-Datei für den Dienstkontoschlüssel in der Umgebungsvariablen
GOOGLE_APPLICATION_CREDENTIALSgespeichert haben. Zur Diagnose dieses Fehlers öffnen Sie die Dienstkontoschlüsseldatei in dem Ordner, aus dem Sie die Document AI API aufrufen möchten.cat $GOOGLE_APPLICATION_CREDENTIALS
Fehler beim Schreiben der endgültigen Ausgabe
Wenn Sie beim Empfangen der Ergebnisse einer Batchprozessanfrage eine Nachricht wie die folgende erhalten:
{
"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"
}
}
Ihr Dienstkonto hat möglicherweise nicht die erforderlichen Berechtigungen zum Erstellen von Objekten in Ihrem Cloud Storage-Bucket. Achten Sie darauf, dass Sie Ihrem Dienstkonto die richtigen Berechtigungen zugewiesen haben, wie in der Kurzanleitung beschrieben.
Möglicherweise haben Sie den Namen Ihres Cloud Storage-Buckets auch falsch geschrieben. Prüfen Sie, ob der Bucket, auf den Sie zugreifen möchten, vorhanden ist.
P4SA hat keinen Zugriff auf Cloud Storage
Wenn das produktbezogene Document AI-Dienstkonto (P4SA) keine Berechtigung für den Zugriff auf einige Cloud Storage-Ressourcen hat.
message: "Cloud DocumentAI P4SA doesn't have access to this Cloud Storage resource:"
Dienstkonto kann kein Objekt in Cloud Storage erstellen
Wenn das produktbezogene Document AI-Dienstkonto (P4SA) keine Berechtigung zum Erstellen von Objekten in Cloud Storage hat.
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."
Das Document AI-Dienstkonto hat möglicherweise nicht die richtigen Berechtigungen zum Erstellen von Objekten in Ihrem Cloud Storage-Bucket. Achten Sie darauf, dass Sie dem Document AI-Dienstkonto die richtigen Berechtigungen zugewiesen haben, wie in der Einrichtung des projektübergreifenden Dateizugriffs beschrieben.
Möglicherweise haben Sie den Namen Ihres Cloud Storage-Buckets auch falsch geschrieben. Prüfen Sie, ob der Bucket, auf den Sie zugreifen möchten, vorhanden ist.
Aufrufer kann keine Objekte in Cloud Storage abrufen
Wenn der Aufrufer der Document AI API keine Berechtigung zum Abrufen von Objekten in Cloud Storage hat.
message: "The caller does not have permission storage.objects.get to get Google
Cloud Storage objects in bucket gs://foo."
Der Aufrufer der API hat möglicherweise nicht die richtigen Berechtigungen, um Objekte in Ihrem Cloud Storage-Bucket abzurufen. Achten Sie darauf, dass dem Anrufer die richtigen Berechtigungen zugewiesen wurden.
Möglicherweise haben Sie den Namen Ihres Cloud Storage-Buckets auch falsch geschrieben. Prüfen Sie, ob der Bucket, auf den Sie zugreifen möchten, vorhanden ist.
Ungültige Argumente
Zur Behebung des Problems sind einige Schritte erforderlich, wie in der Fehlermeldung beschrieben.
API-Version wird nicht unterstützt
Wenn eine Anfrage an eine API-Version gesendet wird, die den Vorgang nicht unterstützt.
message: "The requested operation is unsupported for the API version."
Prozessortyp wird nicht unterstützt
Wenn eine Anfrage an eine API-Methode gesendet wird, die den angegebenen Prozessortyp nicht unterstützt.
message: "The requested operation is unsupported for the processor type: ${PROCESSOR_TYPE}."
Bad Request (Fehlerhafte Anfrage)
Wenn eine API-Anfrage gestellt wird, die Anfragefelder jedoch einen oder mehrere Verstöße enthalten.
Jeder Verstoß wird als field_violations in den google.rpc.BadRequest-Details erfasst.
message: "Request contains an invalid argument."
details {
[type.googleapis.com/google.rpc.BadRequest] {
field_violations { field: "foo" description: "bar" }
}
}
Batchverarbeitung aller Dokumente fehlgeschlagen
Wenn die Verarbeitung aller Dokumente in einer Batchverarbeitungsanfrage fehlschlägt.
message: "Failed to process all documents."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "FAILED_TO_PROCESS_ALL_DOCUMENTS"
domain: "documentai.googleapis.com"
}
}
Keine Dokumente
Wenn Dokumente erforderlich oder erwartet werden, aber keine angegeben werden, z. B. beim Importieren von Dokumenten über den Cloud Storage-URI.
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"
}
}
Die Parameter gcsUriPrefix und gcsOutputConfig.gcsUri müssen mit gs:// beginnen und mit einem nachgestellten Backslash-Zeichen (/) enden. Prüfen Sie die Konfiguration für die Bucket-URIs.
Beispiel: gs://bucket/directory/
Training wird nicht unterstützt
Wenn eine Anfrage für die Verarbeitung einer Train-Prozessorversion für einen Prozessortyp gestellt wird, der kein Training unterstützt.
message: "Training is not supported on processor type: ${DOCUMENT_TYPE}_PROCESSOR."
Keine Dokumente ausgewählt
Wenn Dokumente erwartet werden, aber keine im Dataset ausgewählt sind, z. B. beim Erstellen von Aufgaben zur Labelerstellung für Daten.
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"
}
}
Dokumenttyp nicht gefunden
Wenn die Klasse eines Dokuments (z. B. Lizenz, Reisepass oder Rechnung) nicht der für den Prozessortyp erforderlichen Klassifizierung entspricht. Ein Beispiel ist, wenn im Klassifizierungsschritt des W2-Parsers keine Elemente aus einer Rechnung gefunden werden.
In der Google Cloud Console wird dies möglicherweise auch als Couldn't preview the document: Unable to find a document of type: 'foo' angezeigt.
Diese Fehlermeldung gilt für Legacy-Prozessoren.
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"
}
}
Größenbeschränkung für Dokument überschritten
Wenn beim Importieren eines Datasets oder beim Ausführen einer Vorhersage die Obergrenze für die Dateigröße eines Dokuments überschritten wurde.
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" }
}
}
Dokumentlimit überschritten
Wenn die Obergrenze für die Anzahl der Dokumente überschritten wurde.
message: "Document count exceed the limit: 5 got 6"
details {
[