Gerar embeddings multimodais

É possível gerar embeddings multimodais no AlloyDB para PostgreSQL usando o modelo multimodal da Gemini Enterprise Agent Platform compatível, multimodalembedding@001.

É possível usar os modelos de embedding multimodal da Agent Platform mencionados em Modelos compatíveis.

Nesta página, consideramos que você esteja familiarizado com o AlloyDB para PostgreSQL e os conceitos de IA generativa. Para mais informações, consulte O que são embeddings.

Antes de começar

Antes de usar embeddings multimodais, faça o seguinte:

Integrar com a Agent Platform e instalar a extensão

  1. Configurar o acesso do usuário aos modelos da Plataforma de Agentes.
  2. Verifique se a versão mais recente do google_ml_integration está instalada.
    1. Para verificar a versão instalada, execute o seguinte comando:

      SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';
      extversion 
      ------------
      1.5.2
      (1 row)
    2. Se a extensão não estiver instalada ou se a versão instalada for anterior à 1.5.2, atualize a extensão.

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

      Se você tiver problemas ao executar os comandos anteriores ou se a extensão não for atualizada para a versão 1.5.2 depois de executar os comandos anteriores, entre em contato com o suporte doGoogle Cloud .

  3. Para usar a funcionalidade do mecanismo de consulta da IA do AlloyDB, defina a flag google_ml_integration.enable_ai_query_engine como on.

    SQL

    1. Ative o mecanismo de consulta de IA para a sessão atual.
      SET google_ml_integration.enable_ai_query_engine = on;
    2. Ativar recursos para um banco de dados específico em várias sessões.
      ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_ai_query_engine = 'on';
    3. Ative o mecanismo de consulta de IA para um usuário específico em sessões e bancos de dados.
      ALTER ROLE postgres SET google_ml_integration.enable_ai_query_engine = 'on';

    Console

    Para modificar o valor da flag google_ml_integration.enable_ai_query_engine, siga as etapas em Configurar flags de bancos de dados de uma instância.

    gcloud

    Para usar a CLI gcloud, você pode instalar e inicializar a Google Cloud CLI ou usar o Cloud Shell.

    É possível modificar o valor da flag google_ml_integration.enable_ai_query_engine. Para mais informações, consulte Configurar flags de banco de dados de uma instância.

    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

Acessar dados no Cloud Storage para gerar incorporações multimodais

  • Para gerar incorporações multimodais, consulte o conteúdo no Cloud Storage usando um URI gs://.
  • Acesse o conteúdo do Cloud Storage usando o agente de serviço da Agent Platform do seu projeto atual. Por padrão, o agente de serviço da Agent Platform já tem permissão para acessar o bucket no mesmo projeto. Para mais informações, consulte o índice de papéis e permissões do IAM.
  • Para acessar dados em um bucket do Cloud Storage em outro projeto do Google Cloud , execute o seguinte comando da CLI gcloud para conceder o papel de Leitor de objetos do Storage (roles/storage.objectViewer) ao agente de serviço da Agent Platform do seu projeto do AlloyDB.

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

    Para mais informações, consulte Definir e gerenciar políticas do IAM em buckets.

Para gerar embeddings multimodais, selecione um dos seguintes esquemas.

Gerar embeddings multimodais

Para gerar embeddings de texto para um endpoint de modelo multimodalembedding@001, execute a seguinte instrução:

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

Substitua TEXT pelo texto para gerar o embedding.

Para gerar embeddings de imagem para um endpoint de modelo multimodalembedding@001 registrado em que o mimetype da imagem é o padrão image/jpeg, execute a seguinte instrução:

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

Substitua:

  • IMAGE_PATH_OR_TEXT com o URI do Cloud Storage da imagem, por exemplo, gs://my-bucket/embeddings/flowers.jpeg, ou a string base64 da imagem.
  • MIMETYPE com o tipo MIME da imagem, por exemplo, image/jpeg. Para conferir a lista completa de tipos MIME compatíveis, consulte a API Multimodal Embeddings.

Para gerar embeddings de vídeo para um endpoint de modelo multimodalembedding@001 registrado, execute a seguinte instrução:

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

Substitua VIDEO_URI pelo URI do Cloud Storage do vídeo de destino, por exemplo, gs://my-bucket/embeddings/supermarket-video.mp4, ou pela string base64 do vídeo. São matrizes bidimensionais que podem ser acessadas como uma sintaxe do tipo my_array[0][5]. Para mais informações, consulte Matrizes.

A seguir