Auf dieser Seite wird beschrieben, wie Sie Vorhersagen mit Funktionen aus den Namespaces public und google_ml aufrufen. Die Erweiterung google_ml_integration enthält Vorhersagefunktionen für diese Namespaces.
Sie können die Funktion ml_predict_row() im Schema public mit jedem allgemeinen Modell verwenden, das in der Gemini Enterprise Agent Platform gehostet wird, ohne den Endpunkt zu registrieren. Sie können die Funktion google_ml.predict_row() im Schema google_ml mit jedem Modell verwenden, das bei der Modellendpunktverwaltung registriert ist.
Wählen Sie eines der folgenden Schemas aus, um Vorhersagen aufzurufen.
Hinweis
So rufen Sie Vorhersagen mit AlloyDB auf:
- Sie können Vorhersagen in Regionen aufrufen, in denen generative KI auf der Agent Platform verfügbar ist. Eine Liste der Regionen finden Sie unter Bereitstellungen und Endpunkte.
- Stellen Sie mit
psqloder AlloyDB for PostgreSQL Studio eine Verbindung zu Ihrer Datenbank her. - Prüfen Sie, ob die Erweiterung
google_ml_integrationinstalliert ist. - Prüfen Sie, ob das Flag
google_ml_integration.enable_model_supportaufongesetzt ist. - Bevor Sie Vorhersagen aus einer AlloyDB-Datenbank aufrufen können, müssen Sie AlloyDB für die Verwendung mit der Agent Platform konfigurieren. Weitere Informationen finden Sie unter Datenbank in die Agent Platform einbinden.
- Sie benötigen ein aktives Agent Platform-Modell mit einem aktiven Endpunkt, für den Sie die IAM-Berechtigung (Identity and Access Management) haben. AlloyDB unterstützt keine privaten Endpunkte für das Abrufen von Onlinevorhersagen.
Erteilen Sie Datenbanknutzern die Berechtigung, die Vorhersagefunktion auszuführen, um Vorhersagen aufzurufen:
\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 die Berechtigungen erteilt werden sollen
USER_NAME: der Name des Nutzers, für den die Berechtigungen erteilt werden sollen
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 sich das ML-Modell, das Sie verwenden möchten, im Model Garden befindet oder ein Endpunkt ist, der in einem Google Cloud Projekt ausgeführt wird.
Modell im Model Garden verwenden
Zum Aufrufen einer Onlinevorhersage mit einem ML-Modell, das im Model Garden ausgeführt wird, verwenden Sie die folgende Syntax für die SQL-Funktion google_ml.predict_row():
SELECT ml_predict_row('projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/MODEL_ID', '{ CONTENTS }');
Ersetzen Sie Folgendes:
PROJECT_ID: die ID Ihres Google Cloud ProjektsREGION_ID: die ID der Google Cloud Region, in der sich das Modell befindet, z. B.us-central1für gemini-proMODEL_ID: die ID des zu verwendenden ML-Modells, z. B. gemini-proCONTENTS: die Eingaben für den Vorhersageaufruf im JSON-Format
Wenn das ML-Modell im selben Projekt und in derselben Region wie Ihr AlloyDB-Cluster gespeichert ist, können Sie das erste Argument dieser Funktion abkürzen:
SELECT ml_predict_row('publishers/google/models/MODEL_ID', '{ CONTENTS }');
Informationen zu den JSON-Antwortnachrichten des Modells finden Sie in der Referenz zum Foundation Model der generativen KI.
Beispiele finden Sie unter Beispielaufrufe.
Agent Platform-Modellendpunkt verwenden
Verwenden Sie die folgende Syntax für die SQL-Funktion ml_predict_row(), um eine Onlinevorhersage mit einem Agent Platform-Modellendpunkt aufzurufen:
SELECT ml_predict_row('projects/PROJECT_ID/locations/REGION_ID/endpoints/ENDPOINT_ID', '{ CONTENTS }');
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Google Cloud Projekts, in dem sich das Modell befindetREGION_ID: die ID der Region, in der sich das Modell befindet, z. B.us-central1Google CloudENDPOINT_ID: die ID des ModellendpunktsCONTENTS: die Eingaben für den Vorhersageaufruf im JSON-Format
Wenn sich der Endpunkt im selben Projekt und in derselben Region wie Ihr AlloyDB-Cluster befindet, können Sie das erste Argument dieser Funktion abkürzen:
SELECT ml_predict_row('endpoints/ENDPOINT_ID', '{ CONTENTS }');
Informationen zu den JSON-Antwortnachrichten des Modells finden Sie unter PredictResponse.
Beispielaufrufe
Im folgenden Beispiel wird gemini-pro 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('publishers/google/models/gemini-1.5-pro: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';
Die Antwort ist ein JSON-Objekt. Weitere Informationen zum Format des Objekts, siehe Antworttext.
Im folgenden Beispiel wird das vorherige so geändert:
Im Beispiel wird der Inhalt der Spalte
messages.messageder aktuellen Datenbank als Eingabe verwendet.Im Beispiel wird die Verwendung der Funktion the
json_build_object()function als Unterstützung bei der Formatierung der Funktionsparameter veranschaulicht.
select ml_predict_row('projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.5-pro:generateContent', json_build_object('contents', json_build_object('text', message))) from messages;
Das zurückgegebene JSON-Objekt enthält jetzt für jede Zeile in der Tabelle messages 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/gemini-1.5-pro:generateContent', json_build_object('contents', json_build_object('text', message)))->'predictions'->0->'content' FROM messages;
Weitere Beispielargumente für ml_predict_row() finden Sie unter Kurzanleitung zur Verwendung der Agent Platform API
API.
Nächste Schritte
- Informationen zum Erstellen eines Smart Shopping Assistant mit AlloyDB, pgvector und der Modellendpunktverwaltung.
- Erfahren Sie mehr über die Referenz zur Verwaltung von Modellendpunkten.