Auf dieser Seite wird beschrieben, wie Sie Onlinevorhersagen aus einer Cloud SQL-Instanz aufrufen.
Mit Cloud SQL können Sie durch Aufrufen der Funktion ml_predict_row() Onlinevorhersagen in Ihrem SQL-Code abrufen. Weitere Informationen finden Sie unter Generative AI
Anwendungen mit Cloud SQL erstellen.
Hinweise
Bevor Sie Onlinevorhersagen aus einer Cloud SQL-Instanz aufrufen können, müssen Sie Ihre Datenbank vorbereiten und ein geeignetes ML-Modell auswählen.
Datenbank vorbereiten
Richten Sie zur Vorbereitung Ihrer Datenbank die Einbindung zwischen Cloud SQL und Vertex AI ein.
Erteilen Sie Datenbankbenutzern die Berechtigung dazu, die Funktion
ml_predict_row()zur Ausführung von Vorhersagen zu verwenden:Verbinden Sie einen
psql-Client mit der primären Instanz, z. B. wie unter Verbindung über einen psql-Client herstellen beschrieben.An der
psql-Eingabeaufforderung eine Verbindung zur Datenbank herstellen und Berechtigungen gewähren:\c DB_NAME GRANT EXECUTE ON FUNCTION ml_predict_row TO USER_NAME;Ersetzen Sie Folgendes:
DB_NAME: der Name der Datenbank, für die Sie Berechtigungen gewähren
USER_NAME: der Name des Nutzers, dem Sie die Berechtigungen erteilen
ML-Modell auswählen
Wenn Sie die ml_predict_row()
Funktion
aufrufen, müssen Sie den Speicherort eines ML-Modells angeben. Das von Ihnen angegebene Modell kann eines der folgenden sein:
Ein Modell, das in Vertex AI Model Garden ausgeführt wird.
Die
ml_predict_row()Funktion unterstützt das Aufrufen von Vorhersagen nur für tabellarische oder benutzerdefinierte Modelle.Ein Vertex AI-Modell mit einem aktiven Endpunkt, für den Sie die IAM-Berechtigung (Identity and Access Management) haben.
Cloud SQL unterstützt keine privaten Endpunkte für das Abrufen von Onlinevorhersagen.
Onlinevorhersagen aufrufen
Mit der ml_predict_row()
SQL-Funktion
haben Sie die Möglichkeit, Onlinevorhersagen für Ihre Daten aufzurufen.
Das Format des Anfangsarguments der Funktion hängt davon ab, ob sich das ML-Modell das Sie verwenden möchten, im Vertex AI Model Garden befindet oder ein Endpunkt ist, der in einem Google Cloud Projekt ausgeführt wird.
Modell in Vertex AI Model Garden verwenden
Zum Aufrufen einer Onlinevorhersage mit einem ML-Modell, das in dem
Vertex AI Model Garden ausgeführt wird, verwenden Sie die folgende Syntax für die
ml_predict_row()
SQL-Funktion:
sql
SELECT ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Ersetzen Sie die folgenden Werte:
MODEL_ID: die ID des zu verwendenden ML-Modells (z. B.
gemini-2.0)INSTANCES: die Eingaben für den Vorhersageaufruf im JSON-Format
PARAMETERS: die Parameter für den Vorhersageaufruf im JSON-Format
SELECT ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Vertex AI-Modellendpunkt verwenden
Verwenden Sie die folgende Syntax für die ml_predict_row()
SQL-Funktion, um eine Onlinevorhersage mit einem Vertex AI-Modellendpunkt aufzurufen:
sql
SELECT ML_PREDICT_ROW('endpoints/ENDPOINT_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Ersetzen Sie die folgenden Werte:
ENDPOINT_ID: die ID des Modellendpunkts
INSTANCES: Die Eingaben für den Vorhersageaufruf im JSON-Format
PARAMETERS: die Parameter für den Vorhersageaufruf im JSON-Format
Informationen zu den JSON-Antwortnachrichten des Modells finden Sie unter PredictResponse.
Beispielaufrufe
Im folgenden Beispiel wird
Gemini 2.5 Flash verwendet, das
im Model Garden verfügbar ist, um Text basierend auf einem kurzen Prompt zu generieren, der
als Literalargument für ml_predict_row()
bereitgestellt wird:
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';
Die Antwort ist ein JSON-Objekt. Weitere Informationen zum Format des Objekts finden Sie unter Antworttext.
Im nächsten Beispiel wird das vorherige so geändert:
Im Beispiel werden die Inhalte der Spalte
messages.messageder aktuellen Datenbank als Eingabe verwendet.Im Beispiel wird die Verwendung der Funktion
json_build_object()als Unterstützung bei der Formatierung der Funktionsparameter veranschaulicht.
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;
Für jede Zeile in der Tabelle messages enthält das zurückgegebene JSON-Objekt jetzt einen Eintrag im Array candidates.
Da die Antwort ein JSON-Objekt ist, können Sie bestimmte Felder daraus abrufen:
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;
Weitere Beispielargumente für ml_predict_row() finden Sie unter
Vertex AI Gemini testen. API.