publicación /multimodalembeddings

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.

aplicación/json

Cuerpo Requerido

  • entradas arreglo[objeto] 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 text son, image_url image_base64o.
    • texto: Solo se presenta cuando type es text. El valor debe ser un string.
    • image_base64: Solo está presente cuando type es image_base64. El valor debe ser una imagen codificada en Base64en el formato URL de datos data:[<mediatype>];base64,<data>. Actualmente, mediatypes admitidos son: image/png, image/jpeg, image/webp y image/gif.
    • image_url: Solo está presente type cuando image_url es. 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_base64 image_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 usar image_base64 o image_url exclusivamente para imágenes, no ambas.

    Ejemplo de carga útil donde inputs contiene una imagen como URL:

    La lista inputs contiene 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 inputs contiene 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 1 pero no más de 1000 elementos.

    Ocultar atributo de entradas Mostrar el atributo inputs Objeto
    • Contenido arreglo[objeto] Requerido

      Una secuencia de texto e imágenes.

      At least 1 element.

      Uno de:
  • Modelo string Requerido

    El modelo de incrustación multimodal que se utilizará. Modelo recomendado: voyage-multimodal-3.5.

    Los valores son voyage-multimodal-3.5 o voyage-multimodal-3.

  • input_type

    Tipo de entrada. Por defecto es null. Otras opciones: query, document.

    • Cuando input_type es null, el modelo de incrustación convierte directamente los inputs en 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 sus inputs son consultas o documentos estableciendo input_type en query o document, respectivamente. En estos casos, Voyage antepone automáticamente una solicitud a sus inputs antes 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 argumento input_type son 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, document o null.

  • Truncamiento booleano

    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.

  • codificación de salida

    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 base64 o nulos.

Respuestas

  • 200 aplicación/json

    éxito

    Ocultar atributos de respuesta Mostrar los atributos de respuesta Objeto
    • Objeto string Requerido

      El tipo de objeto, que siempre es list.

      El valor es list.

    • Datos arreglo[objeto] Requerido

      Una matriz de objetos incrustados.

      Hide data attributes Show data attributes Objeto
      • Objeto string Requerido

        El tipo de objeto, que siempre es embedding.

        El valor es embedding.

      • integración arreglo[number] | string Requerido

        El vector de embedding. Cuando output_encoding es nulo, se trata de un arreglo de números de punto flotante. Cuando output_encoding es base64, se trata de una cadena codificada en base64.

        Uno de:

        Formato de arreglo cuando la codificación_de_salida es nula

        Formato codificado en base64cuando la codificación de salida es base64

      • index entero Requerido

        Un número entero que representa el índice de la incrustación dentro de la lista de incrustaciones.

    • Modelo string Requerido

      Nombre del modelo.

    • Uso Objeto Requerido
      Ocultar atributos de uso Mostrar atributos de uso Objeto
      • tokens de texto entero Requerido

        El número total de tokens de texto en la lista de entradas.

      • píxeles_de_imagen entero Requerido

        El número total de píxeles de imagen en la lista de entradas.

      • total_tokens entero Requerido

        La suma total de tokens de texto e imagen. Cada 560 píxeles cuenta como un token.

  • 400 aplicación/json

    Invalid Request

    Ocultar atributo de respuesta Mostrar atributo de respuesta Objeto
    • detalle string

      La solicitud no es válida. Este error puede ocurrir debido a un JSON no válido, tipos de parámetros no válidos, tipos de datos incorrectos, un tamaño de lote demasiado grande, un número total de tokens que excede el límite o tokens en un ejemplo que exceden la longitud del contexto.

  • 401 aplicación/json

    No autorizado

    Ocultar atributo de respuesta Mostrar atributo de respuesta Objeto
    • detalle string

      Autenticación no válida. Asegúrese de que la clave de API de su modelo esté correctamente especificada en el encabezado de Autorización como Bearer VOYAGE_API_KEY.

  • 403 aplicación/json

    Forbidden

    Ocultar atributo de respuesta Mostrar atributo de respuesta Objeto
    • detalle string

      Acceso prohibido. Esto puede ocurrir si la dirección IP desde la que se envía la solicitud no está permitida.

  • 429 aplicación/json

    Límite de velocidad excedido

    Ocultar atributo de respuesta Mostrar atributo de respuesta Objeto
    • detalle string

      Se ha superado el límite de tasa. La frecuencia de solicitudes o el uso del token es demasiado alto. Reduce la tasa de tus solicitudes o espera antes de reintentar.

  • 500 aplicación/json

    Error interno del servidor

    Ocultar atributo de respuesta Mostrar atributo de respuesta Objeto
    • detalle string

      Ocurrió un error inesperado en el servidor. Vuelve a intentar tu solicitud después de una breve espera.

  • 502 aplicación/json

    Puerta de enlace incorrecta

    Ocultar atributo de respuesta Mostrar atributo de respuesta Objeto
    • detalle string

      El servidor recibió una respuesta no válida de un servidor ascendente. Vuelve a intentar tu solicitud después de una breve espera.

  • 503 aplicación/json

    Servicio no disponible

    Ocultar atributo de respuesta Mostrar atributo de respuesta Objeto
    • detalle string

      El servicio no está disponible temporalmente debido a un alto tráfico o tareas de mantenimiento. Vuelve a intentar tu solicitud después de una breve espera.

  • 504 aplicación/json

    Tiempo de espera del Gateway

    Ocultar atributo de respuesta Mostrar atributo de respuesta Objeto
    • detalle string

      El servidor no recibió una respuesta oportuna de un servidor aguas arriba. Vuelve a intentar tu solicitud después de una breve espera.

POST / incrustaciones multimodales
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"}'
Solicitar ejemplos
{
  "inputs": [
    {
      "content": [
        {
          "type": "text",
          "text": "string"
        }
      ]
    }
  ],
  "model": "voyage-multimodal-3.5",
  "input_type": "query",
  "truncation": true,
  "output_encoding": "base64"
}
Ejemplos de respuestas (200)
{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [
        42.0
      ],
      "index": 42
    }
  ],
  "model": "string",
  "usage": {
    "text_tokens": 42,
    "image_pixels": 42,
    "total_tokens": 42
  }
}
Ejemplos de respuestas (400)
{
  "detail": "string"
}
Ejemplos de respuestas (401)
{
  "detail": "string"
}
Ejemplos de respuestas (403)
{
  "detail": "string"
}
Ejemplos de respuestas (429)
{
  "detail": "string"
}
Ejemplos de respuestas (500)
{
  "detail": "string"
}
Ejemplos de respuestas (502)
{
  "detail": "string"
}
Ejemplos de respuestas (503)
{
  "detail": "string"
}
Ejemplos de respuestas (504)
{
  "detail": "string"
}