Com os embeddings multimodais no AlloyDB para PostgreSQL, é possível representar texto, imagens e vídeos em um espaço vetorial compartilhado para pesquisa semântica entre modalidades e geração aumentada por recuperação (RAG). É possível gerar embeddings para texto e
para imagens ou segmentos de vídeo no Cloud Storage chamando um modelo multimodal
compatível da Gemini Enterprise Agent Platform, como o
modelo multimodalembedding@001, no SQL. Para uma lista de modelos disponíveis, consulte
Modelos compatíveis.
Para saber mais sobre conceitos de IA generativa e embeddings de vetor no AlloyDB, consulte O que são embeddings.
Antes de começar
Antes de usar embeddings multimodais, faça o seguinte:
- Verifique se a extensão
google_ml_integrationestá instalada. - Verifique se a flag
google_ml_integration.enable_model_supportestá definida comoon. - Integrar com a Agent Platform.
- Acessar dados no Cloud Storage para gerar incorporações multimodais.
Integrar com a Agent Platform e instalar a extensão
- Configurar o acesso de usuários aos modelos da Agent Platform.
- Verifique se a versão mais recente do
google_ml_integrationestá instalada.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)
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 .
Para usar a funcionalidade do mecanismo de consulta da IA do AlloyDB, defina a flag
google_ml_integration.enable_ai_query_enginecomoon.SQL
- Ative o mecanismo de consulta de IA para a sessão atual.
SET google_ml_integration.enable_ai_query_engine = on;
- Ativar recursos para um banco de dados específico em todas as sessões.
ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_ai_query_engine = 'on';
- 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 banco 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
- Ative o mecanismo de consulta de IA para a sessão atual.
Acessar dados no Cloud Storage para gerar embeddings multimodais
- Para gerar embeddings multimodais, consulte o conteúdo no Cloud Storage usando
um URI
gs://. - Acesse o conteúdo do Cloud Storage pelo agente de serviço da Agent Platform do 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 Google Cloud projeto, 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 o qual você quer 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_TEXTpelo URI do Cloud Storage da imagem, por exemplo,gs://my-bucket/embeddings/flowers.jpeg, ou pela string base64 da imagem.MIMETYPEpelo 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 my_array[0][5], como sintaxe.
Para mais informações, consulte Matrizes.