פעולות ממושכות

עבור חלק מהקריאות ל-API, ‏ Gemini Enterprise Agent Platform מחזירה שמות של פעולות. קריאות ה-API האלה מפעילות פעולות שנדרש זמן להשלמתן, והן נקראות פעולות ממושכות. לדוגמה, יצירת קבוצת נתונים, מחיקת נקודת קצה או ייצוא של מודל הן פעולות ארוכות טווח. אפשר להשתמש בשיטות עזר יחד עם שמות פעולות כדי לקבל את הסטטוס של פעולה ממושכת או לבטל אותה, כמו שמתואר בקטעים הבאים.

קבלת הסטטוס של פעולה

כדי לקבל את סטטוס הפעולה, צריך להשתמש בשם הפעולה שהופיע בתגובה כשביקשתם פעולה ממושכת. לדוגמה, כשיוצרים מערך נתונים, Agent Platform מחזיר שם של פעולה, כמו:
projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID

אפשר לדגום את הפעולה במרווחי זמן קבועים כדי לדעת מתי היא מסתיימת.

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • OPERATION_NAME: שם הפעולה שמוחזר כשמתחילים פעולה ממושכת, כמו projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID

ה-method של ה-HTTP וכתובת ה-URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/OPERATION_NAME

כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/OPERATION_NAME"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/OPERATION_NAME" | Select-Object -Expand Content

בפלט, האובייקט metadata מכיל מידע שספציפי לסוג הבקשה. השדה done מציין אם הפעולה הושלמה. אם הפעולה הושלמה, האובייקט response מכיל תוצאות מהפעולה.

{
  "name": "projects/123456789012/locations/us-central1/datasets/1234567890123456789/operations/1223344556677889900",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateDatasetOperationMetadata",
    "genericMetadata": {
      "createTime": "2020-10-12T16:00:44.686500Z",
      "updateTime": "2020-10-12T16:01:06.115081Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.Dataset",
    "name": "projects/123456789012/locations/us-central1/datasets/1234567890123456789",
    "displayName": "image_dataset",
    "metadataSchemaUri": "gs://google-cloud-aiplatform/schema/dataset/metadata/image_1.0.0.yaml",
    "labels": {
      "aiplatform.googleapis.com/dataset_metadata_schema": "IMAGE"
    },
    "metadata": {
      "dataItemSchemaUri": "gs://google-cloud-aiplatform/schema/dataset/dataitem/image_1.0.0.yaml"
    }
  }
}

ביטול פעולה

אפשר לבטל פעולה ממושכת כדי לעצור אותה לפני שהיא מסתיימת. כשמבטלים פעולה בהצלחה, הפעולה לא נמחקת, אלא נעצרת עם קוד השגיאה 1 וההודעה CANCELLED. חשוב לזכור שלא תמיד הביטול מצליח.

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • OPERATION_NAME: שם הפעולה שמוחזר כשמתחילים פעולה ממושכת, כמו projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID

ה-method של ה-HTTP וכתובת ה-URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/OPERATION_NAME:cancel

כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:

curl

מריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://LOCATION-aiplatform.googleapis.com/v1/OPERATION_NAME:cancel"

PowerShell

מריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/OPERATION_NAME:cancel" | Select-Object -Expand Content

אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.