Texto

Criar Chat Completion

Cria uma conclusão para a mensagem de chat

POST
/v1/chat/completions

Corpo da Requisição

Os parâmetros opcionais suportados, valores aceitos e padrões dependem do modelo selecionado. Verifique os detalhes do modelo antes de definir opções de amostragem, raciocínio ou ferramentas.

modelstringobrigatório

ID do modelo a ser utilizado. Consulte Modelos para opções disponíveis.

messagesarrayobrigatório

Uma lista de mensagens que compõem a conversa.

Cada objeto de mensagem contém:

  • role (string): system, developer, user, assistant, tool, function
  • content (string | array | null): O conteúdo da mensagem

Para uma mensagem do assistant contendo tool_calls, o content pode ser omitido ou definido como null.

Quando content é um array, o TokenLab suporta blocos multimodais estruturados para modelos compatíveis:

  • texto: { "type": "text", "text": "..." }
  • imagem: { "type": "image_url", "image_url": { "url": "https://..." } }
  • vídeo: { "type": "video_url", "video_url": { "url": "https://..." } }
  • áudio: { "type": "audio_url", "audio_url": { "url": "https://..." } }

Para entrada multimodal, utilize URLs https publicamente acessíveis. Os tipos de mídia suportados dependem do modelo selecionado.

temperaturenumber

Temperatura de amostragem. O suporte, valores permitidos e o padrão dependem do modelo selecionado; omita este campo para usar o padrão do modelo.

max_tokensinteger

Número máximo de tokens a serem gerados.

streambooleanpadrão: false

Se verdadeiro, deltas parciais da mensagem serão enviados como eventos SSE.

stream_optionsobject

Opções para streaming. Defina include_usage: true para receber o uso de tokens nos chunks do stream.

top_pnumber

Parâmetro de amostragem Nucleus. Recomendamos alterar este ou a temperatura, não ambos.

frequency_penaltynumber

Número entre -2.0 e 2.0. Valores positivos penalizam tokens repetidos.

presence_penaltynumber

Número entre -2.0 e 2.0. Valores positivos penalizam tokens que já estão no texto.

stopstring | array

Sequência de parada ou lista de sequências. O suporte e os limites de sequência dependem do modelo selecionado.

toolsarray

Uma lista de ferramentas que o modelo pode chamar (function calling).

tool_choicestring | object

Controla como o modelo usa ferramentas. Opções: auto, none, required ou um objeto de ferramenta específico.

parallel_tool_callsboolean

Permite múltiplas chamadas de ferramenta em um turno do assistente, quando suportado pelo modelo selecionado.

max_completion_tokensinteger

Máximo de tokens para a conclusão. Alternativa ao max_tokens, útil para famílias de modelos mais recentes com capacidade de raciocínio.

reasoning_effortstring

Esforço de raciocínio para modelos que o suportam. Os valores aceitos dependem do modelo selecionado.

Para modelos Claude, o valor define o pensamento do modelo: um nível de esforço em modelos com pensamento adaptativo, ou um orçamento de pensamento em modelos que utilizam um. none desativa o pensamento em modelos que permitem isso. Enquanto o pensamento está ativado, o Claude rejeita uma temperature diferente de 1, top_k, um top_p fora de 0.95–1 e uma mensagem de assistente pré-preenchida. Um tool_choice forçado funciona com pensamento adaptativo, mas não com um orçamento de pensamento.

anthropic_optionsobject

Opções para modelos Claude.

  • prompt_caching (boolean): Defina como true para armazenar em cache o início do prompt. O TokenLab marca o fim do prompt do sistema e a última mensagem do usuário como pontos de cache. Uma requisição posterior que comece com o mesmo conteúdo o lerá do cache. Se qualquer mensagem já possuir cache_control, o TokenLab não adiciona pontos de cache.
  • prompt_caching_ttl (string): 5m (padrão) ou 1h. Se a rota de serviço não suportar uma hora, o TokenLab usa cinco minutos e não rejeita a requisição.

extra.prompt_caching e extra.prompt_caching_ttl são aceitos como as mesmas opções. Consulte Prompt caching para preços e como verificar os tokens armazenados em cache.

seedinteger

Semente de amostragem para modelos que a suportam. Saída idêntica não é garantida.

ninteger

Número de conclusões a serem geradas (1-128).

logprobsboolean

Se deve retornar probabilidades de log.

top_logprobsinteger

Número de probabilidades de log principais a serem retornadas (0-20). Requer logprobs: true.

top_kinteger

Amostragem Top-K para modelos que a suportam.

response_formatobject

Formato de resposta. Use {"type": "json_object"} para modo JSON ou {"type": "json_schema", "json_schema": {...}} para um esquema JSON. O suporte depende do modelo selecionado.

logit_biasobject

Modifica a probabilidade de tokens especificados aparecerem. Mapeie IDs de token (como strings) para valores de viés de -100 a 100.

userstring

Um identificador único representando seu usuário final para monitoramento de abuso.

Resposta

idstring

Identificador único para a conclusão.

objectstring

Sempre chat.completion.

createdinteger

Timestamp Unix de quando a conclusão foi criada.

modelstring

O modelo utilizado para a conclusão.

choicesarray

Lista de escolhas de conclusão.

Cada escolha contém:

  • index (integer): Índice da escolha
  • message (object): A mensagem gerada
  • finish_reason (string): Por que o modelo parou, por exemplo stop, length ou tool_calls

Quando o modelo pensa, a message também pode conter:

  • reasoning_content (string): O texto de pensamento. Alguns modelos retornam apenas um resumo ou nenhum texto.
  • reasoning_details (array): Blocos de pensamento com suas assinaturas. Para continuar uma conversa com pensamento, por exemplo após uma chamada de ferramenta, envie-os de volta inalterados na mensagem do assistente.

Em um stream, os mesmos campos chegam como delta.reasoning_content e delta.reasoning_details.

usageobject

Estatísticas de uso de tokens.

  • prompt_tokens (integer): Tokens no prompt
  • completion_tokens (integer): Tokens na conclusão, incluindo tokens de pensamento
  • total_tokens (integer): Total de tokens usados
  • completion_tokens_details.reasoning_tokens (integer): Tokens de pensamento, quando o modelo os reporta

Requisição

curl -X POST "https://api.tokenlab.sh/v1/chat/completions" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-terra",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Hello!"}
    ],
    "max_tokens": 1000
  }'

Exemplo Multimodal

{
  "model": "gemini-2.5-pro",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "Describe this video briefly." },
        { "type": "video_url", "video_url": { "url": "https://example.com/demo.mp4" } }
      ]
    }
  ],
  "max_tokens": 64
}

Resposta

Resposta
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1706000000,
  "model": "gpt-5.6-terra",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 9,
    "total_tokens": 29
  }
}

Autorização

BearerAuth
AuthorizationBearer <token>

Autenticação por Chave de API. Crie ou gerencie chaves de API em Dashboard > API > API Keys.

Local: header

Cabeçalhos

X-TokenLab-Delivery-Policy?string

Política de entrega por solicitação. Substitui os padrões da API key e do Workspace. Tenta automaticamente o TokenLab Verified primeiro e pode alternar uma vez para Official apenas antes da saída, aceitação da solicitação ou criação de recurso persistente.

Valores permitidos

  • "auto"
  • "verified"
  • "official"

Corpo da requisição

application/json

Resposta

application/json

application/json

application/json

application/json

application/json

application/json

application/json