Skip to main content

Visão Geral

O TokenLab expõe quatro superfícies de protocolo com uma única chave de API: Chat Completions, Responses, Anthropic Messages e Gemini nativo. Uma entrada nativa só está disponível quando o modelo anuncia esse formato e existe uma rota upstream do mesmo protocolo; entradas nativas nunca voltam para Chat Completions. Apenas a entrada Chat pode ser compilada em uma direção para outro protocolo compatível.

Formato OpenAI

/v1/chat/completions Formato padrão, compatibilidade mais ampla

Responses

/v1/responses Ciclo de vida e eventos nativos de Responses

Formato Anthropic

/v1/messages Raciocínio estendido, recursos nativos do Claude

Formato Gemini

/v1beta/models/:model:generateContent Integração com o ecossistema Google

Por que Multi-Formato?

Comparação de Formatos

Formato OpenAI

Use esta rota de compatibilidade para integrações OpenAI SDK existentes e fluxos portáteis de chat ou embeddings. Para comportamento nativo Claude ou Gemini, use o formato Anthropic ou Gemini abaixo.
Melhor para:
  • Uso geral
  • Integrações existentes com o SDK OpenAI
  • Compatibilidade máxima

Formato Anthropic

API Messages nativa da Anthropic. Necessário para recursos específicos do Claude, como o raciocínio estendido.

Raciocínio Estendido (Claude Opus 4.6)

Disponível apenas no formato Anthropic:
Melhor para:
  • Recursos específicos do Claude
  • Modo de raciocínio estendido
  • Usuários do SDK Anthropic nativo

Formato Gemini

Formato nativo da API Google Gemini para integração ao ecossistema Google.

Streaming

Melhor para:
  • Integrações com Google Cloud
  • Código existente do SDK Gemini
  • Recursos nativos do Gemini
Gemini Files e Cache: A rota nativa do Gemini oferece /upload/v1beta/files, /v1beta/files, /v1beta/files:register e /v1beta/cachedContents. Files usa canais upstream compatíveis com a Gemini File API; recursos explícitos de Cache também podem ser roteados por canais Vertex AI. Recursos criados via TokenLab ficam vinculados ao mesmo canal/key upstream para chamadas generateContent posteriores.

Limite de compatibilidade de ferramentas

Ferramentas de função só podem ser compiladas em uma direção a partir da entrada Chat quando o destino representa o ciclo completo. Ferramentas nativas do provedor devem permanecer na rota nativa:
  • Ferramentas hospedadas e nativas do OpenAI Responses, como tool_search, web_search, file_search, code_interpreter, MCP, shell/apply_patch e ferramentas computer-use, exigem /v1/responses.
  • Ferramentas server/native da Anthropic, como web_search_*, web_fetch_*, code_execution_*, tool_search_*, bash, computer-use e text-editor, exigem /v1/messages.
  • Ferramentas integradas do Gemini, como googleSearch, codeExecution, urlContext, computerUse e campos tools semelhantes, exigem /v1beta.
O TokenLab não rebaixa solicitações de protocolo nativo para Chat Completions. Campos desconhecidos e combinações de ferramentas são encaminhados em best-effort; o upstream escolhido decide o suporte.

Escolhendo o Formato Certo

Guias de Migração

A partir da API Oficial da OpenAI

A partir da API Oficial da Anthropic

A partir do Google AI Studio

Compatibilidade portátil de Chat

Use /v1/chat/completions quando um cliente precisar acessar modelos atendidos por protocolos upstream diferentes. Uma solicitação Chat portátil pode ser compilada em uma direção para Responses, Messages ou Gemini quando puder ser representada por completo. Solicitações nativas de Responses, Messages e Gemini nunca são convertidas para Chat; o nome do modelo ou provedor não implica disponibilidade nativa.

Limites de Responses e Gemini

A superfície atual de Responses inclui criação, compactação, recuperação, exclusão e SSE. Background funciona apenas por HTTP. WebSocket aceita somente response.create; o streaming é implícito, e background e response.cancel não são oferecidos nesse transporte. Excluir não é cancelar. No Gemini, tanto lowerCamelCase do ProtoJSON quanto os nomes proto originais em snake_case são oficiais e preservados, inclusive em solicitações mistas. A superfície atual inclui list/get models, generateContent, streamGenerateContent, countTokens, embedContent e batchEmbedContents; Interactions e Live não fazem parte dela. Campos desconhecidos são encaminhados em best-effort e o upstream decide o suporte.