בדף הזה מוסבר איך להפעיל תחזיות אונליין ממופע של Cloud SQL.
Cloud SQL מאפשר לכם לקבל תחזיות אונליין בקוד ה-SQL שלכם על ידי קריאה לפונקציה ml_predict_row(). מידע נוסף זמין במאמר פיתוח אפליקציות AI גנרטיבי באמצעות Cloud SQL.
לפני שמתחילים
כדי להפעיל חיזויים אונליין ממופע Cloud SQL, צריך להכין את מסד הנתונים ולבחור מודל מתאים של למידת מכונה.
הכנת מסד הנתונים
כדי להכין את מסד הנתונים,מגדירים שילוב בין Cloud SQL לבין Vertex AI.
הענקת הרשאות למשתמשי מסד נתונים להשתמש בפונקציה
ml_predict_row()כדי להריץ תחזיות:מחברים לקוח
psqlלמופע הראשי, כמו שמתואר במאמר חיבור באמצעות לקוח psql.בשורת הפקודה
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() כדי להפעיל תחזיות אונליין על הנתונים.
הפורמט של הארגומנט הראשוני של הפונקציה תלוי במודל למידת המכונה שבו רוצים להשתמש. המודל יכול להיות ב-Vertex AI Model Garden או בנקודת קצה שפועלת ב Google Cloud פרויקט.
שימוש במודל ב-Vertex AI Model Garden
כדי להפעיל חיזוי מיידי באמצעות מודל למידת מכונה שפועל ב-Vertex AI Model Garden, משתמשים בתחביר הבא לפונקציית ה-SQL ml_predict_row():
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 }');
שימוש בנקודת קצה של מודל Vertex AI
כדי להפעיל חיזוי אונליין באמצעות נקודת קצה (endpoint) של מודל Vertex AI, משתמשים בתחביר הבא לפונקציית ה-SQL ml_predict_row():
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.