בדף הזה מוסבר איך לנהל את מחזור החיים של פעולה ממושכת (LRO) בחיפוש באמצעות סוכן.
אובייקט של פעולה ממושכת מוחזר כשקריאה לשיטה עשויה להימשך זמן רב. לדוגמה, כשמפעילים את documents.import באמצעות Discovery Engine API או ספריות הלקוח, נוצרת פעולה ממושכת. הפעולה עוקבת אחרי הסטטוס של משימת העיבוד.
אתם יכולים להשתמש ב-methods של פעולות ממושכות ש-Discovery Engine API מספק כדי לבדוק את הסטטוס של הפעולות. אפשר גם להציג רשימה של פעולות או לבצע דגימה של פעולות.
תיעוד של פעולה נשמר למשך כ-30 ימים אחרי שהפעולה מסתיימת, ולכן אי אפשר לראות או לרשום פעולה אחרי התקופה הזו.
הצגת רשימה של פעולות ממושכות
בדוגמה הבאה אפשר לראות איך מציגים את הפעולות של משאב Google Cloud.
REST
כדי לכלול ברשימה את הפעולות ארוכות הטווח של משאב Google Cloud , פועלים לפי השלב הבא:
מבצעים קריאה ל-
operations.list:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/operations"
DATA_STORE_ID: המזהה של מאגר הנתונים של חיפוש מבוסס סוכנים שנוצר באמצעות המנוע. בכתובת ה-URL של מסוף Google Cloud , מזהה מאגר הנתונים מופיע אחריengines/ולפני/data.
Python
מידע נוסף מופיע בתיעוד העזר של ה-API של חיפוש מבוסס סוכנים Python.
כדי לבצע אימות ב-חיפוש מבוסס סוכנים, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
איך מקבלים פרטים על פעולה ממושכת
בדוגמאות הבאות מוסבר איך לקבל פרטים על פעולה.
REST
כדי לראות את הסטטוס של פעולה ממושכת ואת הפרטים שלה, פועלים לפי השלבים הבאים:
אפשר למצוא את שם הפעולה באחת משתי דרכים:
אחרי שמפעילים שיטה שמחזירה פעולה ממושכת, בודקים את התשובה.
לדוגמה, אם קוראים ל-
documents.import, תחילת התגובה תיראה בערך כך:{ "operations": [ { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789", "metadata": { "@type": "type.googleapis.com/google.cloud.discoveryengine.v1.ImportDocumentsMetadata", } } ] }הערך
nameבתגובה מספק את שם הפעולה, שאפשר להשתמש בו כדי לשלוח שאילתה לגבי סטטוס הפעולה. כשמעתיקים את שם הפעולה, לא כוללים את המירכאות.אפשר לקבל את שם הפעולה על ידי הצגת רשימה של פעולות ממושכות.
מבצעים קריאה לשיטה
operations.getבמשאב שיצר את הפעולה:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/OPERATION_NAME"
OPERATION_NAME: צריך לציין את שם הפעולה שרוצים לקבל עליה מידע. אפשר למצוא את שם הפעולה על ידי רישום של פעולות ממושכות.השורות הראשונות של התגובה מהפקודה
GETנראות כך:{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789", "metadata": { "@type": "type.googleapis.com/google.cloud.discoveryengine.v1.ImportDocumentsMetadata" } }
Python
מידע נוסף מופיע בתיעוד העזר של ה-API של חיפוש מבוסס סוכנים Python.
כדי לבצע אימות ב-חיפוש מבוסס סוכנים, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
דגימה של פעולה ממושכת
בדוגמאות הבאות אפשר לראות איך שולחים שאילתה כדי לבדוק את הסטטוס של פעולה.
REST
כדי לבדוק את הפעולה ארוכת הטווח עד שהיא מסתיימת, פועלים לפי השלבים הבאים:
מריצים את הפקודה הבאה, שמפעילה שוב ושוב את השיטה
operations.get, עם השהיה מומלצת לפני ניסיון חוזר (backoff) של 10 שניות בין כל בקשה:while true; \ do curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/OPERATION_NAME"; \ sleep 10; \ done
OPERATION_NAME: מציינים את שם הפעולה שרוצים לבדוק את הסטטוס שלה. אפשר למצוא את שם הפעולה על ידי רישום של פעולות ממושכות. לדוגמה,projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789.מפסיקים את עבודת הבדיקה (
Control+Z) אחרי שהסטטוס משתנה ל-"done": true.
Python
מידע נוסף מופיע בתיעוד העזר של ה-API של חיפוש מבוסס סוכנים Python.
כדי לבצע אימות ב-חיפוש מבוסס סוכנים, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
ביטול פעולה ממושכת
בדוגמה הבאה אפשר לראות איך מבטלים פעולה:
REST
כדי לבטל פעולה ממושכת, בצע את השלבים הבאים:
מבצעים קריאה ל-
operations.cancel:curl -X post \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/OPERATION_NAME":cancel
OPERATION_NAME: מציינים את שם הפעולה שרוצים לבטל. אפשר למצוא את שם הפעולה על ידי רישום של פעולות ממושכות. לדוגמה,projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789.אחרי שמתבצעת קריאה ל-API, השרת מנסה לבטל את הפעולה. אלה התוצאות שיוצגו והפעולות שאפשר לבצע:
- שגיאה בפונקציות
"code": 400ו-"status": "FAILED_PRECONDITION"מציינת שלא ניתן לבטל את הבקשה. אם הביטול יבוצע בהצלחה, יוחזר אובייקט JSON ריק. כדי לאמת את הביטול:
- משתמשים בשיטה
operations.get. אם הפעולה בוטלה בהצלחה, התשובה מ-method
operations.getכוללת את השגיאה"code": 1, שמייצגת את קוד הסטטוסCANCELLED.לדוגמה:
{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789", "metadata": { "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.ImportDocumentsMetadata", "createTime": "2025-04-28T21:29:21.199190Z", "updateTime": "2025-04-28T21:31:29.076865Z" }, "done": true, "error": { "code": 1, "message": "Operation projects/12345/locations/global/collections/default_collection/dataStores/my-datastore_4321/branches/0/operations/import-documents-56789 is cancelled." } }
- משתמשים בשיטה
- שגיאה בפונקציות
Python
מידע נוסף מופיע בתיעוד העזר של ה-API של חיפוש מבוסס סוכנים Python.
כדי לבצע אימות ב-חיפוש מבוסס סוכנים, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.