Crea incrustaciones vectoriales para entradas multimodales que consisten en texto, imágenes o una combinación de ambos.
Este punto final acepta entradas que pueden contener texto e imágenes en cualquier combinación y devuelve sus representaciones vectoriales.
Cuerpo
Requerido
-
Una lista de entradas multimodales para ser vectorizadas.
Una sola entrada en la lista es un diccionario que contiene una única clave
"content", cuyo valor representa una secuencia de texto e imágenes.- El valor de
"content"es una lista de diccionarios, cada uno representando un único fragmento de texto o imagen. Los diccionarios tienen cuatro claves posibles: - type: Especifica el tipo de la pieza del contenido. Los valores permitidos son
text,image_urloimage_base64. - texto: Solo se presenta cuando
typeestext. El valor debe ser un string. - image_base64: Solo está presente cuando
typeesimage_base64. El valor debe ser una imagen codificada en Base64en el formato URL de datosdata:[<mediatype>];base64,<data>. Actualmente,mediatypesadmitidos son:image/png,image/jpeg,image/webpyimage/gif. - image_url: Solo está presente cuando
typeesimage_url. El valor debe ser una URL que enlace a la imagen. Admitimos imágenes en formato PNG, JPEG, WEBP y GIF. - Nota: Solo una de las claves,
image_base64oimage_url, debe estar presente en cada diccionario de datos de imagen. Se requiere coherencia dentro de una solicitud, lo que significa que cada solicitud debe utilizar exclusivamenteimage_base64oimage_urlpara imágenes, no ambos.
Ejemplo de carga útil donde
inputscontiene una imagen como URL:La lista
inputscontiene una sola entrada, que se compone de un fragmento de texto y una imagen (que se proporciona a través de una URL).{ "inputs": [ { "content": [ { "type": "text", "text": "This is a banana." }, { "type": "image_url", "image_url": "https://raw.githubusercontent.com/voyage-ai/voyage-multimodal-3/refs/heads/main/images/banana.jpg" } ] } ], "model": "voyage-multimodal-3.5" }Carga útil de ejemplo donde
inputscontiene una imagen Base64:A continuación, se muestra un ejemplo equivalente al anterior, donde el contenido de la imagen es una imagen Base64 en lugar de una URL. (Las imágenes Base64 pueden ser largas, por lo que el ejemplo solo muestra una versión abreviada.)
{ "inputs": [ { "content": [ { "type": "text", "text": "This is a banana." }, { "type": "image_base64", "image_base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAA..." } ] } ], "model": "voyage-multimodal-3.5" }Se aplican las siguientes restricciones a la lista
inputs:- La lista no debe contener más de 1000 entradas.
- Cada imagen no debe contener más de 16 millones de píxeles ni superar los 20 MB de tamaño.
- Con cada 560 píxeles de una imagen contados como un token, cada entrada de la lista no debe superar los 32,000 tokens y, el número total de tokens en todas las entradas no debe superar 320,000.
Al menos
1pero no más de1000elementos. - El valor de
-
El modelo de incrustación multimodal a utilizar. Modelo recomendado:
voyage-multimodal-3.5.Los valores son
voyage-multimodal-3.5ovoyage-multimodal-3. -
Tipo de entrada. Por defecto es
null. Otras opciones:query,document.- Cuando
input_typeesnull, el modelo de embedding convierte directamente elinputsen vectores numéricos. Si quieres utilizarla para fines de recuperación o búsqueda, donde una "query", que en este caso puede ser texto o imagen, busca información relevante entre una colección de datos denominada "documentos", especifica si tusinputsson queries o documentos estableciendoinput_typeenqueryodocument, respectivamente. En estos casos, Voyage añade automáticamente un indicador a tuinputsantes de vectorizarlos, creando vectores más adaptados para tareas de recuperación o búsqueda. Dado que las entradas pueden ser multimodales, las "consultas" y los "documentos" pueden ser textos, imágenes o una combinación de ambas modalidades. Las incrustaciones generadas con y sin el argumentoinput_typeson compatibles. - Para mayor transparencia, las siguientes indicaciones se anteponen a tu entrada:
- Para
query, el mensaje es "Representa la query para recuperar documentos de respaldo: ". - Para
document, la indicación es "Representa el documento para recuperación: ".
Los valores son
query,documento null. - Cuando
-
Si se deben truncar las entradas para que quepan dentro de la longitud del contexto. Se establece por defecto en
true.- Si
true, las entradas que superan la longitud se truncan para ajustarse a la longitud del contexto antes de la vectorización por parte del modelo de embedding. Si el truncamiento ocurre en medio de una imagen, se descarta toda la imagen. - Si
false, se produce un error si alguna entrada excede la longitud del contexto.
El valor por defecto es
true. - Si
-
Formato en el que se codifican los incrustados. Por defecto, es
null.- Si
null, los embeddings se representan como una lista de números de punto flotante. - Si
base64, las incrustaciones se representan como un arreglo de NumPy codificado en Base64de números de punto flotante de precisión simple.
Los valores son
base64o null. - Si
curl \
--request POST 'https://ai.mongodb.com/v1/multimodalembeddings' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{"inputs":[{"content":[{"type":"text","text":"string"}]}],"model":"voyage-multimodal-3.5","input_type":"query","truncation":true,"output_encoding":"base64"}'
{
"inputs": [
{
"content": [
{
"type": "text",
"text": "string"
}
]
}
],
"model": "voyage-multimodal-3.5",
"input_type": "query",
"truncation": true,
"output_encoding": "base64"
}
{
"object": "list",
"data": [
{
"object": "embedding",
"embedding": [
42.0
],
"index": 42
}
],
"model": "string",
"usage": {
"text_tokens": 42,
"image_pixels": 42,
"total_tokens": 42
}
}
{
"detail": "string"
}
{
"detail": "string"
}
{
"detail": "string"
}
{
"detail": "string"
}
{
"detail": "string"
}
{
"detail": "string"
}
{
"detail": "string"
}
{
"detail": "string"
}