Vorgänge mit langer Ausführungszeit verwalten
Vorgänge mit langer Ausführungszeit werden von Methodenaufrufen für die Batchverarbeitung zurückgegeben, da sie länger dauern als für eine API-Antwort angemessen ist. So wird der aufrufende Thread nicht blockiert, während viele Dokumente verarbeitet werden. In der Document AI API wird bei jedem Aufruf von projects.locations.processors.batchProcess
über die API oder die Clientbibliotheken ein LRO erstellt. Der LRO verfolgt den Status des Verarbeitungsjobs.
Sie können die Vorgangsmethoden verwenden, die von der Document AI API bereitgestellt werden, um den Status von LROs zu prüfen. Sie können LROs auch auflisten, abfragen oder abbrechen. Clientbibliotheken, die eine asynchrone Methode aufrufen, führen intern einen Poll durch, um einen Callback zu ermöglichen. (Für Python ist await
aktiviert.) Sie haben auch einen Zeitüberschreitungsparameter. Innerhalb des Haupt-LRO, der von .batchProcess zurückgegeben wird, wird für jedes Dokument ein LRO erstellt, da die Batch-Seitenzahllimits viel höher sind als beim synchronen process
-Aufruf und die Verarbeitung viel Zeit in Anspruch nehmen kann. Wenn der Haupt-LRO abgeschlossen ist, wird der detaillierte Status jedes Dokument-LRO angegeben.
LROs werden auf der Ebene des Google Cloud Projekts und des Standorts verwaltet. Wenn Sie eine Anfrage an die API senden, fügen Sie das Google Cloud Projekt und den Standort hinzu, an dem der LRO ausgeführt wird.
Der Datensatz eines LRO wird für etwa 30 Tage gespeichert, nachdem der LRO abgeschlossen wurde. Dies bedeutet, dass Sie nach diesem Zeitpunkt den LRO nicht mehr aufrufen oder auflisten können.
Details zu einem lange laufenden Vorgang abrufen
Die folgenden Beispiele zeigen, wie Sie Details zu einem LRO erhalten.
REST
Rufen Sie die Methode projects.locations.operations.get
auf, um den Status und Details des LRO abzurufen.
Angenommen, Sie erhalten nach dem Aufruf von projects.locations.processors.batchProcess
die folgende Antwort:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID" }
Der Wert name
in der Antwort zeigt, dass die Document AI API einen LRO mit dem Namen projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID
erstellt hat.
Sie können den Namen des LRO auch abrufen, indem Sie lang laufende Vorgänge auflisten.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud -Projekt-ID
- LOCATION: der Standort, an dem der LRO ausgeführt wird, z. B.:
us
– USAeu
– Europäische Union
- OPERATION_ID: Die ID des Vorgangs. Die ID ist das letzte Element des Vorgangsnamens. Beispiel:
- Name des Vorgangs:
projects/PROJECT_ID/locations/LOCATION/operations/bc4e1d412863e626
- Vorgangs-ID:
bc4e1d412863e626
- Name des Vorgangs:
HTTP-Methode und URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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
Weitere Informationen finden Sie in der Referenzdokumentation zur Document AI Go API.
Richten Sie zur Authentifizierung bei Document AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Weitere Informationen finden Sie in der Referenzdokumentation zur Document AI Python API.
Richten Sie zur Authentifizierung bei Document AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Lang laufende Vorgänge auflisten
Die folgenden Beispiele zeigen, wie Sie LROs in einem Google Cloud Projekt an einem Standort auflisten.
REST
Rufen Sie zum Auflisten der LROs in einem Google Cloud Projekt und an einem Standort die Methode projects.locations.operations.list
auf.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud -Projekt-ID
- LOCATION: Der Standort, an dem ein oder mehrere LROs ausgeführt werden, z. B.:
us
– USAeu
– Europäische Union
- FILTER: (Erforderlich) Abfrage für zurückzugebende LROs. Optionen:
- TYPE: (Erforderlich) Der aufzulistende LRO-Typ. Optionen:
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
HTTP-Methode und URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations?filter=TYPE=TYPE
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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
Weitere Informationen finden Sie in der Referenzdokumentation zur Document AI Go API.
Richten Sie zur Authentifizierung bei Document AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Weitere Informationen finden Sie in der Referenzdokumentation zur Document AI Python API.
Richten Sie zur Authentifizierung bei Document AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Lang andauernden Vorgang abfragen
Die folgenden Beispiele zeigen, wie der Status eines LRO abgefragt wird.
REST
Für die Abfrage eines LRO rufen Sie die Methode projects.locations.operations.get
wiederholt auf, bis der Vorgang abgeschlossen ist. Verwenden Sie einen Backoff zwischen den Abfrageanfragen, z. B. 10 Sekunden.
Bevor Sie die unten aufgeführten Daten für eine Anfrage verwenden, nehmen Sie folgende Ersetzungen vor:
- PROJECT_ID: Ihre Google Cloud -Projekt-ID
- LOCATION: der Ort, an dem der LRO ausgeführt wird
- OPERATION_ID: die ID für den LRO
HTTP-Methode und URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Führen Sie den folgenden Befehl aus, um alle 10 Sekunden den Status eines LRO abzufragen:
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
Sie sollten alle 10 Sekunden eine JSON-Antwort erhalten.
Während der Vorgang ausgeführt wird, enthält die Antwort "state": "RUNNING"
.
Wenn der Vorgang abgeschlossen ist, enthält die Antwort "state": "SUCCEEDED"
und "done": true
.
PowerShell
Führen Sie den folgenden Befehl aus, um alle 10 Sekunden den Status eines LRO abzufragen:
$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)
Sie sollten alle 10 Sekunden eine JSON-Antwort erhalten.
Während der Vorgang ausgeführt wird, enthält die Antwort "state": "RUNNING"
.
Wenn der Vorgang abgeschlossen ist, enthält die Antwort "state": "SUCCEEDED"
und "done": true
.
Python
Weitere Informationen finden Sie in der Referenzdokumentation zur Document AI Python API.
Richten Sie zur Authentifizierung bei Document AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Lang laufenden Vorgang abbrechen
Die folgenden Beispiele zeigen, wie ein LRO während der Ausführung abgebrochen wird.
REST
Rufen Sie zum Abbrechen eines LRO die Methode projects.locations.operations.cancel
auf.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud -Projekt-ID
- LOCATION: der Standort, an dem der LRO ausgeführt wird, z. B.:
us
– USAeu
– Europäische Union
- OPERATION_ID: Die ID des Vorgangs. Die ID ist das letzte Element des Vorgangsnamens. Beispiel:
- Name des Vorgangs:
projects/PROJECT_ID/locations/LOCATION/operations/bc4e1d412863e626
- Vorgangs-ID:
bc4e1d412863e626
- Name des Vorgangs:
HTTP-Methode und URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{}
"error": { "code": 400, "message": "Operation has completed and cannot be cancelled: 'PROJECT_ID/locations/LOCATION/operations/OPERATION_ID'.", "status": "FAILED_PRECONDITION" }
Go
Weitere Informationen finden Sie in der Referenzdokumentation zur Document AI Go API.
Richten Sie zur Authentifizierung bei Document AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Weitere Informationen finden Sie in der Referenzdokumentation zur Document AI Python API.
Richten Sie zur Authentifizierung bei Document AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.