הפעלת תחזיות אונליין ממכונות Cloud SQL

בדף הזה מוסבר איך להפעיל חיזויים אונליין ממכונה של Cloud SQL.

ב-Cloud SQL אפשר לקבל חיזויים אונליין בקוד ה-SQL באמצעות קריאה לפונקציה ml_predict_row().

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

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

הכנת מסד הנתונים

  1. כדי להכין את מסד הנתונים, מגדירים שילוב בין Cloud SQL ל-Vertex AI.

  2. נותנים למשתמשים במסד הנתונים הרשאות להשתמש בפונקציה ml_predict_row() כדי להריץ חיזויים:

    1. מחברים לקוח psql למכונה הראשית, כמו שמתואר במאמר חיבור באמצעות לקוח psql.

    2. בשורת הפקודה של psql, מתחברים למסד הנתונים ונותנים הרשאות:

      \c DB_NAME
      
      GRANT EXECUTE ON FUNCTION ml_predict_row TO USER_NAME;
      

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

      • ‫DB_NAME: שם מסד הנתונים שעבורו אתם נותנים הרשאות

      • ‫USER_NAME: שם המשתמש שאתם נותנים לו הרשאות

בחירת מודל למידת מכונה

כשמפעילים את הפונקציה ml_predict_row(), צריך לציין את המיקום של מודל ה-ML. המודל שאתם מציינים יכול להיות אחד מהבאים:

  • מודל שפועל ב-Vertex AI Model Garden.

    הפונקציה ml_predict_row() תומכת בהפעלת חיזויים רק במודלים טבלאיים או במודלים בהתאמה אישית.

  • מודל Vertex AI עם נקודת קצה פעילה שיש לכם הרשאה לגשת אליה באמצעות ניהול זהויות והרשאות גישה (IAM).

    ב-Cloud SQL אין תמיכה בנקודות קצה פרטיות לקבלת חיזויים אונליין.

הפעלת חיזויים אונליין

אתם יכולים להשתמש בפונקציית ה-SQL‏ ml_predict_row() כדי להפעיל חיזויים אונליין על הנתונים שלכם.

הפורמט של הארגומנט הראשוני של הפונקציה תלוי בשאלה אם מודל ה-AI שבו רוצים להשתמש נמצא ב-Vertex AI Model Garden או שהוא נקודת קצה שפועלת בפרויקט Cloud de Confiance .

שימוש במודל AI ב-Vertex AI Model Garden

כדי להפעיל חיזוי מיידי באמצעות מודל AI שפועל ב-Vertex AI Model Garden, משתמשים בתחביר הבא של הפונקציה ml_predict_row() ב-SQL:

sql SELECT ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters": PARAMETERS }');

מחליפים את הפרטים הבאים:

  • ‫MODEL_ID: המזהה של מודל ML שבו רוצים להשתמש (לדוגמה, gemini-2.0)

  • ‫INSTANCES: הקלט לקריאת החיזוי, בפורמט JSON

  • ‫PARAMETERS: הפרמטרים של הקריאה לחיזוי, בפורמט JSON

SELECT ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
למידע על הודעות התגובה של המודל בפורמט JSON, ראו הפניית מודל בסיסי של AI גנרטיבי. לדוגמאות, ראו דוגמאות להפעלות.

שימוש בנקודת קצה של מודל Vertex AI

כדי להפעיל חיזוי אונליין באמצעות נקודת קצה של מודל Vertex AI, משתמשים בתחביר הבא של הפונקציה ml_predict_row() ב-SQL:

sql SELECT ML_PREDICT_ROW('endpoints/ENDPOINT_ID', '{ "instances": [ INSTANCES ], "parameters": PARAMETERS }');

מחליפים את הפרטים הבאים:

  • ‫ENDPOINT_ID: המזהה של נקודת הקצה של המודל

  • ‫INSTANCES: הקלט לקריאת החיזוי, בפורמט JSON

  • ‫PARAMETERS: הפרמטרים של הקריאה לחיזוי, בפורמט JSON

למידע על הודעות התגובה של המודל בפורמט JSON, קראו את המאמר PredictResponse.

דוגמאות להפעלות

בדוגמה הבאה נעשה שימוש במודל Gemini 2.5 Flash, שזמין ב-Model Garden, כדי ליצור טקסט על סמך הנחיה קצרה שסופקה כארגומנט מילולי ל-ml_predict_row():

SELECT
  json_array_elements(ml_predict_row('projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-2.5-flash:streamGenerateContent',
    '{ "contents": [ { "role": "user", "parts": [ { "text": "CloudSQL" } ] } ] }'))-> 'candidates' -> 0 -> 'content' -> 'parts' -> 0 -> 'text';

התגובה היא אובייקט JSON. מידע נוסף על הפורמט של האובייקט מופיע בקטע גוף התגובה.

בדוגמה הבאה, הדוגמה הקודמת שונתה באופן הבא:

  • בדוגמה הזו, הקלט הוא התוכן של העמודה messages.message במסד הנתונים הנוכחי.

  • הדוגמה ממחישה את השימוש בפונקציה json_build_object() ככלי עזר לעיצוב הפרמטרים של הפונקציה.

select ml_predict_row('projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-2.5-flash:generateContent', json_build_object('contents', json_build_array(json_build_object('role', 'user', 'parts', json_build_array(json_build_object('text', message)))))) from messages;

לכל שורה בטבלה messages, אובייקט ה-JSON שמוחזר מכיל עכשיו רשומה אחת במערך candidates.

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

select ml_predict_row('projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-2.5-flash:generateContent', json_build_object('contents', json_build_array(json_build_object('role', 'user', 'parts', json_build_array(json_build_object('text', message)))))) -> 'candidates' -> 0 -> 'content' -> 'parts' -> 0 -> 'text' FROM messages;

דוגמאות נוספות לארגומנטים של ml_predict_row() מפורטות במאמר התנסות ב-Vertex AI Gemini API.

המאמרים הבאים