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 generischen Modell verwenden, das in Vertex AI gehostet wird, ohne den Endpunkt zu registrieren. Die Funktion google_ml.predict_row()
im google_ml
-Schema kann mit jedem Modell verwendet werden, das bei der Modellendpunktverwaltung registriert wurde.
Wählen Sie eines der folgenden Schemas aus, um Vorhersagen aufzurufen.
Hinweise
So lassen Sie AlloyDB Vorhersagen aufrufen:
- Sie können Vorhersagen in Regionen aufrufen, in denen generative KI in Vertex AI verfügbar ist. Eine Liste der Regionen finden Sie unter Generative AI an Vertex AI-Standorten.
- Verbinden Sie sich mit Ihrer Datenbank über
psql
oder AlloyDB for PostgreSQL Studio. - Prüfen Sie, ob die Erweiterung
google_ml_integration
installiert ist. - Prüfen Sie, ob das Flag
google_ml_integration.enable_model_support
aufon
gesetzt ist. - Bevor Sie Vorhersagen aus einer AlloyDB-Datenbank aufrufen können, müssen Sie AlloyDB für die Verwendung mit Vertex AI konfigurieren. Weitere Informationen finden Sie unter Datenbank in Vertex AI einbinden.
- Sie benötigen ein aktives Vertex AI-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.
Datenbankbenutzern die Berechtigung zum Ausführen der Vorhersagefunktion erteilen, 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 gewährt werden sollen
USER_NAME: der Name des Nutzers, dem 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 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 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-central1
fü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.
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('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 Google Cloud -Region, in der sich das Modell befindet, z. B.us-central1
ENDPOINT_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 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/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 Vertex AI API.