ניהול העלויות של סוכני Conversational Analytics API ב-BigQuery

בדף הזה מוסבר איך לעקוב אחרי העלויות של סוכני Conversational Analytics API ב-BigQuery ולנהל אותן. העלויות האלה נובעות מהרצת שאילתות על הנתונים ב-BigQuery. אפשר להשתמש בשיטות הבאות כדי לשלוט בהוצאות ולמנוע עלויות בלתי צפויות:

לפני שמתחילים

לפני שמטמיעים את אמצעי בקרת העלויות שמתוארים בדף הזה, צריך לוודא שמתקיימות הדרישות הבאות:

  • צריך שיהיה לכם פרויקט ב- Google Cloud שבו החיוב מופעל.
  • כדי לנהל את המכסות והחיוב של הפרויקט Google Cloud , אתם צריכים את ההרשאות הנדרשות לניהול זהויות והרשאות גישה (IAM).

הגדרת מכסות לפרויקטים ולמשתמשים

אפשר להגדיר מגבלות הוצאה עבור Google Cloud פרויקט או עבור משתמשים ספציפיים באמצעות מכסות BigQuery רגילות. ההגבלות האלה עוזרות לכם לשלוט בעלויות הכוללות ולמנוע ממשתמשים בודדים להוציא יותר מדי כסף.

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

הגדרת פרויקט ייעודי לסוכן

כדי להגדיר פרויקט ייעודי לסוכן או לסוכנים של Conversational Analytics API, פועלים לפי השלבים הבאים:

  1. במסוף Google Cloud , יוצרים פרויקט חדש Google Cloud . הפרויקט הזה יוקדש לסוכן או לסוכנים שלכם.
  2. מוודאים שהחיוב מופעל בפרויקט החדש.
  3. מוודאים שהסוכן מוגדר להשתמש בפרויקט החדש הזה לחיוב. כשמגדירים את הסוכן, צריך לציין את מזהה הפרויקט החדש.

הגדרת מכסה לפרויקט

אחרי שמגדירים פרויקט ייעודי Google Cloud , אפשר להחיל עליו מכסת שימוש כדי לשלוט בעלויות של הפרויקט כולו. כדי להגדיר מכסה ברמת הפרויקט, מבצעים את השלבים הבאים:

  1. בפרויקט Google Cloud של הסוכן, עוברים אל IAM & Admin > Quotas.

    לפתיחת הדף Quotas

  2. מסננים לפי שירות BigQuery API ובוחרים במכסה Query usage per day (שימוש בשאילתות לכל יום).

  3. עורכים את המכסה למגבלה היומית הרצויה (לדוגמה, 10TiB). המגבלה הזו יוצרת עצירה מוחלטת שמונעת מהפרויקט לחרוג מהעלות היומית שצוינה.

הגדרת מכסה למשתמשים

כדי למנוע מצב שבו משתמש בודד יגרום לחשבון גדול, אפשר להגדיר מכסה לכל משתמש באופן הבא:

  1. בפרויקט Google Cloud של הסוכן, עוברים אל IAM & Admin > Quotas.

    לפתיחת הדף Quotas

  2. מסננים לפי השירות BigQuery API ובוחרים במכסה Query usage per day per user (שימוש בשאילתות לכל יום לכל משתמש).

  3. עורכים את המכסה למגבלה היומית הרצויה (לדוגמה, 1TiB לכל משתמש ביום). המגבלה הזו מבטיחה שאף משתמש לא יוכל לצרוך כמות מוגזמת של משאבים.

הגבלת העלויות של שאילתות ספציפיות

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

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

אפשר להגדיר את הפרמטר big_query_max_billed_bytes בשדות published_context או staging_context כשיוצרים או מגדירים סוכן עם HTTP או עם Python SDK. בדוגמה הבאה של קוד JSON מוצגת בקשה להגדרת מגבלה של 100MiB לסוכן:

{
  "data_analytics_agent": {
    "published_context": {
      "system_instruction": "This agent provides information about street trees in San Francisco, including their species, location, and planting date.",
      "options": {
        "datasource": {
          "big_query_max_billed_bytes": "104857600"
        }
      },
      "datasource_references": {
        "bq": {
          "tableReferences": [
            {
              "projectId": "bigquery-public-data",
              "datasetId": "san_francisco",
              "tableId": "street_trees"
            }
          ]
        }
      }
    }
  }
}

בדוגמה הזו, הפרמטר big_query_max_billed_bytes מוגדר ל-104857600 בייט (100MiB). הערך הזה קובע מגבלה לכל השאילתות שמופעלות על ידי סוכן sample-agent-id בטבלה ב-BigQuery bigquery-public-data.san_francisco.street_trees.

מגבלות

כשמנהלים את העלויות של סוכני Conversational Analytics API, חשוב לזכור את המגבלות הבאות:

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