בדף הזה מוסבר איך להפעיל תחזיות באמצעות פונקציות ממרחבי השמות public ו-google_ml. התוסף google_ml_integration כולל פונקציות חיזוי למרחבי השמות האלה.
אפשר להשתמש בפונקציה ml_predict_row() בסכימה public עם כל מודל גנרי שמתארח ב-Gemini Enterprise Agent Platform בלי לרשום את נקודת הקצה. אפשר להשתמש בפונקציה google_ml.predict_row() בסכימה google_ml עם כל מודל שרשום בניהול נקודות קצה של מודלים.
כדי להפעיל תחזיות, בוחרים באחת מהסכימות הבאות.
לפני שמתחילים
כדי לאפשר ל-AlloyDB להפעיל תחזיות:
- אפשר להפעיל תחזיות באזורים שבהם זמין AI גנרטיבי ב-Agent Platform. לרשימת האזורים, ראו פריסות ונקודות קצה.
- מתחברים למסד הנתונים באמצעות
psqlאו AlloyDB ל-PostgreSQL Studio. - מוודאים שהתוסף
google_ml_integrationמותקן. - מוודאים שהדגל
google_ml_integration.enable_model_supportמוגדר לערךon. - כדי להפעיל תחזיות ממסד נתונים של AlloyDB, צריך להגדיר את AlloyDB כך שיפעל עם Agent Platform. מידע נוסף זמין במאמר בנושא שילוב מסד הנתונים עם Agent Platform.
- צריך להיות לכם מודל פעיל של Agent Platform עם נקודת קצה פעילה שיש לכם הרשאה לניהול זהויות והרשאות גישה (IAM) כדי לגשת אליה. AlloyDB לא תומך בנקודות קצה פרטיות לקבלת חיזויים אונליין.
צריך להעניק הרשאות למשתמשי מסד הנתונים להפעיל את פונקציית החיזוי כדי להפעיל חיזויים:
\c DB_NAME; GRANT EXECUTE ON FUNCTION ml_predict_row TO USER_NAME;מחליפים את מה שכתוב בשדות הבאים:
DB_NAME: שם מסד הנתונים שצריך להעניק לו הרשאות
USER_NAME: השם של המשתמש שרוצים להעניק לו הרשאות
הפעלת חיזויים אונליין
משתמשים בפונקציית ה-SQL ml_predict_row() כדי להפעיל תחזיות אונליין על הנתונים.
הפורמט של הארגומנט הראשוני של הפונקציה תלוי בכך אם מודל ה-ML שבו רוצים להשתמש נמצא ב-Model Garden או שהוא נקודת קצה שפועלת בפרויקט. Google Cloud
שימוש במודל ב-Model Garden
כדי להפעיל חיזוי אונליין באמצעות מודל ML שפועל ב-Model Garden, משתמשים בתחביר הבא לפונקציית ה-SQL google_ml.predict_row():
SELECT ml_predict_row('projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/MODEL_ID', '{ CONTENTS }');
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud
REGION_ID: המזהה של האזור שבו המודל נמצא, לדוגמה,us-central1עבור gemini-pro Google Cloud
MODEL_ID: המזהה של מודל ה-ML לשימוש – לדוגמה, gemini-pro
CONTENTS: הקלט לקריאה לחיזוי, בפורמט JSON
אם מודל ה-ML מאוחסן באותו פרויקט ואזור כמו אשכול AlloyDB, אפשר לקצר את הארגומנט הראשון של הפונקציה הזו:
SELECT ml_predict_row('publishers/google/models/MODEL_ID', '{ CONTENTS }');
מידע על הודעות התגובה של המודל ב-JSON זמין במאמר הפניה למודל בסיסי של AI גנרטיבי.
דוגמאות מופיעות בקטע דוגמאות להפעלות.
שימוש בנקודת קצה של מודל ב-Agent Platform
כדי להפעיל חיזוי אונליין באמצעות נקודת קצה של מודל ב-Agent Platform, משתמשים בתחביר הבא לפונקציית ה-SQL ml_predict_row():
SELECT ml_predict_row('projects/PROJECT_ID/locations/REGION_ID/endpoints/ENDPOINT_ID', '{ CONTENTS }');
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: המזהה של Google Cloud הפרויקט שבו נמצא המודל
REGION_ID: המזהה של Google Cloud האזור שבו המודל נמצא, לדוגמהus-central1
ENDPOINT_ID: המזהה של נקודת הקצה של המודל
CONTENTS: הקלט לקריאה לחיזוי, בפורמט JSON
אם נקודת הקצה ממוקמת באותו פרויקט ואזור כמו אשכול AlloyDB, אפשר לקצר את הארגומנט הראשון של הפונקציה הזו:
SELECT ml_predict_row('endpoints/ENDPOINT_ID', '{ CONTENTS }');
מידע על הודעות התגובה של המודל ב-JSON מופיע במאמר PredictResponse.
דוגמאות להפעלות
בדוגמה הבאה נעשה שימוש ב-gemini-pro, שזמין ב-Model Garden, כדי ליצור טקסט על סמך הנחיה קצרה שמועברת כארגומנט מילולי אל ml_predict_row():
SELECT
json_array_elements(ml_predict_row('publishers/google/models/gemini-1.5-pro:streamGenerateContent',
'{ "contents": [ { "role": "user", "parts": [ { "text": "For TPCH database schema as mentioned here https://www.tpc.org/TPC_Documents_Current_Versions/pdf/TPC-H_v3.0.1.pdf , generate a SQL query to find all supplier names which are located in the India nation."
} ] } ] }'))-> '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-1.5-pro:generateContent', json_build_object('contents', json_build_object('text', message))) from messages;
אובייקט ה-JSON שמוחזר מכיל עכשיו רשומה אחת במערך predictions לכל שורה בטבלה messages.
מכיוון שהתגובה היא אובייקט JSON, אפשר לשלוף ממנה שדות ספציפיים באמצעות אופרטור החץ של PostgreSQL:
select ml_predict_row('projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.5-pro:generateContent', json_build_object('contents', json_build_object('text', message)))->'predictions'->0->'content' FROM messages;
דוגמאות נוספות לארגומנטים של ml_predict_row() זמינות במאמר מדריך למתחילים בנושא Agent Platform API.