Crear incrustaciones de fragmentos contextualizados

PUBLICAR /incrustaciones contextualizadas

Crea incrustaciones vectoriales contextualizadas para fragmentos de documentos. Estas incrustaciones capturan tanto los detalles locales de cada fragmento como el contexto global de todo el documento.

Este endpoint acepta queries, documentos completos o fragmentos de documentos y devuelve embeddings que son eficientes en contexto en todo el documento.

aplicación/json

Cuerpo Requerido

  • entradas array[array] Requerido

    Una lista de listas, donde cada lista interna contiene una consulta, un documento o fragmentos de documentos para vectorizar.

    Cada lista interna en inputs representa un conjunto de elementos de texto incrustados. Cada elemento de la lista se codifica no solo de forma independiente, sino que también codifica el contexto de los demás elementos de la misma lista.

    inputs = [["text_1_1", "text_1_2", ..., "text_1_n"],
              ["text_2_1", "text_2_2", ..., "text_2_m"]]
    

    Fragmentos de documentos. Normalmente, cada lista interna contiene fragmentos de un solo documento, ordenados según su posición en el documento. En este caso:

    inputs = [["doc_1_chunk_1", "doc_1_chunk_2", ..., "doc_1_chunk_n"],
              ["doc_2_chunk_1", "doc_2_chunk_2", ..., "doc_2_chunk_m"]]
    

    Cada fragmento se codifica en contexto con los demás del mismo documento, lo que resulta en incrustaciones más contextuales. Losfragmentos proporcionados no deben superponerse.

    Comportamiento independiente del contexto para queries y documentos. Si hay un elemento por lista interna, cada texto se incrusta independientemente —similar a las incrustaciones estándar (independientes del contexto):

    inputs = [["query_1"], ["query_2"], ..., ["query_k"]]
    inputs = [["doc_1"], ["doc_2"], ..., ["doc_k"]]
    

    Por tanto, si las entradas son consultas, cada lista interna debe contener una sola consulta (longitud uno), como se muestra arriba, y el input_type debe configurarse en query.

    Las siguientes restricciones se aplican a la lista inputs:

    • La lista no debe contener más de 1,000 entradas.
    • El número total de tokens en todas las entradas no debe superar 120K.
    • La cantidad total de fragmentos en todas las entradas no debe superar 16K.

    Para las consultas, la lista contiene solo una consulta. Para documentos o fragmentos de documentos, la lista debe incluir todos los fragmentos de un solo documento, ordenados por su posición en el documento, o bien, el documento completo puede proporcionarse como un solo fragmento. El número total de tokens en la lista no debe superar 32,000 tokens.

    Al menos 1 pero no más de 1000 elementos.

    Para las consultas, la lista contiene solo una consulta. Para documentos o fragmentos de documentos, la lista debe incluir todos los fragmentos de un solo documento, ordenados por su posición en el documento, o bien, el documento completo puede proporcionarse como un solo fragmento. El número total de tokens en la lista no debe superar 32,000 tokens.

    Al menos 1 elemento. La longitud mínima de cada uno es 1.

  • modelo string Requerido

    El modelo de incrustación contextualizado que se utilizará. Modelo recomendado: voyage-context-3.

    El valor es voyage-context-3.

  • input_type

    Tipo de texto de entrada. El valor predeterminado es null. Otras opciones: query, document.

    • Cuando input_type es null, el modelo de embedding convierte directamente las entradas en vectores numéricos. Para propósitos de recuperación o búsqueda, donde una “query” busca información relevante entre una colección de datos denominada “documentos”, especifica si tus entradas son consultas o documentos configurando input_type en query o document, respectivamente. En estos casos, Voyage añade automáticamente un prompt al inputs antes de vectorizarlos, creando vectores más adecuados para tareas de recuperación o búsqueda. 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.

  • dimensión_de_salida entero | nulo

    Número de dimensiones para las incrustaciones de salida resultantes. El valor predeterminado es null. voyage-context-3 admite los siguientes valores output_dimension: 2048, 1024 (predeterminado), 512 y 256. Si se establece en null, el modelo utiliza el valor predeterminado 1024.

    Los valores son,,,256 51210242048o nulo.

  • output_dtype string

    Tipo de dato de las incrustaciones que se devolverán. El valor predeterminado es float. Otras opciones: int8, uint8, binary, ubinary.

    • floatCada incrustación devuelta es una lista de 324números de punto flotante de precisión simple de bits ( bytes). Este es el valor predeterminado y proporciona la máxima precisión y exactitud de recuperación.
    • int8 y uint8: cada incrustación devuelta es una lista de números enteros de 8bits (1bytes) que van desde -128 a 127 y 0 a 255, respectivamente.
    • binary y ubinary: Cada embedding devuelto es una lista de enteros de 8bits que representan valores de embedding de un solo bit, empaquetados en bits y cuantizados: int8 para binary y uint8 para ubinary. La longitud de la lista devuelta de enteros es 1/8 de output_dimension (que es la dimensión real del embedding). El tipo binary utiliza el método binario de desplazamiento.

    El valor predeterminado es float.

  • formato de codificación

    Formato de codificación de las incrustaciones. El valor predeterminado es null. Otras opciones: base64.

    • Si null, cada embedding es un arreglo de números flotantes cuando output_dtype está configurado en float y un arreglo de enteros para todos los demás valores de output_dtype (int8, uint8, binary, y ubinary). Consulta output_dtype para más detalles.
    • base64Si, las incrustaciones se representan como una matriz NumPy codificada64en Base de:
      • Números de punto flotante (numpy.float)32para output_dtype establecidos float en.
      • Enteros con signo(numpy.int)8 para output_dtype establecidos int8 en binary o.
      • Enteros sin signo(numpy.uint)8 para output_dtype establecido uint8 en ubinary o.

    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 "lista".

      El valor es list.

    • datos matriz[objeto] Requerido

      Una serie de incrustaciones contextualizadas.

      Ocultar atributos de datos Mostrar atributos de datos Objeto
      • Objeto string Requerido

        El tipo de objeto, que siempre es "lista".

        El valor es list.

      • datos matriz[objeto] Requerido

        Una matriz de objetos incrustados, uno para cada fragmento de la lista de entrada.

        Ocultar atributos de datos Mostrar atributos de datos Objeto
        • Objeto string Requerido

          El tipo de objeto, que siempre es "incrustado".

          El valor es embedding.

        • integración arreglo[number] | string Requerido

          El vector de embedding. Cuando encoding_format es nulo, este es un arreglo de números (valores flotantes cuando output_dtype es float, valores enteros para int8, uint8, binary y ubinary). Cuando encoding_format es base64, esto es una string codificada en base64.

          Uno de:

          Formato de matriz cuando encoding_format es nulo

          Formato codificado en base64cuando encoding_format es base64

        • index entero Requerido

          Un entero que representa el índice de la consulta o la incrustación del fragmento contextualizado dentro de la lista de incrustaciones del mismo documento.

      • index entero Requerido

        Un entero que representa el índice de la consulta o documento dentro de la lista de consultas o documentos, respectivamente.

    • modelo string Requerido

      Nombre del modelo.

    • uso Objeto Requerido
      Ocultar atributo de uso Mostrar atributo de uso Objeto
      • total_tokens entero Requerido

        El número total de tokens utilizados para calcular las incrustaciones.

  • 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 /contextualizedembeddings
curl \
 --request POST 'https://ai.mongodb.com/v1/contextualizedembeddings' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{"inputs":[["string"]],"model":"voyage-context-3","input_type":"query","output_dimension":256,"output_dtype":"float","encoding_format":"base64"}'
Solicitar ejemplos
{
  "inputs": [
    [
      "string"
    ]
  ],
  "model": "voyage-context-3",
  "input_type": "query",
  "output_dimension": 256,
  "output_dtype": "float",
  "encoding_format": "base64"
}
Ejemplos de respuestas (200)
{
  "object": "list",
  "data": [
    {
      "object": "list",
      "data": [
        {
          "object": "embedding",
          "embedding": [
            42.0
          ],
          "index": 42
        }
      ],
      "index": 42
    }
  ],
  "model": "string",
  "usage": {
    "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"
}