Para obtener más información conceptual, consulta Incorporaciones multimodales.
Modelos compatibles:
Modelo | Código |
---|---|
Incorporaciones para multimodales | multimodalembedding@001 |
Ejemplo de sintaxis
Sintaxis para enviar una solicitud a la API de incorporaciones multimodales.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:predict \ -d '{ "instances": [ ... ], }'
Python
from vertexai.vision_models import MultiModalEmbeddingModel model = MultiModalEmbeddingModel.from_pretrained("multimodalembedding") model.get_embeddings(...)
Lista de parámetros
Consulta ejemplos para obtener detalles sobre la implementación.
Cuerpo de la solicitud
{
"instances": [
{
"text": string,
"image": {
// Union field can be only one of the following:
"bytesBase64Encoded": string,
"gcsUri": string,
// End of list of possible types for union field.
"mimeType": string
},
"video": {
// Union field can be only one of the following:
"bytesBase64Encoded": string,
"gcsUri": string,
// End of list of possible types for union field.
"videoSegmentConfig": {
"startOffsetSec": integer,
"endOffsetSec": integer,
"intervalSec": integer
}
},
"parameters": {
"dimension": integer
}
}
]
}
Parámetros | |
---|---|
|
Opcional: La imagen que se usará para generar las incorporaciones. |
|
Opcional: El texto para generar incorporaciones. |
|
Opcional: El segmento del video que se generará las incorporaciones. |
|
Opcional: La dimensión de la incorporación,
incluida en la respuesta. Solo se aplica a la entrada de imagen y texto. Valores
aceptados: |
Imagen
Parámetros | |
---|---|
|
Opcional: Bytes de imagen codificados en una string base64. Debe ser |
|
Opcional. La ubicación de Cloud Storage de la imagen para realizar la incorporación. Puede ser |
|
Opcional. El tipo de MIME del contenido de la imagen. Valores admitidos: |
Video
Parámetros | |
---|---|
|
Opcional: Bytes de video codificados en una string base64. Puede ser |
|
Opcional: La ubicación de Cloud Storage del video en el que se realizará la incorporación. Puede ser |
|
Opcional: La configuración del segmento de video |
VideoSegmentConfig
Parámetros | |
---|---|
|
Opcional: Es el desplazamiento inicial del segmento de video en segundos. Si no se especifica, se calcula con |
|
Opcional: Es el desplazamiento final del segmento de video en segundos. Si no se especifica, se calcula con |
|
Opcional. El intervalo del video en el que se generará la inserción. El valor mínimo de |
Cuerpo de la respuesta
{
"predictions": [
{
"textEmbedding": [
float,
// array of 128, 256, 512, or 1408 float values
float
],
"imageEmbedding": [
float,
// array of 128, 256, 512, or 1408 float values
float
],
"videoEmbeddings": [
{
"startOffsetSec": integer,
"endOffsetSec": integer,
"embedding": [
float,
// array of 1408 float values
float
]
}
]
}
],
"deployedModelId": string
}
Elemento de la respuesta | Descripción |
---|---|
imageEmbedding |
Lista de números de punto flotante en las dimensiones 128, 256, 512 o 1,408. |
textEmbedding |
Lista de números de punto flotante en las dimensiones 128, 256, 512 o 1,408. |
videoEmbeddings |
Lista de números de punto flotante en las dimensiones 1,408 con la hora de inicio y finalización (en segundos) del segmento de video para el que se generan las incorporaciones. |
Ejemplos
Caso de uso básico
Genera incorporaciones a partir de imágenes
Usa el siguiente ejemplo para generar incorporaciones para una imagen.
REST
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.
Genera incorporaciones a partir de video
Usa el siguiente ejemplo para obtener incorporaciones para contenido de video.
REST
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 Content
Respuesta (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.
Caso de uso avanzado
Usa el siguiente ejemplo para obtener incorporaciones para contenido de video, texto e imagen.
Para las incorporaciones de video, puedes especificar el segmento y la densidad de incorporación del video.
REST
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.
En este 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.
- 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 del video objetivo del que deseas obtener las incorporaciones.
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.
¿Qué sigue?
Para obtener documentación detallada, consulta lo siguiente: