טיפול בשגיאות שקשורות למכסה באמצעות קריאה חוזרת לפונקציה ML.GENERATE_TEXT

במדריך הזה נסביר איך להשתמש בפרוצדורה המאוחסנת הציבורית BigQuery bqutil.procedure.bqml_generate_text כדי לבצע איטרציה על קריאות לפונקציה ML.GENERATE_TEXT. הפעלת הפונקציה באופן איטרטיבי מאפשרת לטפל בשגיאות שניתן לנסות שוב לתקן אותן, שמתרחשות בגלל חריגה מהקווטות והמגבלות שחלות על הפונקציה.

כדי לבדוק את קוד המקור של bqutil.procedure.bqml_generate_text הפרוצדורה המאוחסנת ב-GitHub, אפשר לעיין בbqml_generate_text.sqlx. מידע נוסף על הפרמטרים של הפרוצדורה המאוחסנת ועל השימוש בה זמין בקובץ ה-README.

במדריך הזה מוסבר איך לבצע את הפעולות הבאות:

  • יצירת מודל מרחוק על בסיס מודל gemini-2.5-pro.
  • חזרה על קריאות לפונקציה ML.GENERATE_TEXT, באמצעות המודל המרוחק וטבלת הנתונים הציבוריים bigquery-public-data.bbc_news.fulltext עם הפרוצדורה המאוחסנת bqutil.procedure.bqml_generate_text.

ההרשאות הנדרשות

כדי להפעיל את המדריך הזה, אתם צריכים את התפקידים הבאים בניהול הזהויות והרשאות הגישה (IAM):

  • יצירה ושימוש במערכי נתונים, בחיבורים ובמודלים של BigQuery: ניהול BigQuery‏ (roles/bigquery.admin).
  • נותנים הרשאות לחשבון השירות של החיבור: אדמין IAM של פרויקט (roles/resourcemanager.projectIamAdmin).

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

ההרשאות הנדרשות

  • יצירת מערך נתונים: bigquery.datasets.create
  • יצירה, הקצאה ושימוש בחיבור: bigquery.connections.*
  • הגדרת החיבור המוגדר כברירת מחדל: bigquery.config.*
  • מגדירים את ההרשאות לחשבון השירות: resourcemanager.projects.getIamPolicy ו- resourcemanager.projects.setIamPolicy
  • יצירת מודל והרצת הסקה:
    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
    • bigquery.models.updateMetadata

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

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

  • BigQuery ML: You incur costs for the data that you process in BigQuery.
  • Gemini Enterprise Agent Platform: You incur costs for calls to the Agent Platform model.

כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

מידע נוסף על התמחור של BigQuery זמין במאמר תמחור ב-BigQuery.

מידע נוסף על התמחור של Agent Platform

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

  1. בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים

    כניסה לדף לבחירת הפרויקט

  2. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  3. מפעילים את ממשקי ה-API‏ BigQuery,‏ BigQuery Connection ו-Agent Platform.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    הפעלת ממשקי ה-API

יצירת מערך נתונים

יוצרים מערך נתונים ב-BigQuery לאחסון המודלים ונתונים לדוגמה:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    לדף BigQuery

  2. בחלונית Explorer, לוחצים על שם הפרויקט.

  3. לוחצים על הצגת פעולות > יצירת מערך נתונים.

  4. בדף Create dataset, מבצעים את הפעולות הבאות:

    1. בשדה Dataset ID (מזהה מערך הנתונים), מזינים sample.

    2. בקטע Location type, בוחרים באפשרות Multi-region ואז באפשרות US (multiple regions in United States).

    3. משאירים את הגדרות ברירת המחדל שנותרו כמו שהן ולוחצים על Create dataset (יצירת מערך נתונים).

יצירת המודל ליצירת טקסט

יוצרים מודל מרוחק שמייצג מודל של Agent Platform מתארח:gemini-2.5-pro

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בעורך השאילתות, מריצים את ההצהרה הבאה:

    CREATE OR REPLACE MODEL `sample.generate_text`
      REMOTE WITH CONNECTION DEFAULT
      OPTIONS (ENDPOINT = 'gemini-2.5-pro');

    השלמת השאילתה אורכת כמה שניות, ואחריה המודל generate_textמופיע במערך הנתונים sample בחלונית Explorer. מכיוון שהשאילתה משתמשת בהצהרת CREATE MODEL כדי ליצור מודל, אין תוצאות לשאילתה.

הפעלת התהליך המאוחסן

מריצים את bqutil.procedure.bqml_generate_text הפרוצדורה המאוחסנת, שמבצעת איטרציה על קריאות לפונקציה ML.GENERATE_TEXT באמצעות המודל sample.generate_text וטבלת הנתונים הציבוריים bigquery-public-data.bbc_news.fulltext:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בעורך השאילתות, מריצים את ההצהרה הבאה:

    CALL `bqutil.procedure.bqml_generate_text`(
        "bigquery-public-data.bbc_news.fulltext",   -- source table
        "PROJECT_ID.sample.news_generated_text",  -- destination table
        "PROJECT_ID.sample.generate_text",        -- model
        "body",                                     -- content column
        ["filename"],                               -- key columns
        '{}'                                        -- optional arguments
    );

    מחליפים את PROJECT_ID במזהה הפרויקט שבו אתם משתמשים במדריך הזה.

    התהליך המאוחסן יוצר טבלה בשם sample.news_generated_text שתכיל את הפלט של הפונקציה ML.GENERATE_TEXT.

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

    SELECT *
    FROM `sample.news_generated_text`
    WHERE ml_generate_text_status LIKE '%A retryable error occurred%';

    השאילתה מחזירה את ההודעה No data to display.

הסרת המשאבים

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.