Texto

Criar Mensagem

Cria uma mensagem usando o formato da Anthropic Messages API

POST
/v1/messages

Visão geral

Este endpoint fornece compatibilidade nativa com a Anthropic Messages API. Use isto para modelos Claude com recursos como pensamento estendido.

Este endpoint mantém o contrato nativo da Anthropic. messages deve ser um array de mensagens user / assistant, system fica no campo de nível superior system, e max_tokens é obrigatório. Se o payload usar papéis da OpenAI como system, developer ou tool dentro de messages, envie para /v1/chat/completions.

URL base para o SDK da Anthropic: https://api.tokenlab.sh (sem o sufixo /v1)

Cabeçalhos da requisição

x-api-keystringheader

Sua chave de API TokenLab. Envie x-api-key ou Authorization: Bearer <API_KEY>.

anthropic-versionstringheaderobrigatório

Versão da API da Anthropic. Use 2023-06-01.

Corpo da requisição

Os parâmetros opcionais compatíveis, os valores permitidos e os valores padrão dependem do modelo selecionado. Consulte os detalhes do modelo antes de configurar opções de amostragem, raciocínio ou ferramentas.

modelstringobrigatório

ID de um modelo compatível com o formato anthropic_messages. Consulte os detalhes do modelo para ver os recursos atuais.

messagesarrayobrigatório

Array de objetos de mensagem com role e content.

max_tokensintegerobrigatório

Máximo de tokens a gerar.

systemstring | array

Prompt do sistema como string ou array de blocos de conteúdo, separado do array messages.

temperaturenumber

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

streambooleanpadrão: false

Habilita respostas em streaming.

thinkingobject

Configuração nativa de thinking. Os modos, orçamentos e combinações com outros parâmetros compatíveis dependem do modelo selecionado.

toolsarray

Ferramentas disponíveis para o modelo.

tool_choiceobject

Objeto nativo de escolha de ferramentas, por exemplo {"type":"auto"}. Os tipos compatíveis dependem do modelo selecionado.

top_pnumber

Parâmetro de nucleus sampling. Use temperatura ou top_p, não ambos.

top_kinteger

Faz sampling apenas das K principais opções para cada token.

stop_sequencesarray

Sequências de parada personalizadas que farão o modelo parar de gerar.

metadataobject

Metadados para anexar à requisição para fins de rastreamento.

Resposta

idstring

Identificador único da mensagem.

typestring

Sempre message.

rolestring

Sempre assistant.

contentarray

Array de blocos de conteúdo, como text, thinking ou tool_use.

modelstring

Modelo usado.

stop_reasonstring

Motivo pelo qual a geração parou, como end_turn, max_tokens, stop_sequence ou tool_use.

usageobject

Uso de tokens com input_tokens e output_tokens.

Requisição

curl -X POST "https://api.tokenlab.sh/v1/messages" \
  -H "x-api-key: sk-your-api-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "system": "You are a helpful assistant.",
    "messages": [
      {"role": "user", "content": "Hello, Claude!"}
    ]
  }'

Resposta

Response
{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello! How can I help you today?"
    }
  ],
  "model": "claude-sonnet-5",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 15,
    "output_tokens": 10
  }
}

Exemplo de Entrada de Visão

Para modelos Claude com suporte a visão, coloque imagens dentro de messages[].content como blocos de imagem estruturados.

{
  "model": "claude-sonnet-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Please describe this image."
        },
        {
          "type": "image",
          "source": {
            "type": "url",
            "url": "https://example.com/demo.jpg"
          }
        }
      ]
    }
  ]
}
{
  "model": "claude-sonnet-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Please describe this image."
        },
        {
          "type": "image",
          "source": {
            "type": "base64",
            "media_type": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

Exemplo de pensamento estendido

Defina TOKENLAB_THINKING_MODEL como um modelo que suporte thinking manual com type: "enabled" e budget_tokens. Ajuste os dois orçamentos de tokens aos limites desse modelo. Outros modelos podem exigir uma configuração de thinking diferente.

import os
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-your-api-key",
    base_url="https://api.tokenlab.sh"
)

message = client.messages.create(
    model=os.environ["TOKENLAB_THINKING_MODEL"],
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{"role": "user", "content": "Solve this math problem..."}]
)

for block in message.content:
    if block.type == "thinking":
        print(f"Thinking: {block.thinking}")
    elif block.type == "text":
        print(f"Response: {block.text}")

Lotes de mensagens da Anthropic

O TokenLab agora expõe o fluxo nativo de Anthropic Message Batches junto com /v1/messages.

Rotas disponíveis:

  • POST /v1/messages/batches
  • GET /v1/messages/batches
  • GET /v1/messages/batches/:message_batch_id
  • GET /v1/messages/batches/:message_batch_id/results
  • POST /v1/messages/batches/:message_batch_id/cancel
  • DELETE /v1/messages/batches/:message_batch_id

Notas operacionais:

  • Use a mesma chave de API do TokenLab junto com os cabeçalhos nativos da Anthropic.
  • Se os itens do batch fizerem referência a file_id, inclua também anthropic-beta: files-api-2025-04-14.
  • Os batch jobs mantêm o formato nativo de requisição/resposta da Anthropic, enquanto o TokenLab acompanha internamente o ciclo de liquidação.

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