El modelo de embeddings multimodal genera vectores de 1408 dimensiones a partir de la entrada que proporciones, que puede incluir una combinación de datos de imagen, texto y vídeo. Los vectores de inserción se pueden usar para tareas posteriores, como la clasificación de imágenes o la moderación de contenido de vídeo.
El vector de incrustación de imagen y el vector de incrustación de texto están en el mismo espacio semántico y tienen la misma dimensionalidad. Por lo tanto, estos vectores se pueden usar indistintamente en casos prácticos como buscar imágenes por texto o buscar vídeos por imagen.
En los casos prácticos de incrustaciones de solo texto, te recomendamos que uses la API text-embeddings de Vertex AI. Por ejemplo, la API text-embeddings puede ser más adecuada para la búsqueda semántica basada en texto, la creación de clústeres, el análisis de documentos extensos y otros casos prácticos de recuperación de texto o respuesta a preguntas. Para obtener más información, consulta Obtener representaciones de texto.
Modelos admitidos
Puedes obtener embeddings multimodales con el siguiente modelo:
multimodalembedding
Prácticas recomendadas
Ten en cuenta los siguientes aspectos de las entradas al usar el modelo de embeddings multimodal:
- Texto en imágenes: el modelo puede distinguir el texto de las imágenes, de forma similar al reconocimiento óptico de caracteres (OCR). Si necesitas distinguir entre la descripción del contenido de la imagen y el texto que aparece en ella, puedes usar la ingeniería de peticiones para especificar el contenido que quieres.
Por ejemplo, en lugar de "gato", especifica "imagen de un gato" o "el texto 'gato'", según el caso práctico.
el texto "gato"
imagen de un gato
Imagen: Manja Vitolic en Unsplash. - Similitudes de las inserciones: el producto escalar de las inserciones no es una probabilidad calibrada. El producto escalar es una métrica de similitud y puede tener distribuciones de puntuación diferentes para distintos casos prácticos. Por lo tanto, no utilices un umbral de valor fijo para medir la calidad. En su lugar, utiliza enfoques de clasificación para la recuperación o usa sigmoide para la clasificación.
Uso de la API
Límites de la API
Se aplican los siguientes límites cuando usas el modelo multimodalembedding
para
inserciones de texto e imagen:
Límite | Valor y descripción |
---|---|
Datos de texto e imagen | |
Número máximo de solicitudes a la API por minuto y proyecto | De 120 a 600, según la región |
Longitud máxima del texto | 32 tokens (unas 32 palabras) La longitud máxima del texto es de 32 tokens (aproximadamente 32 palabras). Si la entrada supera los 32 tokens, el modelo acorta internamente la entrada a esta longitud. |
Idioma | Inglés |
Formatos de imagen | BMP, GIF, JPG y PNG |
Tamaño de la imagen | Imágenes codificadas en base64: 20 MB (cuando se transcodifican a PNG) Imágenes de Cloud Storage: 20 MB (formato de archivo original) El tamaño máximo de imagen aceptado es de 20 MB. Para evitar que aumente la latencia de la red, usa imágenes más pequeñas. Además, el modelo cambia el tamaño de las imágenes a una resolución de 512x512 píxeles. Por lo tanto, no es necesario que proporcione imágenes de mayor resolución. |
Datos de vídeo | |
Compatibilidad con audio | No disponible: el modelo no tiene en cuenta el contenido de audio al generar las inserciones de vídeo |
Formatos de vídeo | AVI, FLV, MKV, MOV, MP4, MPEG, MPG, WEBM y WMV |
Duración máxima de los vídeos (Cloud Storage) | Sin límite. Sin embargo, solo se pueden analizar 2 minutos de contenido a la vez. |
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Configura la autenticación de tu entorno.
Select the tab for how you plan to use the samples on this page:
Java
Para usar las Java muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Después de inicializar gcloud CLI, actualízala e instala los componentes necesarios:
gcloud components update gcloud components install beta
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .
Node.js
Para usar las Node.js muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Después de inicializar gcloud CLI, actualízala e instala los componentes necesarios:
gcloud components update gcloud components install beta
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .
Python
Para usar las Python muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Después de inicializar gcloud CLI, actualízala e instala los componentes necesarios:
gcloud components update gcloud components install beta
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Después de inicializar gcloud CLI, actualízala e instala los componentes necesarios:
gcloud components update gcloud components install beta
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
- Para usar el SDK de Python, sigue las instrucciones de Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API del SDK de Vertex AI para Python.
- Opcional. Consulta los precios de esta función. Los precios de las inserciones dependen del tipo de datos que envíes (como imágenes o texto) y del modo que utilices para determinados tipos de datos (como Vídeo plus, Vídeo estándar o Vídeo básico).
Ubicaciones
Una ubicación es una región que puedes especificar en una solicitud para controlar dónde se almacenan los datos en reposo. Para ver una lista de las regiones disponibles, consulta Ubicaciones de la IA generativa en Vertex AI.
Mensajes de error
Error de cuota superada
google.api_core.exceptions.ResourceExhausted: 429 Quota exceeded for aiplatform.googleapis.com/online_prediction_requests_per_base_model with base model: multimodalembedding. Please submit a quota increase request.
Si es la primera vez que recibes este error, usa la Google Cloud consola para solicitar un ajuste de cuota para tu proyecto. Usa los siguientes filtros antes de solicitar el ajuste:
Service ID: aiplatform.googleapis.com
metric: aiplatform.googleapis.com/online_prediction_requests_per_base_model
base_model:multimodalembedding
Si ya has enviado una solicitud de ajuste de cuota, espera antes de enviar otra. Si necesitas aumentar aún más la cuota, repite la solicitud de ajuste de cuota con la justificación de un ajuste de cuota sostenido.
Especificar inserciones de menor dimensión
De forma predeterminada, una solicitud de incrustación devuelve un vector flotante de 1408 para un tipo de datos. También puedes especificar incrustaciones de menor dimensión (vectores flotantes de 128, 256 o 512) para datos de texto e imagen. Esta opción te permite optimizar la latencia y el almacenamiento o la calidad en función de cómo vayas a usar las inserciones. Las inserciones de menor dimensión requieren menos almacenamiento y tienen una latencia más baja en las tareas de inserción posteriores (como la búsqueda o la recomendación), mientras que las inserciones de mayor dimensión ofrecen una mayor precisión en las mismas tareas.
REST
Para acceder a la dimensión de baja calidad, añada el campo
parameters.dimension
. El parámetro acepta uno de los siguientes valores:128
,256
,512
o1408
. La respuesta incluye la inserción de esa dimensión.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION: la región de tu proyecto. Por ejemplo,
us-central1
,europe-west2
oasia-northeast3
. Para ver una lista de las regiones disponibles, consulta Ubicaciones de la IA generativa en Vertex AI. - PROJECT_ID: tu Google Cloud ID de proyecto.
- IMAGE_URI: el URI de Cloud Storage de la imagen de destino de la que se van a obtener las inserciones.
Por ejemplo,
gs://my-bucket/embeddings/supermarket-img.png
.También puedes proporcionar la imagen como una cadena de bytes codificada en Base64:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- TEXT: el texto de destino del que se obtendrán las inserciones. Por ejemplo,
a cat
. - EMBEDDING_DIMENSION: número de dimensiones de la inserción. Los valores más bajos ofrecen una latencia menor al usar estas inserciones en tareas posteriores, mientras que los valores más altos ofrecen una mayor precisión. Valores disponibles:
128
,256
,512
y1408
(valor predeterminado).
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Cuerpo JSON de la solicitud:
{ "instances": [ { "image": { "gcsUri": "IMAGE_URI" }, "text": "TEXT" } ], "parameters": { "dimension": EMBEDDING_DIMENSION } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand ContentLa inserción que devuelve el modelo es un vector flotante de la dimensión que especifiques. Las siguientes respuestas de ejemplo se han abreviado para ahorrar espacio. Dimensiones de 128:
{ "predictions": [ { "imageEmbedding": [ 0.0279239565, [...128 dimension vector...] 0.00403284049 ], "textEmbedding": [ 0.202921599, [...128 dimension vector...] -0.0365431122 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
256 dimensiones:
{ "predictions": [ { "imageEmbedding": [ 0.248620048, [...256 dimension vector...] -0.0646447465 ], "textEmbedding": [ 0.0757875815, [...256 dimension vector...] -0.02749932 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Dimensiones 512:
{ "predictions": [ { "imageEmbedding": [ -0.0523675755, [...512 dimension vector...] -0.0444030389 ], "textEmbedding": [ -0.0592851527, [...512 dimension vector...] 0.0350437127 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Python
Go
Enviar una solicitud de inserción (imagen y texto)
Usa los siguientes códigos de ejemplo para enviar una solicitud de incrustación con datos de imagen y texto. En los ejemplos se muestra cómo enviar una solicitud con ambos tipos de datos, pero también puedes usar el servicio con un solo tipo de datos.
Obtener representaciones de texto e imagen
REST
Para obtener más información sobre las solicitudes de modelos
multimodalembedding
, consulta la referencia de la API de modelosmultimodalembedding
.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION: la región de tu proyecto. Por ejemplo,
us-central1
,europe-west2
oasia-northeast3
. Para ver una lista de las regiones disponibles, consulta Ubicaciones de la IA generativa en Vertex AI. - PROJECT_ID: tu Google Cloud ID de proyecto.
- TEXT: el texto de destino del que se obtendrán las inserciones. Por ejemplo,
a cat
. - B64_ENCODED_IMG: la imagen de destino de la que se obtendrán las inserciones. La imagen debe especificarse como una cadena de bytes codificada en Base64.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Cuerpo JSON de la solicitud:
{ "instances": [ { "text": "TEXT", "image": { "bytesBase64Encoded": "B64_ENCODED_IMG" } } ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand Content{ "predictions": [ { "textEmbedding": [ 0.010477379, -0.00399621, 0.00576670747, [...] -0.00823613815, -0.0169572588, -0.00472954148 ], "imageEmbedding": [ 0.00262696808, -0.00198890246, 0.0152047109, -0.0103145819, [...] 0.0324628279, 0.0284924973, 0.011650892, -0.00452344026 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Python
Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.
Node.js
Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Antes de probar este ejemplo, sigue las Go instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Enviar una solicitud de inserción (vídeo, imagen o texto)
Cuando envías una solicitud de inserción, puedes especificar solo un vídeo de entrada o una combinación de datos de vídeo, imagen y texto.
Modos de inserción de vídeo
Hay tres modos que puedes usar con las inserciones de vídeo: Esencial, Estándar o Plus. El modo corresponde a la densidad de las inserciones generadas, que se puede especificar mediante la configuración
interval_sec
en la solicitud. Por cada intervalo de vídeo de longitudinterval_sec
, se genera una inserción. La duración mínima del intervalo de vídeo es de 4 segundos. Si la duración de los intervalos es superior a 120 segundos, la calidad de las inserciones generadas podría verse afectada negativamente.El precio de la inserción de vídeo depende del modo que utilices. Para obtener más información, consulta los precios.
En la siguiente tabla se resumen los tres modos que puedes usar para insertar vídeos:
Modo Número máximo de inserciones por minuto Intervalo de inserción de vídeo (valor mínimo) Esencial 4 15
Esto corresponde a:intervalSec
>= 15Estándar 8 8
Corresponde a: 8 <=intervalSec
< 15Plus 15 4
Esto corresponde a: 4 <=intervalSec
< 8Prácticas recomendadas para las inserciones de vídeo
Ten en cuenta lo siguiente cuando envíes solicitudes de inserción de vídeos:
Para generar una sola inserción de los dos primeros minutos de un vídeo de entrada de cualquier duración, usa el siguiente ajuste
videoSegmentConfig
:request.json
:// other request body content "videoSegmentConfig": { "intervalSec": 120 } // other request body content
Para generar una inserción de un vídeo de más de dos minutos, puedes enviar varias solicitudes que especifiquen las horas de inicio y de finalización en el campo
videoSegmentConfig
:request1.json
:// other request body content "videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120 } // other request body content
request2.json
:// other request body content "videoSegmentConfig": { "startOffsetSec": 120, "endOffsetSec": 240 } // other request body content
Obtener incrustaciones de vídeo
Usa el siguiente ejemplo para obtener las inserciones solo del contenido de vídeo.
REST
Para obtener más información sobre las solicitudes de modelos
multimodalembedding
, consulta la referencia de la API de modelosmultimodalembedding
.En el ejemplo siguiente se usa un vídeo ubicado en Cloud Storage. También puedes usar el campo
video.bytesBase64Encoded
para proporcionar una representación de cadena codificada en Base64 del vídeo.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION: la región de tu proyecto. Por ejemplo,
us-central1
,europe-west2
oasia-northeast3
. Para ver una lista de las regiones disponibles, consulta Ubicaciones de la IA generativa en Vertex AI. - PROJECT_ID: tu Google Cloud ID de proyecto.
- VIDEO_URI: el URI de Cloud Storage del vídeo de destino para obtener las inserciones.
Por ejemplo,
gs://my-bucket/embeddings/supermarket-video.mp4
.También puedes proporcionar el vídeo como una cadena de bytes codificada en Base64:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Opcional. Los segmentos de vídeo específicos (en segundos) para los que se generan las inserciones.Por ejemplo:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Con esta configuración, se especifican datos de vídeo de 10 a 60 segundos y se generan inserciones para los siguientes intervalos de vídeo de 10 segundos: [10, 20), [20, 30), [30, 40), [40, 50) y [50, 60). Este intervalo de vídeo (
"intervalSec": 10
) se incluye en el modo de inserción de vídeo estándar y se cobra al usuario la tarifa del modo estándar.Si omite
videoSegmentConfig
, el servicio usará los siguientes valores predeterminados:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Este intervalo de vídeo ("intervalSec": 16
) se incluye en el modo de inserción de vídeo esencial y se cobra al usuario según la tarifa del modo esencial.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Cuerpo JSON de la solicitud:
{ "instances": [ { "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand ContentRespuesta (vídeo de 7 segundos, sin
videoSegmentConfig
especificado):{ "predictions": [ { "videoEmbeddings": [ { "endOffsetSec": 7, "embedding": [ -0.0045467657, 0.0258095954, 0.0146885719, 0.00945400633, [...] -0.0023291884, -0.00493789, 0.00975185353, 0.0168156829 ], "startOffsetSec": 0 } ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Respuesta (vídeo de 59 segundos, con la siguiente configuración de segmento de vídeo:
"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 60, "intervalSec": 10 }
):{ "predictions": [ { "videoEmbeddings": [ { "endOffsetSec": 10, "startOffsetSec": 0, "embedding": [ -0.00683252793, 0.0390476175, [...] 0.00657121744, 0.013023301 ] }, { "startOffsetSec": 10, "endOffsetSec": 20, "embedding": [ -0.0104404651, 0.0357737206, [...] 0.00509833824, 0.0131902946 ] }, { "startOffsetSec": 20, "embedding": [ -0.0113538112, 0.0305239167, [...] -0.00195809244, 0.00941874553 ], "endOffsetSec": 30 }, { "embedding": [ -0.00299320649, 0.0322436653, [...] -0.00993082579, 0.00968887936 ], "startOffsetSec": 30, "endOffsetSec": 40 }, { "endOffsetSec": 50, "startOffsetSec": 40, "embedding": [ -0.00591270532, 0.0368893594, [...] -0.00219071587, 0.0042470959 ] }, { "embedding": [ -0.00458270218, 0.0368121453, [...] -0.00317760976, 0.00595594104 ], "endOffsetSec": 59, "startOffsetSec": 50 } ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Python
Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.
Go
Antes de probar este ejemplo, sigue las Go instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Obtener incrustaciones de imágenes, texto y vídeo
Usa el siguiente ejemplo para obtener incrustaciones de contenido de vídeo, texto e imagen.
REST
Para obtener más información sobre las solicitudes de modelos
multimodalembedding
, consulta la referencia de la API de modelosmultimodalembedding
.En el siguiente ejemplo se usan datos de imagen, texto y vídeo. Puedes usar cualquier combinación de estos tipos de datos en el cuerpo de tu solicitud.
Además, en este ejemplo se usa un vídeo ubicado en Cloud Storage. También puedes usar el campo
video.bytesBase64Encoded
para proporcionar una representación de cadena codificada en Base64 del vídeo.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION: la región de tu proyecto. Por ejemplo,
us-central1
,europe-west2
oasia-northeast3
. Para ver una lista de las regiones disponibles, consulta Ubicaciones de la IA generativa en Vertex AI. - PROJECT_ID: tu Google Cloud ID de proyecto.
- TEXT: el texto de destino del que se obtendrán las inserciones. Por ejemplo,
a cat
. - IMAGE_URI: el URI de Cloud Storage de la imagen de destino de la que se van a obtener las inserciones.
Por ejemplo,
gs://my-bucket/embeddings/supermarket-img.png
.También puedes proporcionar la imagen como una cadena de bytes codificada en Base64:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- VIDEO_URI: el URI de Cloud Storage del vídeo de destino para obtener las inserciones.
Por ejemplo,
gs://my-bucket/embeddings/supermarket-video.mp4
.También puedes proporcionar el vídeo como una cadena de bytes codificada en Base64:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Opcional. Los segmentos de vídeo específicos (en segundos) para los que se generan las inserciones.Por ejemplo:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Con esta configuración, se especifican datos de vídeo de 10 a 60 segundos y se generan inserciones para los siguientes intervalos de vídeo de 10 segundos: [10, 20), [20, 30), [30, 40), [40, 50) y [50, 60). Este intervalo de vídeo (
"intervalSec": 10
) se incluye en el modo de inserción de vídeo estándar y se cobra al usuario la tarifa del modo estándar.Si omite
videoSegmentConfig
, el servicio usará los siguientes valores predeterminados:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Este intervalo de vídeo ("intervalSec": 16
) se incluye en el modo de inserción de vídeo esencial y se cobra al usuario según la tarifa del modo esencial.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Cuerpo JSON de la solicitud:
{ "instances": [ { "text": "TEXT", "image": { "gcsUri": "IMAGE_URI" }, "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
y ejecuta el siguiente comando:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand Content{ "predictions": [ { "textEmbedding": [ 0.0105433334, -0.00302835181, 0.00656806398, 0.00603460241, [...] 0.00445805816, 0.0139605571, -0.00170318608, -0.00490092579 ], "videoEmbeddings": [ { "startOffsetSec": 0, "endOffsetSec": 7, "embedding": [ -0.00673126569, 0.0248149596, 0.0128901172, 0.0107588246, [...] -0.00180952181, -0.0054573305, 0.0117037306, 0.0169312079 ] } ], "imageEmbedding": [ -0.00728622358, 0.031021487, -0.00206603738, 0.0273937676, [...] -0.00204976718, 0.00321615417, 0.0121978866, 0.0193375275 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Python
Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.
Go
Antes de probar este ejemplo, sigue las Go instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Siguientes pasos
- Lee la entrada del blog "Qué es la búsqueda multimodal: cómo las LLMs con visión están cambiando las empresas".
- Para obtener información sobre los casos prácticos de solo texto (búsqueda semántica basada en texto, agrupación en clústeres, análisis de documentos extensos y otros casos prácticos de extracción de texto o de respuesta a preguntas), consulta el artículo Obtener incrustaciones de texto.
- Consulta todas las ofertas de IA generativa de imágenes de Vertex AI en la información general de Imagen en Vertex AI.
- Descubre más modelos preentrenados en Model Garden.
- Consulta las prácticas recomendadas de IA responsable y los filtros de seguridad en Vertex AI.
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-12 (UTC).
-