Vorhersagen aufrufen

Mit der Erweiterung google_ml_integration in AlloyDB for PostgreSQL können Sie Onlinevorhersagen von Modellen für maschinelles Lernen direkt in Ihren SQL-Abfragen aufrufen. Sie können die Funktion ml_predict_row() im Schema public für generische Modelle aufrufen, die in der Gemini Enterprise Agent Platform gehostet werden, ohne einen Endpunkt zu registrieren. Alternativ können Sie die Funktion google_ml.predict_row() im Schema google_ml für Modelle aufrufen, die mit der Modellendpunktverwaltung registriert wurden.

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

Hinweis

So ermöglichen Sie AlloyDB, Vorhersagen aufzurufen:

  • 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 psql oder AlloyDB 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.
  • Datenbanknutzern die Berechtigung dazu erteilen, die Vorhersagefunktion zur Ausführung von Vorhersagen zu verwenden:

    \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 das ML-Modell, das Sie verwenden möchten, sich 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 in 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', '{"instances": [CONTENTS]}');

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID Ihres Projekts in Google Cloud

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

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

  • 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-2.5-flash 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-2.5-flash: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 Beispiel 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-2.5-flash:generateContent',
    json_build_object(
      'contents',
      json_build_object(
        'role', 'user',
        'parts', json_build_object('text', message)
      )
    )
  )
FROM messages;

Das zurückgegebene JSON-Objekt enthält für jede Zeile in der Tabelle messages ein candidates-Array.

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-2.5-flash:generateContent',
    json_build_object(
      'contents',
      json_build_object(
        'role', 'user',
        'parts', json_build_object('text', message)
      )
    )
  ) -> 'candidates' -> 0 -> 'content' -> 'parts' -> 0 -> 'text'
FROM messages;

Weitere Beispielargumente für ml_predict_row() finden Sie in der Kurzanleitung zur Verwendung der Agent Platform API.

Nächste Schritte