Los embeddings multimodales en AlloyDB para PostgreSQL te permiten representar texto, imágenes y videos en un espacio de vectores compartido para la búsqueda semántica multimodal y la generación mejorada por recuperación (RAG). Puedes generar embeddings para texto y para imágenes o segmentos de video en Cloud Storage llamando a un modelo multimodal compatible de Gemini Enterprise Agent Platform, por ejemplo, el modelo multimodalembedding@001, desde SQL. Para obtener una lista de los modelos disponibles, consulta
Modelos compatibles.
Para obtener información sobre los conceptos de IA generativa y los embeddings de vectores en AlloyDB, consulta ¿Qué son los embeddings?.
Antes de comenzar
Antes de usar embeddings multimodales, haz lo siguiente:
- Verifica que la extensión
google_ml_integrationesté instalada. - Verifica que la marca
google_ml_integration.enable_model_supportesté configurada comoon. - Integración en Agent Platform.
- Accede a los datos en Cloud Storage para generar incorporaciones multimodales.
Integrar con Agent Platform e instalar la extensión
- Configura el acceso de los usuarios a los modelos de Agent Platform.
- Verifica que esté instalada la versión más reciente de
google_ml_integration.Para verificar la versión instalada, ejecuta el siguiente comando:
SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration'; extversion ------------ 1.5.2 (1 row)
Si la extensión no está instalada o si la versión instalada es anterior a la 1.5.2, actualiza la extensión.
CREATE EXTENSION IF NOT EXISTS google_ml_integration; ALTER EXTENSION google_ml_integration UPDATE;
Si tienes problemas cuando ejecutas los comandos anteriores o si la extensión no se actualiza a la versión 1.5.2 después de ejecutar los comandos anteriores, comunícate con el equipo de asistencia deGoogle Cloud .
Para usar la funcionalidad del motor de consultas de AlloyDB AI, configura la marca
google_ml_integration.enable_ai_query_enginecomoon.SQL
- Habilita el motor de consultas de IA para la sesión actual.
SET google_ml_integration.enable_ai_query_engine = on;
- Habilitar funciones para una base de datos específica en todas las sesiones
ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_ai_query_engine = 'on';
- Habilita el motor de consultas de IA para un usuario específico en todas las sesiones y bases de datos.
ALTER ROLE postgres SET google_ml_integration.enable_ai_query_engine = 'on';
Console
Para modificar el valor de la marca
google_ml_integration.enable_ai_query_engine, sigue los pasos que se indican en Configura las marcas de base de datos de una instancia.gcloud
Para usar gcloud CLI, puedes instalar e inicializar Google Cloud CLI, o bien puedes usar Cloud Shell.
Puedes modificar el valor de la marca
google_ml_integration.enable_ai_query_engine. Para obtener más información, consulta Configura las marcas de base de datos de una instancia.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
- Habilita el motor de consultas de IA para la sesión actual.
Accede a los datos de Cloud Storage para generar embeddings multimodales
- Para generar incorporaciones multimodales, consulta el contenido en Cloud Storage con
un URI de
gs://. - Accede al contenido de Cloud Storage a través del agente de servicio de la plataforma de agentes de tu proyecto actual. De forma predeterminada, el agente de servicio de Agent Platform ya tiene permiso para acceder al bucket en el mismo proyecto. Para obtener más información, consulta el Índice de roles y permisos de IAM.
Para acceder a los datos de un bucket de Cloud Storage en otro proyecto de Google Cloud , ejecuta el siguiente comando de gcloud CLI para otorgar el rol de visualizador de objetos de Storage (
roles/storage.objectViewer) al agente de servicio de Agent Platform de tu proyecto de 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 obtener más información, consulta Configura y administra políticas de IAM en buckets.
Para generar embeddings multimodales, selecciona uno de los siguientes esquemas.
Genera incorporaciones multimodales
Para generar embeddings de texto para un extremo del modelo multimodalembedding@001, ejecuta la siguiente instrucción:
SELECT
ai.text_embedding(
model_id => 'multimodalembedding@001',
content => 'TEXT');
Reemplaza TEXT por el texto para el que deseas generar la incorporación.
Para generar embeddings de imágenes para un extremo del modelo multimodalembedding@001 registrado en el que el tipo de MIME de la imagen es image/jpeg predeterminado, ejecuta la siguiente instrucción:
SELECT
ai.image_embedding(
model_id => 'multimodalembedding@001',
image => 'IMAGE_PATH_OR_TEXT',
mimetype => 'MIMETYPE');
Reemplaza lo siguiente:
IMAGE_PATH_OR_TEXTpor el URI de Cloud Storage de la imagen, por ejemplo,gs://my-bucket/embeddings/flowers.jpeg, o la cadena en Base64 de la imagen.MIMETYPEpor el tipo MIME de la imagen, por ejemplo,image/jpeg. Para obtener la lista completa de tipos de MIME admitidos, consulta la API de Multimodal embeddings.
Para generar embeddings de video en un extremo del modelo multimodalembedding@001 registrado, ejecuta la siguiente instrucción:
SELECT
ai.video_embedding(
model_id => 'multimodalembedding@001',
video => 'VIDEO_URI');
Reemplaza VIDEO_URI por el URI de Cloud Storage del video de destino, por ejemplo, gs://my-bucket/embeddings/supermarket-video.mp4, o la cadena en Base64 del video.
Estos son arrays bidimensionales a los que se puede acceder como sintaxis similar a my_array[0][5].
Para obtener más información, consulta Arrays.