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 que se vectorizarán.
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 de los cuales representa un fragmento de texto o imagen. Los diccionarios tienen cuatro claves posibles: - Tipo: Especifica el tipo de contenido. Los valores permitidos
textson,image_urlimage_base64o. - 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
typecuandoimage_urles. El valor debe ser una URL que enlace a la imagen. Admitimos imágenes PNG, JPEG, WEBP y GIF. - Nota: Solo una de las claves,
image_base64image_urlo, debe estar presente en cada diccionario para los datos de imagen. Se requiere coherencia en cada solicitud, lo que significa que cada solicitud debe usarimage_base64oimage_urlexclusivamente para imágenes, no ambas.
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" }Ejemplo de carga útil 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.
- Dado que cada 560 píxeles de una imagen se cuentan como un token, cada entrada en la lista no debe exceder 32,000 tokens, y la cantidad total de tokens en todas las entradas no debe exceder 320,000.
Al menos
1pero no más de1000elementos. - El valor de
-
El modelo de incrustación multimodal que se 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 incrustación convierte directamente losinputsen vectores numéricos. Para fines de recuperación o búsqueda, cuando una "consulta", que en este caso puede ser texto o imagen, busca información relevante en una colección de datos denominada "documentos", especifique si susinputsson consultas o documentos estableciendoinput_typeenqueryodocument, respectivamente. En estos casos, Voyage antepone automáticamente una solicitud a susinputsantes de vectorizarlos, creando vectores más adecuados para las tareas de recuperación o búsqueda. Dado que las entradas pueden ser multimodales, las "consultas" y los "documentos" pueden ser texto, 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 nulos. - 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"
}