הפעלת חיזויים

התוסף google_ml_integration ב-AlloyDB ל-PostgreSQL מאפשר להפעיל חיזויים אונליין ממודלים של למידת מכונה ישירות בשאילתות SQL. אפשר להפעיל את הפונקציה ml_predict_row() בסכימה public למודלים כלליים שמתארחים ב-Gemini Enterprise Agent Platform בלי לרשום נקודת קצה, או להפעיל את הפונקציה google_ml.predict_row() בסכימה google_ml למודלים שנרשמו בניהול נקודות קצה של מודלים.

כדי להפעיל חיזויים, בוחרים באחת מהסכימות הבאות.

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

כדי לאפשר ל-AlloyDB להפעיל חיזויים:

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

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

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

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

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

SELECT ml_predict_row('projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/MODEL_ID', '{"instances": [CONTENTS]}');

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

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud

  • ‫REGION_ID: המזהה של האזור Google Cloud שבו נמצא המודל, לדוגמה us-central1 ל-gemini-2.5-flash

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

  • ‫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-2.5-flash, שזמין ב-Model Garden, כדי ליצור טקסט על סמך הנחיה קצרה שסופקה כארגומנט מילולי ל-ml_predict_row():

SELECT
  json_array_elements(ml_predict_row('publishers/google/models/gemini-2.5-flash: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-2.5-flash:generateContent',
    json_build_object(
      'contents',
      json_build_object(
        'role', 'user',
        'parts', json_build_object('text', message)
      )
    )
  )
FROM messages;

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

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

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

דוגמאות נוספות לארגומנטים של ml_predict_row() מפורטות במאמר התחלה מהירה באמצעות Agent Platform API.

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