PUBLICAR /incrustaciones multimodales

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 matriz[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 type está presente cuando text es. El valor debe ser una cadena de texto.
    • image_base:64 Solo está presente type cuando image_base64 es. El valor debe ser una64imagen codificada en Base con el formato de URL de data:[<mediatype>];base64,<data> datos.mediatypes Los valores actualmente admitidosimage/png image/jpegson:,, image/webp image/gify.
    • 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 única entrada, que consta 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 extensas, 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" }
    

    Las siguientes restricciones se aplican 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 tener un tamaño mayor a 20 MB.
    • 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 atributo de entradas Objeto
    • contenido matriz[objeto] Requerido

      Una secuencia de texto e imágenes.

      Al menos 1 elemento.

      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. El valor predeterminado 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, se anteponen las siguientes indicaciones a su entrada:
    • queryPara, el mensaje es "Represente la consulta para recuperar documentos de respaldo: ".
    • documentPara, el mensaje es "Representar el documento para su recuperación: ".

    Los valores query son, document o nulo.

  • Truncamiento booleano

    Si se deben truncar las entradas para que quepan dentro de la longitud del contexto. Se establece por defecto en true.

    • Si es true, las entradas con exceso de longitud se truncan para ajustarse a la longitud del contexto antes de que el modelo de incrustación las vectorice. Si el truncamiento ocurre en medio de una imagen, se descarta toda la imagen.
    • Si es false, se produce un error si alguna entrada excede la longitud del contexto.

    El valor predeterminado es true.

  • codificación de salida

    Formato en el que se codifican las incrustaciones. El valor predeterminado es null.

    • Si null, los embeddings se representan como una lista de números de punto flotante.
    • Si es base64, las incrustaciones se representan como una matriz NumPy codificada en Base64de puntos flotantes 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 matriz[objeto] Requerido

      Una matriz de objetos incrustados.

      Ocultar atributos de datos Mostrar atributos de datos 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 incrustación. Cuando output_encoding es nulo, se trata de una matriz de números de punto flotante. Cuando output_encoding es base64, se trata de una cadena codificada en base64.

        Uno de:

        Formato de matriz cuando output_encoding es nulo

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

      • index entero Requerido

        Un 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 API de su modelo esté especificada correctamente 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 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

      Se produjo un error inesperado en el servidor. Vuelva a intentar su 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. Vuelva a intentar su 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 alto tráfico o mantenimiento. Vuelva a intentar su 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"
}