É 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:
- 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 do usuário aos modelos da Plataforma de Agentes.
- 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 várias 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 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
- Ative o mecanismo de consulta de IA para a sessão atual.
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_TEXTcom o URI do Cloud Storage da imagem, por exemplo,gs://my-bucket/embeddings/flowers.jpeg, ou a string base64 da imagem.MIMETYPEcom 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.