Mit Cloud SQL können Sie durch Aufrufen der Funktion mysql.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
Um Ihre Datenbank vorzubereiten, richten Sie eine Einbindung zwischen Cloud SQL und Vertex AI ein.ML-Modell auswählen
Wenn Sie die Funktion mysql.ml_predict_row()
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 Funktion
mysql.ml_predict_row()
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 SQL-Funktion mysql.ml_predict_row()
haben Sie die Möglichkeit, Onlinevorhersagen für Ihre Daten aufzurufen.
Das Format des Anfangsarguments der Funktion hängt davon ab, ob das ML-Modell, das Sie verwenden möchten, sich 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 Vertex AI Model Garden ausgeführt wird, verwenden Sie die folgende Syntax für die SQL-Funktion mysql.ml_predict_row()
:
SELECT mysql.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 mysql.ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Vertex AI-Modellendpunkt verwenden
Verwenden Sie die folgende Syntax für die SQL-Funktion mysql.ml_predict_row()
, um eine Onlinevorhersage mit einem Vertex AI-Modellendpunkt aufzurufen:
SELECT mysql.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 PaLM 2 for Text verwendet, das im Model Garden verfügbar ist, um Text basierend auf einem kurzen Prompt zu generieren, der als Literalargument für mysql.ml_predict_row()
bereitgestellt wird:
sql
select mysql.ML_PREDICT_ROW('publishers/google/models/gemini-2.0-flash:generateContent', '{
"contents": [{
"role": "user",
"parts": [{
"text": "Write me a short poem about MySQL"
}]
}]
}');
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 wird der Inhalt der Spalte
messages.message
der aktuellen Datenbank als Eingabe verwendet.Im Beispiel wird die Verwendung der
json_object()
-Funktion als Unterstützung bei der Formatierung der Funktionsparameter veranschaulicht.
select mysql.ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison', json_object('instances', json_object('prompt', message), 'parameters', json_object('maxOutputTokens', 1024,'topK', 40,'topP', 0.8,'temperature', 0.2))) from messages;
Für jede Zeile in der Tabelle messages
enthält das zurückgegebene JSON-Objekt jetzt einen Eintrag im Array predictions
.
Da die Antwort ein JSON-Objekt ist, können Sie bestimmte Felder daraus abrufen:
select JSON_EXTRACT(mysql.ml_PREDICT_ROW('publishers/google/models/gemini-2.0-flash:generateContent', JSON_OBJECT(
'contents', JSON_ARRAY(
JSON_OBJECT(
'role', 'user',
'parts', JSON_ARRAY(
JSON_OBJECT(
'text', message
)
)
)
)
)), '$.candidates[0].content.parts[0].text') from messages;
Weitere Beispielargumente für ml_predict_row()
finden Sie unter Vertex AI Gemini API testen.