Vorhersagen aufrufen

Auf dieser Seite wird beschrieben, wie Sie Vorhersagen mit Funktionen aus den Namespaces public und google_ml aufrufen. Die google_ml_integration-Erweiterung 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 der Gemini Enterprise Agent Platform gehostet wird, ohne den Endpunkt zu registrieren. Sie können die Funktion google_ml.predict_row() im google_ml-Schema mit jedem Modell verwenden, das bei der Modellendpunktverwaltung registriert ist.

Wählen Sie eines der folgenden Schemas aus, um Vorhersagen aufzurufen.

Hinweis

So lassen Sie AlloyDB Vorhersagen aufrufen:

  • Sie können Vorhersagen in Regionen aufrufen, in denen generative KI in Agent Platform verfügbar ist. Eine Liste der Regionen finden Sie unter Bereitstellungen und Endpunkte.
  • Stellen Sie mit psql oder AlloyDB for PostgreSQL Studio eine Verbindung zu Ihrer Datenbank her.
  • Prüfen Sie, ob die Erweiterung google_ml_integration installiert ist.
  • Prüfen Sie, ob das Flag google_ml_integration.enable_model_support auf on gesetzt 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.
  • 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 Model Garden befindet oder ein Endpunkt ist, der in einem Google Cloud -Projekt ausgeführt wird.

Modell in 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 -Projekts

  • REGION_ID: die ID der Google Cloud Region, in der sich das Modell befindet, z. B. us-central1 für gemini-pro

  • MODEL_ID: die ID des zu verwendenden ML-Modells, z. B. gemini-pro

  • CONTENTS: 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 befindet.

  • REGION_ID: Die ID der Google Cloud -Region, in der sich das Modell befindet, z. B. us-central1

  • ENDPOINT_ID: die ID des Modellendpunkts

  • CONTENTS: 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 folgenden 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 Agent Platform API.

Nächste Schritte