POSTAR /multimodalembeddings

Cria incorporações vetoriais para entradas multimodais consistindo em texto, imagens ou uma combinação de ambos.

Esse endpoint aceita entradas que podem conter texto e imagens em qualquer combinação e retorna suas representações vetoriais.

aplicação/json

corpo, corpo Obrigatório

  • insumos array[objeto] Obrigatório

    Uma lista de entradas multimodais a serem vetorizadas.

    Uma única entrada na lista é um dicionário contendo uma única chave "content", cujo valor representa uma sequência de texto e imagens.

    • O valor de "content" é uma lista de dicionários, cada um representando um único fragmento de texto ou imagem. Os dicionários têm quatro chaves possíveis:
    • tipo: especifica o tipo da parte do conteúdo. Os valores permitidos text são, image_url image_base64ou.
    • texto: somente presente type quando text é. O valor deve ser uma string de texto.
    • 64imagem_base: somente presente type quando image_base64 é. O valor deve ser uma64imagem codificada em Base no formato de URL de data:[<mediatype>];base64,<data> dados. Os atualmente suportados mediatypes são:,, image/png image/jpegimage/webp image/gife.
    • image_url: presente apenas type quando image_url é. O valor deve ser um URL com link para a imagem. Aceitamos imagens PNG, Jpeg, WEBP e Gif.
    • Nota: Somente uma das chaves, image_base64 image_urlou, deve estar presente em cada dicionário para dados de imagem. É necessária consistência em uma solicitação, o que significa que cada solicitação deve usar image_base64 ou image_url exclusivamente para imagens, não ambos.

    Exemplo de carga útil em que inputs contém uma imagem como URL:

    A lista inputs contém uma única entrada, que consiste em um texto e uma imagem (que é fornecida por meio de um 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" }
    

    Exemplo de carga útil em que inputs contém uma imagem de base64:

    Abaixo está um exemplo equivalente ao acima, onde o conteúdo da imagem é uma imagem Base64 em vez de um URL. (As imagens base64 podem ser longas, então o exemplo mostra somente uma versão reduzida.)

    { "inputs": [ { "content": [ { "type": "text", "text": "This is a banana." }, { "type": "image_base64", "image_base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAA..." } ] } ], "model": "voyage-multimodal-3" }
    

    As seguintes restrições se aplicam à lista inputs:

    • A lista não deve conter mais de 1000 entradas.
    • Cada imagem não deve conter mais de 16 milhões de pixels ou ser maior que 20 MB de tamanho.
    • Com cada 560 pixels de uma imagem sendo contados como um token, cada entrada na lista não deve exceder 32,000 tokens e o número total de tokens em todas as entradas não deve exceder 320,000.

    Pelo menos 1, mas não mais de 1000 elementos.

    Ocultar atributo de entradas Mostrar atributo de entradas objeto
    • conteúdo array[objeto] Obrigatório

      Uma sequência de texto e imagens.

      Pelo menos 1 elemento.

      Um dos seguintes:
  • Modelo string Obrigatório

    O modelo de integração multimodal a ser usado. Atualmente, apenas voyage-multimodal-3 é suportado.

    O valor é voyage-multimodal-3.

  • input_type corda | zero

    Tipo de entrada. Padrão é null. Outras opções: query, document.

    • Quando input_type é null, o modelo de incorporação converte diretamente o inputs em vetores numéricos. Para fins de recuperação ou pesquisa, onde uma " query ", que pode ser texto ou imagem nesse caso, pesquisa informações relevantes em uma coleção de dados conhecida como "documentos", especifique se seus inputs são queries ou documentos configurando input_type a query ou document, respectivamente. Nesses casos, o Voyage acrescenta automaticamente um prompt ao seu inputs antes de vetorizá-los, criando vetores mais personalizados para tarefas de recuperação ou pesquisa. Como as entradas podem ser multimodais, "queries" e "documentos" podem ser texto, imagens ou um intercalação de ambas as formas. As incorporações geradas com e sem o argumento input_type são compatíveis.
    • Para maior clareza, os seguintes prompts são anexados à sua entrada:
    • queryPara, o prompt é "Representar a query para recuperar documentos de suporte: ".
    • documentPara, o prompt é "Representar o documento para recuperação: ".

    Os valores query são, document ou nulo.

  • truncamento booleano

    Se devem truncar as entradas para caber dentro do comprimento do contexto. Padrão é true.

    • Se true, as entradas de comprimento excedente são truncadas para caber no comprimento do contexto antes da vetorização pelo modelo de incorporação. Se o truncamento ocorrer no meio de uma imagem, toda a imagem será descartada.
    • Se false, ocorrerá um erro se qualquer entrada exceder o comprimento do contexto.

    O valor padrão é true.

  • output_encoding corda | zero

    Formato em que as incorporações são codificadas. Padrão é null.

    • Se null, as incorporações serão representadas como uma lista de números de ponto flutuante.
    • Se base64, as incorporações são representadas como uma array NumPy codificada em Base64de flutuações de precisão única.

    Os valores são base64 ou nulo.

Respostas

  • 200 aplicação/json

    Sucesso

    Ocultar atributos de resposta Mostrar atributos de resposta objeto
    • objeto string Obrigatório

      O tipo de objeto , que é sempre list.

      O valor é list.

    • de dados array[objeto] Obrigatório

      Uma array de objetos incorporados.

      Ocultar atributos de dados Mostrar atributos de dados objeto
      • objeto string Obrigatório

        O tipo de objeto , que é sempre embedding.

        O valor é embedding.

      • Incorporação array[número] | string Obrigatório

        O vetor de incorporação. Quando output_encoding é nulo, é uma array de números de ponto flutuante. Quando output_encoding é base64, esta é uma string codificada de base64.

        Um dos seguintes:

        Formato da array quando output_encoding é nulo

        Formato codificado por64base quando output_encoding é base64

      • index inteiro Obrigatório

        Um número inteiro representando o índice da incorporação dentro da lista de incorporações.

    • Modelo string Obrigatório

      Nome do modelo.

    • Uso objeto Obrigatório
      Ocultar atributos de uso Mostrar atributos de uso objeto
      • text_tokens inteiro Obrigatório

        O número total de tokens de texto na lista de entradas.

      • logo_imagem inteiro Obrigatório

        O número total de pixels da imagem na lista de entradas.

      • total_tokens inteiro Obrigatório

        O total combinado de tokens de texto e imagem. Cada 560 pixels conta como um token.

  • 400 aplicação/json

    Invalid Request

    Ocultar atributo de resposta Mostrar atributo de resposta objeto
    • detalhe string

      A solicitação é inválida. Esse erro pode ocorrer devido a JSON inválido, tipos de parâmetros inválidos, tipos de dados incorretos, tamanho do lote muito grande, total de tokens que excede o limite ou tokens em um exemplo que excede o comprimento do contexto.

  • 401 aplicação/json

    Não autorizado

    Ocultar atributo de resposta Mostrar atributo de resposta objeto
    • detalhe string

      Autenticação inválida. Certifique-se de que a chave de API do modelo esteja especificada corretamente no cabeçalho de autorização como Bearer YOUR_API_KEY.

  • 403 aplicação/json

    Proibido

    Ocultar atributo de resposta Mostrar atributo de resposta objeto
    • detalhe string

      Acesso proibido. Isso pode ocorrer se o endereço IP do qual você está enviando a solicitação não for permitido.

  • 429 aplicação/json

    Limite de taxa excedido

    Ocultar atributo de resposta Mostrar atributo de resposta objeto
    • detalhe string

      Limite de taxa excedido. Sua frequência de solicitação ou uso de token é muito alto. Reduza sua taxa de solicitações ou aguarde antes de tentar novamente.

  • 500 aplicação/json

    Internal Server Error

    Ocultar atributo de resposta Mostrar atributo de resposta objeto
    • detalhe string

      Ocorreu um erro inesperado no servidor. Tente sua solicitação novamente após uma breve espera.

  • 502 aplicação/json

    Gateway incorreto

    Ocultar atributo de resposta Mostrar atributo de resposta objeto
    • detalhe string

      O servidor recebeu uma resposta inválida de um servidor upstream. Tente sua solicitação novamente após uma breve espera.

  • 503 aplicação/json

    Serviço não disponível

    Ocultar atributo de resposta Mostrar atributo de resposta objeto
    • detalhe string

      O serviço está temporariamente indisponível devido a alto tráfego ou manutenção. Tente sua solicitação novamente após uma breve espera.

  • 504 aplicação/json

    Tempo limite do gateway

    Ocultar atributo de resposta Mostrar atributo de resposta objeto
    • detalhe string

      O servidor não recebeu uma resposta atempada de um servidor upstream. Tente sua solicitação novamente após uma breve espera.

POST /multimodalembeddings
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","input_type":"query","truncation":true,"output_encoding":"base64"}'
Exemplos de solicitação
{
  "inputs": [
    {
      "content": [
        {
          "type": "text",
          "text": "string"
        }
      ]
    }
  ],
  "model": "voyage-multimodal-3",
  "input_type": "query",
  "truncation": true,
  "output_encoding": "base64"
}
Exemplos de resposta (200)
{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [
        42.0
      ],
      "index": 42
    }
  ],
  "model": "string",
  "usage": {
    "text_tokens": 42,
    "image_pixels": 42,
    "total_tokens": 42
  }
}
Exemplos de resposta (400)
{
  "detail": "string"
}
Exemplos de resposta (401)
{
  "detail": "string"
}
Exemplos de resposta (403)
{
  "detail": "string"
}
Exemplos de resposta (429)
{
  "detail": "string"
}
Exemplos de resposta (500)
{
  "detail": "string"
}
Exemplos de resposta (502)
{
  "detail": "string"
}
Exemplos de resposta (503)
{
  "detail": "string"
}
Exemplos de resposta (504)
{
  "detail": "string"
}