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

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

‫Cloud SQL מאפשר לכם לקבל תחזיות אונליין בקוד ה-SQL שלכם על ידי קריאה לפונקציה mysql.ml_predict_row(). מידע נוסף מופיע במאמר יצירת אפליקציות AI גנרטיבי באמצעות Cloud SQL.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • MODEL_ID: המזהה של מודל ה-ML לשימוש (לדוגמה, gemini-2.0)

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

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

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

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

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

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

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

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

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

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

מידע על הודעות התגובה של המודל ב-JSON מופיע במאמר בנושא PredictResponse.

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

בדוגמה הבאה נעשה שימוש ב-PaLM 2 for Text, שזמין ב-Model Garden, כדי ליצור טקסט על סמך פרומפט קצר שמועבר כארגומנט מילולי ל-mysql.ml_predict_row():

sql select mysql.ML_PREDICT_ROW('publishers/google/models/gemini-2.0-flash:generateContent', '{ "contents": [{ "role": "user", "parts": [{ "text": "Write me a short poem about MySQL" }] }] }');

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

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

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

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

select mysql.ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison', json_object('instances', json_object('prompt', message), 'parameters', json_object('maxOutputTokens', 1024,'topK', 40,'topP', 0.8,'temperature', 0.2))) from messages;

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

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

select JSON_EXTRACT(mysql.ml_PREDICT_ROW('publishers/google/models/gemini-2.0-flash:generateContent', JSON_OBJECT(
  'contents', JSON_ARRAY(
    JSON_OBJECT(
      'role', 'user',
      'parts', JSON_ARRAY(
        JSON_OBJECT(
          'text', message
        )
      )
    )
  )
)), '$.candidates[0].content.parts[0].text') from messages;

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

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