Frameworks e plataformas

LiteLLM

Use o LiteLLM com TokenLab como endpoint compatível com OpenAI ou como parte do gateway da sua equipe

Visão geral

LiteLLM e TokenLab normalmente se combinam de duas formas.

  • usar TokenLab como endpoint compatível com OpenAI atrás do LiteLLM
  • colocar o LiteLLM na frente do TokenLab para lidar com chaves virtuais, política de seleção de modelos ou observabilidade centralizada

Para o TokenLab, o caminho padrão mais limpo é usar o modo OpenAI personalizado / compatível com OpenAI do LiteLLM com api_base = https://api.tokenlab.sh/v1.

Se você precisa explicitamente de formatos de requisição nativos do Claude ou do Gemini, prefira as integrações nativas do TokenLab em vez de forçar esses fluxos pela abstração compatível com OpenAI do LiteLLM.

Instalação

pip install 'litellm[proxy]'

Configuração do proxy

litellm-config.yaml
model_list:
  - model_name: tokenlab-gpt-5.4
    litellm_params:
      model: custom_openai/gpt-5.4
      api_base: https://api.tokenlab.sh/v1
      api_key: os.environ/OPENAI_API_KEY

  - model_name: tokenlab-claude-sonnet
    litellm_params:
      model: custom_openai/claude-sonnet-4-6
      api_base: https://api.tokenlab.sh/v1
      api_key: os.environ/OPENAI_API_KEY

Inicialização:

export OPENAI_API_KEY="sk-your-tokenlab-key"
litellm --config litellm-config.yaml --port 4000

Chamar com o SDK OpenAI

from openai import OpenAI

client = OpenAI(
    api_key="anything",
    base_url="http://127.0.0.1:4000"
)

response = client.chat.completions.create(
    model="tokenlab-gpt-5.4",
    messages=[{"role": "user", "content": "Hello!"}]
)

print(response.choices[0].message.content)

Chamar diretamente com Python

import litellm

response = litellm.completion(
    model="custom_openai/gpt-5.4",
    api_base="https://api.tokenlab.sh/v1",
    api_key="sk-your-tokenlab-key",
    messages=[{"role": "user", "content": "Summarize this repo."}]
)

Boas práticas

  • Trate o TokenLab primeiro como amontante custom_openai
  • Coloque o LiteLLM na frente apenas quando realmente precisar de uma camada extra de passagem
  • Não presuma automaticamente todos os detalhes nativos do fornecedor em uma rota compatível com OpenAI

Nesta página