Auf dieser Seite wird beschrieben, wie Sie Onlinevorhersagen aus einer Cloud SQL for PostgreSQL-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
Führen Sie die folgenden Schritte aus, um Ihre Datenbank vorzubereiten:
Datenbankbenutzern die Berechtigung dazu erteilen, die
ml_predict_row()
-Funktion zur Ausführung von Vorhersagen zu verwenden:Einen
psql
-Client mit der primären Instanz verbinden, 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 Funktion 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
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 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 ml_predict_row()
:
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.
text-bison
für PaLM 2 für Text)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 }');
Informationen zu den JSON-Antwortnachrichten des Modells finden Sie in der Referenz zum Foundation Model der generativen KI. Beispiele finden Sie unter Beispielaufrufe.
Vertex AI-Modellendpunkt verwenden
Verwenden Sie die folgende Syntax für die SQL-Funktion ml_predict_row()
, um eine Onlinevorhersage mit einem Vertex AI-Modellendpunkt aufzurufen:
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 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 ml_predict_row()
bereitgestellt wird:
select ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison', '{"instances":[{"prompt": "What are three advantages of using Cloud SQL as my SQL database server?"}], "parameters":{"maxOutputTokens":1024, "topK": 40, "topP":0.8, "temperature":0.2}}');
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_build_object()
-Funktion als Unterstützung bei der Formatierung der Funktionsparameter veranschaulicht.
select ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison', json_build_object('instances', json_build_object('prompt', message), 'parameters', json_build_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 mit dem PostgreSQL-Pfeiloperator abrufen:
SELECT ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison',json_build_object('instances', json_build_object('prompt',message), 'parameters', json_build_object('maxOutputTokens', 1024,'topK', 40,'topP', 0.8,'temperature', 0.2)))->'predictions'->0->'content' FROM messages;
Weitere Beispielargumente für ml_predict_row()
finden Sie unter Vertex AI Gemini testen.
API.