Multimodale Einbettungen generieren

Sie können multimodale Einbettungen in AlloyDB for PostgreSQL mit dem unterstützten multimodalen Modell der Gemini Enterprise Agent Platform, multimodalembedding@001, generieren.

Sie können die multimodalen Einbettungsmodelle der Agent Platform verwenden, auf die in Unterstützte Modelle verwiesen wird.

Auf dieser Seite wird davon ausgegangen, dass Sie mit AlloyDB for PostgreSQL und Konzepten der generativen KI vertraut sind. Weitere Informationen finden Sie unter Was sind Einbettungen?.

Hinweis

Bevor Sie multimodale Einbettungen verwenden, müssen Sie Folgendes tun:

In die Agent Platform einbinden und die Erweiterung installieren

  1. Nutzerzugriff auf Agent Platform-Modelle konfigurieren
  2. Prüfen Sie, ob die aktuelle Version von google_ml_integration installiert ist.
    1. Führen Sie den folgenden Befehl aus, um die installierte Version zu prüfen:

      SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';
      extversion 
      ------------
      1.5.2
      (1 row)
    2. Wenn die Erweiterung nicht installiert ist oder die installierte Version älter als 1.5.2 ist, aktualisieren Sie die Erweiterung.

      CREATE EXTENSION IF NOT EXISTS google_ml_integration;
      ALTER EXTENSION google_ml_integration UPDATE;

      Wenn beim Ausführen der vorherigen Befehle Probleme auftreten oder die Erweiterung nach dem Ausführen der vorherigen Befehle nicht auf Version 1.5.2 aktualisiert wird, wenden Sie sich an den Google Cloud -Support.

  3. Wenn Sie die Funktionen der AlloyDB AI-Abfrage-Engine verwenden möchten, setzen Sie das Flag google_ml_integration.enable_ai_query_engine auf on.

    SQL

    1. Aktivieren Sie die KI-Abfrage-Engine für die aktuelle Sitzung.
      SET google_ml_integration.enable_ai_query_engine = on;
    2. Funktionen für eine bestimmte Datenbank sitzungsübergreifend aktivieren
      ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_ai_query_engine = 'on';
    3. Aktivieren Sie die KI-Abfrage-Engine für einen bestimmten Nutzer über Sitzungen und Datenbanken hinweg.
      ALTER ROLE postgres SET google_ml_integration.enable_ai_query_engine = 'on';

    Console

    Wenn Sie den Wert des Flags google_ml_integration.enable_ai_query_engine ändern möchten, folgen Sie der Anleitung unter Datenbank-Flags einer Instanz konfigurieren.

    gcloud

    Wenn Sie die gcloud CLI verwenden möchten, können Sie die Google Cloud CLI installieren und initialisieren oder Cloud Shell verwenden.

    Sie können den Wert des Flags google_ml_integration.enable_ai_query_engine ändern. Weitere Informationen finden Sie unter Datenbank-Flags einer Instanz konfigurieren.

    gcloud alloydb instances update INSTANCE_ID \
      --database-flags google_ml_integration.enable_ai_query_engine=on \
      --region=REGION_ID \
      --cluster=CLUSTER_ID \
      --project=PROJECT_ID

Auf Daten in Cloud Storage zugreifen, um multimodale Einbettungen zu generieren

  • Wenn Sie multimodale Einbettungen generieren möchten, verweisen Sie mit einem gs://-URI auf Inhalte in Cloud Storage.
  • Über den Dienst-Agent der Agent Platform Ihres aktuellen Projekts auf Cloud Storage-Inhalte zugreifen. Standardmäßig hat der Dienst-Agent der Agent Platform bereits die Berechtigung, auf den Bucket im selben Projekt zuzugreifen. Weitere Informationen finden Sie im Index für IAM-Rollen und -Berechtigungen.
  • Wenn Sie auf Daten in einem Cloud Storage-Bucket in einem anderen Google Cloud Projekt zugreifen möchten, führen Sie den folgenden gcloud CLI-Befehl aus, um dem Agent Platform-Dienst-Agent Ihres AlloyDB-Projekts die Rolle „Storage Object Viewer“ (roles/storage.objectViewer) zuzuweisen.

    gcloud projects add-iam-policy-binding <ANOTHER_PROJECT_ID> \
    --member="serviceAccount:service-<PROJECT_ID>@gcp-sa-aiplatform.iam.gserviceaccount.com" \
    --role="roles/storage.objectViewer"

    Weitere Informationen finden Sie unter IAM-Richtlinien für Buckets festlegen und verwalten.

Wählen Sie eines der folgenden Schemas aus, um multimodale Einbettungen zu generieren.

Multimodale Einbettungen generieren

Führen Sie die folgende Anweisung aus, um Texteinbettungen für einen multimodalembedding@001-Modellendpunkt zu generieren:

SELECT
  ai.text_embedding(
    model_id => 'multimodalembedding@001',
    content => 'TEXT');

Ersetzen Sie TEXT durch den Text, für den die Einbettung generiert werden soll.

Führen Sie die folgende Anweisung aus, um Bildeinbettungen für einen registrierten multimodalembedding@001-Modellendpunkt zu generieren, bei dem der Bild-MIME-Typ standardmäßig image/jpeg ist:

SELECT
  ai.image_embedding(
    model_id => 'multimodalembedding@001',
    image => 'IMAGE_PATH_OR_TEXT',
    mimetype => MIMETYPE');

Ersetzen Sie Folgendes:

  • IMAGE_PATH_OR_TEXT durch den Cloud Storage-URI des Bildes, z. B. gs://my-bucket/embeddings/flowers.jpeg, oder die Base64-Zeichenfolge des Bildes.
  • MIMETYPE durch den MIME-Typ des Bildes, z. B. image/jpeg. Eine vollständige Liste der unterstützten MIME-Typen finden Sie in der Multimodal Embeddings API.

Führen Sie die folgende Anweisung aus, um Videoeinbettungen für einen registrierten multimodalembedding@001-Modellendpunkt zu generieren:

SELECT
  ai.video_embedding(
    model_id => 'multimodalembedding@001',
    video => 'VIDEO_URI');

Ersetzen Sie VIDEO_URI durch den Cloud Storage-URI des Zielvideos, z. B. gs://my-bucket/embeddings/supermarket-video.mp4, oder den base64-String des Videos. Das sind zweidimensionale Arrays, auf die wie auf my_array[0][5] zugegriffen werden kann. Weitere Informationen finden Sie unter Arrays.

Nächste Schritte