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

התוסף 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‏ 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: המזהה של האזור או של מיקום נקודת הקצה שבהם נמצא המודל ב- Google Cloud . לדוגמה, global בשביל gemini-3.5-flash-lite, או אזור נתמך כמו us-central1

  • ‫MODEL_ID: המזהה של מודל למידת המכונה שבו רוצים להשתמש, כולל הסיומת של ה-method (:generateContent או :streamGenerateContent) למודלים של Gemini. לדוגמה: gemini-3.5-flash-lite:generateContent או gemini-3.5-flash-lite:streamGenerateContent

  • ‫CONTENTS: הקלט לקריאת החיזוי, בפורמט JSON – לדוגמה, "contents": [{"role": "user", "parts": [{"text": "..."}]}] למודלים של Gemini, או "instances": [...] למודלים אחרים של Agent Platform

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

SELECT
  json_array_elements(ml_predict_row('publishers/google/models/gemini-3.5-flash-lite: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() ו-json_build_array() ככלי עזר לעיצוב הפרמטרים של הפונקציה.

קודם כל, יוצרים טבלת messages לדוגמה, אם עדיין אין לכם טבלה כזו:

CREATE TABLE IF NOT EXISTS messages (message TEXT);
INSERT INTO messages (message) VALUES ('Why is the sky blue?');

לאחר מכן מפעילים את ml_predict_row() בטבלה messages:

SELECT
  ml_predict_row(
    'projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.5-flash-lite:generateContent',
    json_build_object(
      'contents',
      json_build_array(
        json_build_object(
          'role', 'user',
          'parts', json_build_array(
            json_build_object('text', message)
          )
        )
      )
    )
  )
FROM messages;

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

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

SELECT
  ml_predict_row(
    'projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.5-flash-lite: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(), ראו התחלה מהירה באמצעות Agent Platform API.

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