Lang andauernde Vorgänge verwalten
Lang laufende Vorgänge werden durch die Batchverarbeitung von Methodenaufrufen zurückgegeben, da sie länger dauern als für eine API-Antwort angemessen ist. So wird verhindert, dass der aufrufende Thread geöffnet bleibt, während viele Dokumente verarbeitet werden. In der Document AI API wird bei jedem Aufruf von projects.locations.processors.batchProcess
über die API oder 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 die asynchrone Methode intern abfragen und einen Callback ermöglichen. Für Python ist await
aktiviert. Außerdem haben sie einen Zeitüberschreitungsparameter. Innerhalb des Haupt-LRO, der von .batchProcess zurückgegeben wird, wird für jedes Dokument ein LRO erstellt. Das liegt daran, dass die Limits für die Anzahl der Seiten im Batch viel höher sind als beim Aufruf von sync process
und die Verarbeitung viel Zeit in Anspruch nehmen kann. Wenn der Haupt-LRO endet, wird der detaillierte Status jedes Dokument-LRO angezeigt.
LROs werden auf Google Cloud Projekt- und Standortebene 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 eine 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 Speicherort, 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 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 Speicherort, an dem ein oder mehrere LROs ausgeführt werden, z. B.:
us
– USAeu
– Europäische Union
- FILTER: (Erforderlich) Abfrage nach LROs, die zurückgegeben werden sollen. Optionen:
- TYPE: (Erforderlich) Der zu listende 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.
Solange 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.
Solange 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 Speicherort, 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.