El modelo de incorporaciones multimodales genera vectores de 1408 dimensiones* según la entrada que proporcionas, que puede incluir una combinación de datos de imagen, texto y video. Los vectores de incorporación se pueden usar para tareas posteriores como la clasificación de imágenes o la moderación de contenido de video.
El vector de incorporación de imágenes y el vector de incorporación de texto están en el mismo espacio semántico con la misma dimensionalidad. En consecuencia, estos vectores se pueden usar indistintamente para los casos de uso como la búsqueda de imágenes por texto o de texto por imagen.
Para los casos de uso de incorporación de solo texto, recomendamos usar la API de incorporaciones de texto de Vertex AI en su lugar. Por ejemplo, la API de incorporaciones de texto podría ser mejor para la búsqueda semántica basada en texto, el agrupamiento en clústeres, el análisis de documentos de formato largo y otros casos de uso de recuperación de texto o búsqueda de respuestas. Para obtener más información, consulta Obtén incorporaciones de texto.
Modelos compatibles
Puedes obtener incorporaciones multimodales con el siguiente modelo:
multimodalembedding
Prácticas recomendadas
Ten en cuenta los siguientes aspectos de entrada cuando uses el modelo de incorporaciones multimodales:
- Texto en imágenes: el modelo puede distinguir texto en imágenes, de manera similar al reconocimiento óptico de caracteres (OCR). Si necesitas distinguir entre una descripción del contenido de la imagen y el texto dentro de una imagen, considera usar la ingeniería de instrucciones para especificar el contenido de destino.
Por ejemplo, en lugar de solo “gato”, especifica “imagen de un gato” o “el texto gato”, según tu caso de uso.
el texto "gato"
foto de un gato
Crédito de la imagen: Manja Vitolic en Unsplash. - Similitudes de incorporación: el producto escalar de las incorporaciones no es una probabilidad calibrada. El producto escalar es una métrica de similitud y puede tener diferentes distribuciones de puntuación para diferentes casos de uso. Por lo tanto, evita usar un umbral de valor fijo para medir la calidad. En su lugar, usa enfoques de clasificación para la recuperación o usa sigmoide para la clasificación.
Uso de la API
Límites de API
Se aplican los siguientes límites cuando usas el modelo multimodalembedding
para las incorporaciones de imagen y texto:
Límite | Valor y descripción |
---|---|
Datos de imágenes y texto | |
Cantidad máxima de solicitudes a la API por minuto y por proyecto | 120 |
Longitud máxima de texto | 32 tokens (~32 palabras) La longitud máxima de texto es de 32 tokens (aproximadamente 32 palabras). Si la entrada supera los 32 tokens, el modelo acorta de forma interna la entrada a esta longitud. |
Idioma | Inglés |
Formatos de imagen | BMP, GIF, JPG o PNG |
Tamaño de la imagen | Imágenes codificadas en base64: 20 MB (cuando se transcodifica 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 una mayor latencia de 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 512 x 512 píxeles. Por lo tanto, no necesitas proporcionar imágenes de mayor resolución. |
Datos de video | |
Audio compatible | N/A: El modelo no tiene en cuenta el contenido de audio cuando genera incorporaciones de video |
Formatos de video | AVI, FLV, MKV, MOV, MP4, MPEG, MPG, WEBM y WMV |
Duración máxima del video (Cloud Storage) | Sin límites. Sin embargo, solo se pueden analizar dos minutos de contenido a la vez. |
Antes de comenzar
- 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
Configura la autenticación para tu entorno.
Select the tab for how you plan to use the samples on this page:
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components: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.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Node.js
Para usar las muestras de Node.js de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components: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.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components: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.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
- Si deseas usar el SDK de Python, sigue las instrucciones en Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación del SDK de Vertex AI de referencia de la API de Vertex para Python.
- Opcional. Revisa los precios de esta función. Los precios de las incorporaciones dependen del tipo de datos que envíes (como imagen o texto), y también dependen del modo que uses para ciertos tipos de datos (como Video Plus, Video Standard o Video Essential).
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 obtener una lista de las regiones disponibles, consulta IA generativa en ubicaciones de Vertex AI.
Mensajes de error
Error de cuota excedida
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 consola de Google Cloud para solicitar un aumento en la cuota de tu proyecto. Usa los siguientes filtros antes de solicitar el aumento:
Service ID: aiplatform.googleapis.com
metric: aiplatform.googleapis.com/online_prediction_requests_per_base_model
base_model:multimodalembedding
Si ya enviaste una solicitud de aumento de cuota, espera antes de enviar otra solicitud. Si necesitas aumentar aún más la cuota, repite la solicitud de aumento de cuota con tu justificación para una solicitud de cuota sostenida.
Especifica incorporaciones de dimensiones inferiores
De forma predeterminada, una solicitud de incorporación muestra un vector de número de punto flotante de 1,408 para un tipo de datos. También puedes especificar incorporaciones de dimensión más baja (vectores de número de punto flotante 128, 256 o 512) para datos de texto e imágenes. Esta opción te permite optimizar la latencia y el almacenamiento o la calidad según cómo planeas usar las incorporaciones. Las incorporaciones de menor dimensión proporcionan necesidades de almacenamiento reducidas y una latencia más baja para las tareas de incorporación posteriores (como la búsqueda o la recomendación), mientras que las incorporaciones de mayor dimensión ofrecen una mayor precisión para las mismas tareas.
REST
Para acceder a la dimensión baja, agrega el campo
parameters.dimension
. El parámetro acepta uno de los siguientes valores:128
,256
,512
o1408
. La respuesta incluye la incorporación de esa dimensión.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: La región del proyecto. Por ejemplo,
us-central1
,europe-west2
oasia-northeast3
. Para obtener una lista de las regiones disponibles, consulta IA generativa en ubicaciones de Vertex AI. - PROJECT_ID: El ID del proyecto de Google Cloud.
- IMAGE_URI: Es el URI de Cloud Storage de la imagen para la que se obtendrán embeddings.
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 para el que se obtendrán las incorporaciones. Por ejemplo:
a cat
- EMBEDDING_DIMENSION: Es la cantidad de dimensiones de incorporación. Los valores más bajos ofrecen una latencia más baja cuando se usan estas incorporaciones para tareas posteriores, mientras que los valores más altos ofrecen una mayor precisión. Valores disponibles:
128
,256
,512
y1408
(predeterminado).
HTTP method and 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 incorporación que muestra el modelo devuelve un vector de número de punto flotante de la dimensión que especifiques. Las siguientes respuestas de muestra se acortan para el espacio. 128 dimensiones:
{ "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" }
512 dimensiones:
{ "predictions": [ { "imageEmbedding": [ -0.0523675755, [...512 dimension vector...] -0.0444030389 ], "textEmbedding": [ -0.0592851527, [...512 dimension vector...] 0.0350437127 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Python
Go
Envía una solicitud de incorporación (imagen y texto)
Usa las siguientes muestras de código para enviar una solicitud de incorporació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 tipo de datos individual.
Obtén incorporaciones de imagen y texto
REST
Para obtener más información sobre las solicitudes del modelo
multimodalembedding
, consulta la referencia de la API del modelomultimodalembedding
.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: La región del proyecto. Por ejemplo,
us-central1
,europe-west2
oasia-northeast3
. Para obtener una lista de las regiones disponibles, consulta IA generativa en ubicaciones de Vertex AI. - PROJECT_ID: El ID del proyecto de Google Cloud.
- TEXT: El texto de destino para el que se obtendrán las incorporaciones. Por ejemplo:
a cat
- B64_ENCODED_IMG: la imagen de destino para la que se obtendrán incorporaciones. La imagen debe especificarse como una cadena de bytes codificada en base64.
HTTP method and 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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Go.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Enviar una solicitud de incorporación (video, imagen o texto)
Cuando envías una solicitud de incorporación, puedes especificar solo un video de entrada o puedes especificar una combinación de datos de video, imágenes y texto.
Modos de incorporaciones de video
Existen tres modos que puedes usar con incorporaciones de video: Essential, Standard o Plus. El modo corresponde a la densidad de las incorporaciones generadas, que se puede especificar con la configuración
interval_sec
en la solicitud. Para cada intervalo de video con duracióninterval_sec
, se genera una incorporación. La duración mínima del intervalo de video es de 4 segundos. Los intervalos superiores a 120 segundos pueden afectar de forma negativa la calidad de las incorporaciones generadas.Los precios de las incorporaciones de videos dependen del modo que uses. Para obtener más información, consulta Precios.
En la siguiente tabla, se resumen los tres modos que puedes usar para las incorporaciones de video:
Modo Cantidad máxima de incorporaciones por minuto Intervalo de incorporación de video (valor mínimo) Esencial 4 15
Esto corresponde a:intervalSec
>= 15Estándar 8 8
Esto corresponde a: 8 <=intervalSec
< 15Plus 15 4
Esto corresponde a: 4 <=intervalSec
< 8Prácticas recomendadas para las incorporaciones de video
Ten en cuenta lo siguiente cuando envíes solicitudes de incorporación de video:
Para generar una sola incorporación durante los dos primeros minutos de un video de entrada de cualquier duración, usa la siguiente configuración
videoSegmentConfig
:request.json
:// other request body content "videoSegmentConfig": { "intervalSec": 120 } // other request body content
Para generar incorporaciones de video con una duración superior a dos minutos, puedes enviar varias solicitudes que especifiquen las horas de inicio y finalización en
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
Obtén incorporaciones de video
Usa el siguiente ejemplo para obtener incorporaciones para contenido de video solamente.
REST
Para obtener más información sobre las solicitudes del modelo
multimodalembedding
, consulta la referencia de la API del modelomultimodalembedding
.En el siguiente ejemplo, se usa un video ubicado en Cloud Storage. También puedes usar el campo
video.bytesBase64Encoded
para proporcionar una representación de string codificada en base64 del video.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: La región del proyecto. Por ejemplo,
us-central1
,europe-west2
oasia-northeast3
. Para obtener una lista de las regiones disponibles, consulta IA generativa en ubicaciones de Vertex AI. - PROJECT_ID: El ID del proyecto de Google Cloud.
- VIDEO_URI: Es el URI de Cloud Storage del video objetivo del que deseas obtener las incorporaciones.
Por ejemplo,
gs://my-bucket/embeddings/supermarket-video.mp4
También puedes proporcionar el video como una cadena de bytes codificada en Base64:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Opcional. Los segmentos de video específicos (en segundos) para los que se generan las incorporaciones.Por ejemplo:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
El uso de esta configuración especifica los datos de video de 10 a 60 segundos y genera incorporaciones para los siguientes intervalos de video de 10 segundos: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60]. Este intervalo de video (
"intervalSec": 10
) se encuentra en el modo de incorporación de video Standard, y se cobra al usuario la tarifa del modo Standard.Si omites
videoSegmentConfig
, el servicio usa los siguientes valores predeterminados:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Este intervalo de video ("intervalSec": 16
) se encuentra en el modo de incorporación de video Essential, y se le cobra al usuario la tarifa del modo Essential.
HTTP method and 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 (7 segundos de video, sin
videoSegmentConfig
especificada):{ "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 (video de 59 segundos con la siguiente configuración de segmento de video:
"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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Go.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Obtén incorporaciones de imagen, texto y video
Usa el siguiente ejemplo para obtener incorporaciones para contenido de video, texto e imagen.
REST
Para obtener más información sobre las solicitudes del modelo
multimodalembedding
, consulta la referencia de la API del modelomultimodalembedding
.En el siguiente ejemplo, se usan datos de imagen, texto y video. Puedes usar cualquier combinación de estos tipos de datos en el cuerpo de tu solicitud.
Además, este ejemplo usa un video ubicado en Cloud Storage. También puedes usar el campo
video.bytesBase64Encoded
para proporcionar una representación de string codificada en base64 del video.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: La región del proyecto. Por ejemplo,
us-central1
,europe-west2
oasia-northeast3
. Para obtener una lista de las regiones disponibles, consulta IA generativa en ubicaciones de Vertex AI. - PROJECT_ID: El ID del proyecto de Google Cloud.
- TEXT: El texto de destino para el que se obtendrán las incorporaciones. Por ejemplo:
a cat
- IMAGE_URI: Es el URI de Cloud Storage de la imagen para la que se obtendrán embeddings.
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: Es el URI de Cloud Storage del video objetivo del que deseas obtener las incorporaciones.
Por ejemplo,
gs://my-bucket/embeddings/supermarket-video.mp4
También puedes proporcionar el video como una cadena de bytes codificada en Base64:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Opcional. Los segmentos de video específicos (en segundos) para los que se generan las incorporaciones.Por ejemplo:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
El uso de esta configuración especifica los datos de video de 10 a 60 segundos y genera incorporaciones para los siguientes intervalos de video de 10 segundos: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60]. Este intervalo de video (
"intervalSec": 10
) se encuentra en el modo de incorporación de video Standard, y se cobra al usuario la tarifa del modo Standard.Si omites
videoSegmentConfig
, el servicio usa los siguientes valores predeterminados:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Este intervalo de video ("intervalSec": 16
) se encuentra en el modo de incorporación de video Essential, y se le cobra al usuario la tarifa del modo Essential.
HTTP method and 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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Go.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
¿Qué sigue?
- Lee el blog “Qué es la búsqueda multimodal: los 'LLM con visión' cambian los negocios”.
- Para obtener información sobre casos de uso de solo texto (la búsqueda semántica basada en texto, el agrupamiento en clústeres, el análisis de documentos de formato largo y otros casos de uso de recuperación de texto o búsqueda de respuestas), lee Obtén incorporaciones de texto.
- Consulta todas las ofertas de IA generativa de imágenes de Vertex AI en la descripción general de Imagen en Vertex AI.
- Explora más modelos previamente entrenados en Model Garden.
- Obtén información sobre las prácticas recomendadas de IA responsable y los filtros de seguridad en Vertex AI.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-12-05 (UTC)