פעולות ממושכות מוחזרות על ידי קריאות לשיטות של עיבוד באצווה, כי משך הפעולה שלהן ארוך יותר מהזמן המתאים לתגובת API. כך, השרשור של השיחה לא נשאר פתוח בזמן העיבוד של הרבה מסמכים. ממשק Document AI API יוצר LRO בכל פעם שמבצעים קריאה ל-projects.locations.processors.batchProcess דרך ה-API או ספריות הלקוח. ה-LRO עוקב אחרי הסטטוס של משימת העיבוד.
אתם יכולים להשתמש בשיטות הפעולות ש-Document AI API מספק כדי לבדוק את הסטטוס של פעולות ממושכות. אפשר גם לרשום, לשאול או לבטל פעולות LRO. ספריות לקוח שקוראות לשיטה אסינכרונית מבצעות סקר באופן פנימי, וכך מאפשרות קריאה חוזרת. (ב-Python, await מופעל). הן כוללות גם פרמטר של פסק זמן. בתוך ה-LRO הראשי שמוחזר על ידי .batchProcess, נוצר LRO לכל מסמך (כי מגבלות ספירת הדפים של אצווה גבוהות בהרבה מאלה של קריאת ה-sync process, והעיבוד יכול להימשך זמן רב). כש-LRO הראשי מסתיים, מוצג הסטטוס המפורט של כל מסמך LRO.
הפעולות ארוכות הטווח מנוהלות ברמת Google Cloud הפרויקט והמיקום. כששולחים בקשה ל-API, צריך לכלול את Google Cloud הפרויקט ואת המיקום שבו פועל ה-LRO.
רשומה של פעולה ארוכת טווח נשמרת למשך כ-30 יום אחרי שהפעולה מסתיימת, כלומר אחרי התקופה הזו אי אפשר לראות או לרשום פעולה ארוכת טווח.
קבלת פרטים על פעולה ממושכת
בדוגמאות הבאות אפשר לראות איך מקבלים פרטים על פעולת LRO.
REST
כדי לקבל את הסטטוס של LRO ולהציג פרטים לגביו, קוראים לשיטה projects.locations.operations.get.
נניח שקיבלתם את התגובה הבאה אחרי שקראתם ל-projects.locations.processors.batchProcess:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID"
}
הערך name בתגובה מציין ש-Document AI API יצר LRO בשם projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID.
אפשר גם לאחזר את שם ה-LRO על ידי רישום פעולות ממושכות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- LOCATION: המיקום שבו פועל ה-LRO, לדוגמה:
us– ארצות הבריתeu- האיחוד האירופי
- OPERATION_ID: מזהה הפעולה. המזהה הוא הרכיב האחרון בשם של הפעולה. לדוגמה:
- שם הפעולה:
projects/PROJECT_ID/locations/LOCATION/operations/bc4e1d412863e626 - מזהה הפעולה:
bc4e1d412863e626
- שם הפעולה:
ה-method של ה-HTTP וכתובת ה-URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
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
מריצים את הפקודה הבאה:
$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
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"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
למידע נוסף, קראו את מאמרי העזרה של Document AI Go API.
כדי לבצע אימות ב-Document AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
למידע נוסף, קראו את מאמרי העזרה של Document AI Python API.
כדי לבצע אימות ב-Document AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
הצגת רשימה של פעולות ממושכות
בדוגמאות הבאות אפשר לראות איך מציגים את הפעולות הממושכות בפרויקט ובמיקום מסוימים. Google Cloud
REST
כדי להציג רשימה של פעולות LRO ב Google Cloud פרויקט ובמיקום, צריך לבצע קריאה ל-method projects.locations.operations.list.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- LOCATION: המיקום שבו פועלות פעולות LRO אחת או יותר, לדוגמה:
us– ארצות הבריתeu- האיחוד האירופי
- FILTER: (חובה) שאילתה ל-LRO להחזרה. אפשרויות:
- TYPE: (חובה) סוג ה-LRO שרוצים להציג. אפשרויות:
BATCH_PROCESS_DOCUMENTSCREATE_PROCESSOR_VERSIONDELETE_PROCESSORENABLE_PROCESSORDISABLE_PROCESSORUPDATE_HUMAN_REVIEW_CONFIGHUMAN_REVIEW_EVENTCREATE_LABELER_POOLUPDATE_LABELER_POOLDELETE_LABELER_POOLDEPLOY_PROCESSOR_VERSIONUNDEPLOY_PROCESSOR_VERSIONDELETE_PROCESSOR_VERSIONSET_DEFAULT_PROCESSOR_VERSIONEVALUATE_PROCESSOR_VERSIONEXPORT_PROCESSOR_VERSIONUPDATE_DATASETIMPORT_DOCUMENTSANALYZE_HITL_DATABATCH_MOVE_DOCUMENTSRESYNC_DATASETBATCH_DELETE_DOCUMENTSDELETE_DATA_LABELING_JOBEXPORT_DOCUMENTS
ה-method של ה-HTTP וכתובת ה-URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations?filter=TYPE=TYPE
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
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
מריצים את הפקודה הבאה:
$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
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"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
למידע נוסף, קראו את מאמרי העזרה של Document AI Go API.
כדי לבצע אימות ב-Document AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
למידע נוסף, קראו את מאמרי העזרה של Document AI Python API.
כדי לבצע אימות ב-Document AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
דגימה של פעולה ממושכת
בדוגמאות הבאות אפשר לראות איך לשלוח שאילתה כדי לבדוק את הסטטוס של פעולה ארוכת טווח.
REST
כדי לבצע שאילתה לגבי LRO, צריך להפעיל שוב ושוב את השיטה projects.locations.operations.get עד שהפעולה מסתיימת. צריך להשתמש בהשהיה לפני ניסיון חוזר בין כל בקשת בדיקה, למשל 10 שניות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- LOCATION: המיקום שבו פועל ה-LRO
- OPERATION_ID: המזהה של ה-LRO
ה-method של ה-HTTP וכתובת ה-URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה כדי לבדוק את הסטטוס של פעולת LRO כל 10 שניות:
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
אתם אמורים לקבל תגובת JSON כל 10 שניות.
בזמן שהפעולה פועלת, התגובה תכיל את הערך "state": "RUNNING".
כשהפעולה מסתיימת, התגובה מכילה את הערכים "state": "SUCCEEDED" ו-"done": true.
PowerShell
מריצים את הפקודה הבאה כדי לבדוק את הסטטוס של פעולת LRO כל עשר שניות:
$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)
אתם אמורים לקבל תגובת JSON כל 10 שניות.
בזמן שהפעולה פועלת, התגובה תכיל את הערך "state": "RUNNING".
כשהפעולה מסתיימת, התגובה מכילה את הערכים "state": "SUCCEEDED" ו-"done": true.
Python
למידע נוסף, קראו את מאמרי העזרה של Document AI Python API.
כדי לבצע אימות ב-Document AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
ביטול פעולה ממושכת
בדוגמאות הבאות מוצגות דרכים לביטול פעולת LRO בזמן שהיא פועלת.
REST
כדי לבטל LRO, מבצעים קריאה ל-method projects.locations.operations.cancel.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- LOCATION: המיקום שבו פועל ה-LRO, לדוגמה:
us– ארצות הבריתeu- האיחוד האירופי
- OPERATION_ID: מזהה הפעולה. המזהה הוא הרכיב האחרון בשם של הפעולה. לדוגמה:
- שם הפעולה:
projects/PROJECT_ID/locations/LOCATION/operations/bc4e1d412863e626 - מזהה הפעולה:
bc4e1d412863e626
- שם הפעולה:
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
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
מריצים את הפקודה הבאה:
$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
אתם אמורים לקבל תגובת JSON שדומה לזו:
{}
"error": { "code": 400, "message": "Operation has completed and cannot be cancelled: 'PROJECT_ID/locations/LOCATION/operations/OPERATION_ID'.", "status": "FAILED_PRECONDITION" }
Go
למידע נוסף, קראו את מאמרי העזרה של Document AI Go API.
כדי לבצע אימות ב-Document AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
למידע נוסף, קראו את מאמרי העזרה של Document AI Python API.
כדי לבצע אימות ב-Document AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.