Saltar para o conteúdo principal

Visão Geral

O TokenLab expõe múltiplos formatos de API para que ferramentas de codificação, SDKs e frameworks comuns possam se integrar com o mínimo de código de adaptação. Esta página é intencionalmente mais restrita do que uma matriz de marketing:
  • Suportado significa que documentamos um caminho de configuração concreto e o TokenLab expõe o formato de protocolo que esse caminho espera.
  • Caminho nativo forte significa que o repositório também possui evidências diretas de adaptador ou formato de solicitação para essa família de protocolos.
  • Melhor esforço significa que a integração pode funcionar, mas o cliente upstream não trata este fluxo de gateway personalizado como um contrato estável.
Campos não suportados não são tratados de forma uniforme. Em rotas de compatibilidade, alguns campos são ignorados ou normalizados. Em /v1/responses, campos não suportados podem retornar erros explícitos 400 ou 503 quando essa rota não pode garantir o comportamento solicitado.

Formatos de API Suportados

EndpointFormatoCaso de Uso
/v1/chat/completionsOpenAI ChatCompatibilidade universal
/v1/responsesOpenAI ResponsesConversas com estado (stateful)
/v1/messagesAnthropic MessagesRecursos nativos do Claude
/v1beta/models/:model:generateContentGoogle GeminiRecursos nativos do Gemini

Compatibilidade de IDE e CLI

Caminhos de Ferramentas Documentados

FerramentaNível de SuporteFormatoNotas
CursorSuportado com limitesCompatível com OpenAIFunciona para fluxos padrão de chat/editor BYOK, não como substituto para recursos gerenciados pelo Cursor, como o Tab Completion
Claude Code CLICaminho nativo forteAnthropicRota nativa /v1/messages com cobertura de adaptador para raciocínio (thinking) e tool_choice
Codex CLISuportado com limites de modelo/caminhoOpenAI ResponsesTrate /v1/responses como um caminho avançado para fluxos de trabalho específicos do Codex; alguns campos exclusivos de Responses não são garantidos em todos os modelos e caminhos roteados
Gemini CLIMelhor esforço / experimentalGeminiO fluxo de URL base personalizado do TokenLab não é uma integração oficial da Gemini CLI
OpenCodeSuportadoCompatível com OpenAIUse um provedor compatível com OpenAI por padrão; mude para um provedor baseado em Responses apenas quando precisar explicitamente
OpenHandsSuportadoCompatível com OpenAIUse o caminho LiteLLM/compatível com OpenAI com openai/<model> e a URL base /v1 do TokenLab
Outros editores e ferramentas de agente compatíveis com OpenAI geralmente funcionam com o mesmo padrão de URL base; verifique o suporte a provedores personalizados da própria ferramenta antes de usá-la em produção.

Exemplos de Configuração

Base URL: https://api.tokenlab.sh/v1
API Key: sk-your-tokenlab-key
O Cursor usa internamente o formato de ferramentas estilo Anthropic. O TokenLab suporta ambos:
  • Formato OpenAI: { type: "function", function: { name, parameters } }
  • Formato Anthropic: { name, input_schema } (sem o campo type)

Compatibilidade de SDK

Caminhos de SDK e Framework Documentados

SDK / FrameworkLinguagemNível de SuporteNotas
OpenAI SDKPython/JS/GoCaminho principal suportadoCaminho de compatibilidade para Chat Completions e Embeddings /v1; use rotas de provedor nativas para comportamentos específicos do provedor e não presuma que campos exclusivos de Responses funcionem em todos os modelos
Anthropic SDKPython/JSCaminho nativo forteRota Messages nativa com evidência direta para ferramentas, raciocínio e cache de prompt
Vercel AI SDKTypeScriptPadrão de integração recomendadoPrefira @ai-sdk/openai-compatible; use @ai-sdk/openai apenas quando desejar explicitamente o comportamento nativo de Responses
LangChainPython/JSSuperfícies padrão suportadasChatOpenAI e OpenAIEmbeddings são o escopo pretendido; extras nativos de fornecedores estão fora do escopo
LlamaIndexPythonSuportado via OpenAILikeUse OpenAILike, não as classes internas da OpenAI, para gateways de terceiros como o TokenLab
OpenAI Agents SDKPythonCaminho de chat-completions suportadoUse AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") com OpenAIChatCompletionsModel; o comportamento nativo de Responses depende do modelo e da rota selecionados
AutoGenPythonCaminho de endpoint personalizado suportadoUse OpenAIChatCompletionClient com base_url: https://api.tokenlab.sh/v1
Semantic Kernel.NETCaminho de endpoint personalizado suportadoUse o endpoint personalizado do conector de chat completion da OpenAI e aponte para https://api.tokenlab.sh/v1
CrewAIPythonCaminho de endpoint personalizado suportadoDefina OPENAI_API_BASE ou LLM(base_url=...) para o endpoint /v1 do TokenLab
Pydantic AIPythonCaminho de provedor compatível com OpenAI suportadoUse OpenAIChatModel com OpenAIProvider(base_url="https://api.tokenlab.sh/v1")
DSPyPythonCaminho de endpoint personalizado suportadoUse dspy.LM("openai/<model>", api_base="https://api.tokenlab.sh/v1")
LangflowPython / WebSuportado com limites de escopoUse o campo OpenAI API Base do componente OpenAI com o endpoint /v1 do TokenLab
HaystackPythonCaminho de endpoint personalizado suportadoUse OpenAIChatGenerator(api_base_url="https://api.tokenlab.sh/v1")
GraphitiPythonCaminho de endpoint personalizado suportadoUse OpenAIGenericClient com o endpoint /v1 do TokenLab
Dify-Suportado com limites de escopoO provedor OpenAI e fluxos orientados a chat-completions são o caminho pretendido; não é adequado para Responses específicos do Codex ou comportamento de WebSocket
FlowiseWeb / NodeSuportado com limites de escopoUse o nó de chat do TokenLab quando disponível, ou um nó compatível com ChatOpenAI apontado para https://api.tokenlab.sh/v1
Mem0PythonCaminho de endpoint personalizado suportadoMantenha o provedor OpenAI e defina openai_base_url para o endpoint /v1 do TokenLab
AgnoPythonCaminho suportadoUse o wrapper de modelo do TokenLab quando disponível, ou o caminho de URL base compatível com OpenAI
Browser UsePythonCaminho de endpoint personalizado suportadoUse ChatOpenAILike com o endpoint /v1 do TokenLab
VoltAgentTypeScriptCaminho de endpoint personalizado suportadoPasse um provedor OpenAI do AI SDK configurado com baseURL: "https://api.tokenlab.sh/v1"
RagasPythonCaminho de endpoint personalizado suportadoPasse AsyncOpenAI(base_url="https://api.tokenlab.sh/v1") para o llm_factory
GuardrailsPythonCaminho de validação suportadoPasse um callable de chat completions do SDK OpenAI configurado com o endpoint /v1 do TokenLab
Prompt flowPython / CLICaminho de endpoint personalizado suportadoCrie uma conexão OpenAI com base_url=https://api.tokenlab.sh/v1
PromptfooCLI / NodeCaminho suportadoUse provedores de chat ou Responses da OpenAI com apiBaseUrl: https://api.tokenlab.sh/v1
Portkey GatewayGatewayCaminho suportadoUse o TokenLab como um provedor upstream para tráfego de chat e Responses compatível com OpenAI
HeliconeGateway / ObservabilidadeCaminho de observabilidade suportadoRoteie solicitações compatíveis com OpenAI através do Helicone Gateway com Helicone-Target-Url: https://api.tokenlab.sh
LangfuseObservabilidadeCaminho de rastreamento suportadoConfigure a integração OpenAI do Langfuse com a URL base /v1 do TokenLab
OpenLITObservabilidadeCaminho de rastreamento suportadoInstrumente um cliente SDK OpenAI configurado com a URL base /v1 do TokenLab
OpenLLMetryObservabilidadeCaminho de rastreamento suportadoUse a instrumentação do SDK OpenAI com a URL base /v1 do TokenLab
PhoenixObservabilidadeCaminho de rastreamento suportadoAuto-instrumente o cliente SDK OpenAI configurado com a URL base /v1 do TokenLab
OpikObservabilidadeCaminho de rastreamento suportadoEnvolva um cliente SDK OpenAI configurado com a URL base /v1 do TokenLab
LangBotBot PlatformCaminho de chat suportadoUse o solicitante do TokenLab quando disponível, ou configure um solicitante compatível com OpenAI com o endpoint /v1 do TokenLab
Open WebUIWeb ChatCaminho de chat-app suportadoAdicione o TokenLab como uma conexão de API compatível com OpenAI e atualize a lista de modelos
Chatbox / DeepChat / Jan / LibreChat / Cherry StudioDesktop / WebCaminho de chat-app suportadoUse o fluxo de provedor personalizado compatível com OpenAI de cada aplicativo; esses aplicativos geralmente são orientados a chat-completions

Parâmetros de Chat Completions

Parâmetros Principais

ParâmetroTipoDescrição
modelstringIdentificador do modelo (obrigatório)
messagesarrayMensagens da conversa (obrigatório)
max_tokensintegerTokens máximos de saída
temperaturenumberTemperatura de amostragem (0-2)
top_pnumberAmostragem de núcleo (0-1)
streambooleanHabilitar streaming

Chamada de Ferramentas (Tool Calling)

{
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Obter previsão do tempo para um local",
        "parameters": {
          "type": "object",
          "properties": {
            "location": { "type": "string" }
          }
        },
        "strict": true
      }
    }
  ],
  "tool_choice": "auto",
  "parallel_tool_calls": true
}

Opções de Escolha de Ferramenta (Tool Choice)

FormatoExemploDescrição
String"auto", "none", "required"Seleção simples
Objeto OpenAI{ "type": "function", "function": { "name": "fn" } }Forçar função específica
Objeto Anthropic{ "type": "tool", "name": "fn", "disable_parallel_tool_use": true }Formato nativo Anthropic

Parâmetros Avançados

ParâmetroTipoDescrição
stream_optionsobjectApenas Chat Completions: { include_usage: true } para contagem de tokens
reasoning_effortstring"low", "medium", "high" para modelos GPT-5 com raciocínio habilitado
service_tierstring"auto" ou "default"
seedintegerSaídas determinísticas
logprobsbooleanRetornar log probabilidades
top_logprobsintegerNúmero de top logprobs (0-20)
logit_biasobjectMapa de viés de token (-100 a 100)
frequency_penaltynumberPenalidade de repetição (-2 a 2)
presence_penaltynumberPenalidade de tópico (-2 a 2)
stopstring/arraySequências de parada
nintegerNúmero de conclusões (1-128)
userstringIdentificador de usuário para rastreamento

Recursos Avançados da OpenAI

ParâmetroTipoDescrição
modalitiesarray["text", "audio"] para multimodal
audioobjectConfiguração de saída de áudio (voz, formato)
predictionobjectSaída prevista para conclusão mais rápida
metadataobjectPares chave-valor para rastreamento
storebooleanArmazenar para recuperação posterior

Opções Específicas do Provedor

{
  "anthropic_options": {
    "thinking": {
      "type": "enabled",
      "budget_tokens": 10000
    },
    "prompt_caching": true
  },
  "google_options": {
    "safety_settings": [...],
    "google_search": true,
    "code_execution": true
  }
}

Parâmetros de Anthropic Messages

Parâmetros Principais

ParâmetroTipoDescrição
modelstringIdentificador do modelo
messagesarrayMensagens da conversa
max_tokensintegerSaída máxima (até 128000)
systemstring/arrayPrompt do sistema
streambooleanHabilitar streaming

Chamada de Ferramentas (Tool Calling)

{
  "tools": [
    {
      "name": "get_weather",
      "description": "Obter previsão do tempo",
      "input_schema": {
        "type": "object",
        "properties": {
          "location": { "type": "string" }
        }
      }
    }
  ],
  "tool_choice": {
    "type": "auto",
    "disable_parallel_tool_use": false
  }
}

Raciocínio Estendido (Extended Thinking)

{
  "model": "claude-opus-4-6",
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  }
}

Parâmetros da API de Responses

Parâmetros Principais

ParâmetroTipoDescrição
modelstringIdentificador do modelo
inputstring/arrayConteúdo de entrada
instructionsstringInstruções do sistema
max_output_tokensintegerTokens máximos de saída
previous_response_idstringContinuar conversa

Parâmetros Avançados

ParâmetroTipoDescrição
truncation_strategystring"auto" ou "disabled"
includearray["reasoning.encrypted_content"]
reasoning_effortstringPara modelos de raciocínio
service_tierstringNível de prioridade

Formato de Ferramenta

Suporta formatos de ferramenta da OpenAI e Anthropic:
// Formato OpenAI
{ "type": "function", "name": "fn", "parameters": {...} }

// Formato Anthropic (compatibilidade com Cursor)
{ "name": "fn", "input_schema": {...} }

Parâmetros da API Gemini

Parâmetros Principais

ParâmetroTipoDescrição
contentsarrayConteúdo da conversa
systemInstructionobjectPrompt do sistema
generationConfigobjectConfigurações de geração

Ferramentas

{
  "tools": [{
    "functionDeclarations": [{
      "name": "search",
      "description": "Pesquisar na web",
      "parameters": {...}
    }],
    "codeExecution": {},
    "googleSearch": {}
  }],
  "toolConfig": {
    "functionCallingConfig": {
      "mode": "AUTO"
    }
  }
}

Configurações de Segurança

{
  "safetySettings": [
    {
      "category": "HARM_CATEGORY_HARASSMENT",
      "threshold": "BLOCK_MEDIUM_AND_ABOVE"
    }
  ]
}

Parâmetros Adicionais

ParâmetroTipoDescrição
cachedContentstringReferência de conteúdo em cache
responseMimeTypestring"text/plain" ou "application/json"
responseSchemaobjectEsquema JSON para saída estruturada

Streaming

Endpoints de geração que expõem stream: true, incluindo Chat Completions e Responses, usam Server-Sent Events (SSE):
# Chat Completions
curl https://api.tokenlab.sh/v1/chat/completions \
  -H "Authorization: Bearer sk-xxx" \
  -d '{"model": "gpt-4o", "messages": [...], "stream": true}'

# Rastreamento de uso de Chat Completions
-d '{"...", "stream_options": {"include_usage": true}}'

Tratamento de Erros

O TokenLab retorna respostas de erro compatíveis com a OpenAI:
{
  "error": {
    "message": "Chave de API inválida",
    "type": "invalid_api_key",
    "code": "invalid_api_key"
  }
}
Veja o Guia de Tratamento de Erros para detalhes.

Melhores Práticas

Parâmetros desconhecidos são encaminhados apenas quando a rota pública e o modelo selecionados os suportam.
Para streaming de Chat Completions, habilite stream_options.include_usage para contagens precisas de tokens. Responses possui seu próprio contrato de streaming e não expõe essa opção exclusiva de Chat.
Combine com o formato esperado pelo seu SDK. O TokenLab aceita formatos da OpenAI e da Anthropic.