Proxy e SDK do LiteLLM com DeepSeek, Claude e qualquer API compatível com OpenAI

O LiteLLM é um SDK Python e servidor proxy gratuito e de código aberto que coloca uma única API no estilo OpenAI na frente de vários provedores de modelos. Configuramos o LiteLLM com a API compatível com OpenAI da Zurelay, rodamos o SDK, o proxy e o Claude Code por ele e anotamos cada configuração que deu problema.

· Guias da Zurelay · Preços atualizados em tempo real

O que o LiteLLM faz

  • O SDK é uma função Python, completion(), que chama qualquer provedor no formato da OpenAI. O prefixo no nome do modelo define o provedor: openai/ significa qualquer API compatível com OpenAI.
  • O proxy é um servidor que você mesmo hospeda, em http://localhost:4000 por padrão. Os apps o chamam no formato da OpenAI ou da Anthropic, e ele adiciona chaves, orçamentos, logs e fallbacks na frente dos seus provedores.

Configure o proxy

  1. Instale em um ambiente virtual. O LiteLLM 1.106 exige Python 3.10 ou superior.
terminal
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install "litellm[proxy]"
  1. Escreva o config.yaml. Este é o arquivo que testamos: DeepSeek V4.1 Flash pelo endpoint compatível com OpenAI, Claude Sonnet 5.5 pelo provedor Anthropic do LiteLLM e um curinga que alcança todos os outros modelos como zurelay/<model ID>. Os preços de model_info são os atuais da Zurelay.
config.yaml
model_list:
- model_name: deepseek-v4.1-flash
litellm_params:
model: openai/deepseek-v4.1-flash
api_base: https://api.zurelay.com/v1
api_key: os.environ/ZURELAY_API_KEY
use_chat_completions_api: true
model_info:
input_cost_per_token: 0.00000003
output_cost_per_token: 0.00000012
cache_read_input_token_cost: 0.00000000074
- model_name: claude-sonnet-5-5
litellm_params:
model: anthropic/claude-sonnet-5-5
api_base: https://api.zurelay.com
api_key: os.environ/ZURELAY_API_KEY
model_info:
input_cost_per_token: 0.00000079
output_cost_per_token: 0.00000395
cache_read_input_token_cost: 0.000000079
- model_name: zurelay/*
litellm_params:
model: openai/*
api_base: https://api.zurelay.com/v1
api_key: os.environ/ZURELAY_API_KEY
use_chat_completions_api: true
litellm_settings:
use_chat_completions_url_for_anthropic_messages: true
check_provider_endpoint: true
general_settings:
master_key: os.environ/LITELLM_MASTER_KEY
  1. Inicie-o com sua chave do Zurelay e uma chave mestra própria. Os clientes enviam a chave mestra; o LiteLLM espera chaves que começam com sk-.
terminal
export ZURELAY_API_KEY="zr_live_..."
export LITELLM_MASTER_KEY="sk-choose-a-long-random-key"
litellm --config config.yaml
  1. Faça a chamada como em qualquer API compatível com a OpenAI, usando o model_name da configuração.
terminal
curl http://localhost:4000/v1/chat/completions \
-H "Authorization: Bearer $LITELLM_MASTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "deepseek-v4.1-flash", "messages": [{"role": "user", "content": "Hello"}]}'

Ou use o SDK Python

Sem o proxy, passe a URL base e a chave em cada chamada. Para o Claude pelo provedor anthropic/ do LiteLLM, a URL base é https://api.zurelay.com, sem /v1.

app.py
import os
from litellm import completion
response = completion(
model="openai/deepseek-v4.1-flash",
api_base="https://api.zurelay.com/v1",
api_key=os.environ["ZURELAY_API_KEY"],
messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)
claude = completion(
model="anthropic/claude-sonnet-5-5",
api_base="https://api.zurelay.com",
api_key=os.environ["ZURELAY_API_KEY"],
messages=[{"role": "user", "content": "Hello"}],
)

Claude Code via LiteLLM

O proxy também atende a Messages API da Anthropic, então o Claude Code pode rodar com qualquer modelo da configuração. Aponte o Claude Code para o proxy e indique os modelos que ele deve usar:

terminal
export ANTHROPIC_BASE_URL="http://localhost:4000"
export ANTHROPIC_AUTH_TOKEN="$LITELLM_MASTER_KEY"
export ANTHROPIC_MODEL="deepseek-v4.1-flash"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-sonnet-5-5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5-5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4.1-flash"
claude

Só para modelos Claude você não precisa do LiteLLM: o Claude Code se conecta direto ao Zurelay, como mostra Preços do Claude Code. Para um roteador com página web em vez de arquivo YAML, veja o Claude Code Router.

Os ajustes que causaram falhas

  1. O Claude Code falhou com o DeepSeek com Unknown request URL: POST /v1/responses. Para modelos openai/, o LiteLLM converte requisições da Messages API da Anthropic em chamadas à Responses API da OpenAI, que o Zurelay não atende. Depois de uma falha, o LiteLLM também colocou o modelo em cooldown, e as requisições seguintes receberam 429 No deployments available for selected model. use_chat_completions_url_for_anthropic_messages: true em litellm_settings envia essas requisições para o Chat Completions.
  2. Clientes da Responses API falharam do mesmo jeito. Uma requisição para /v1/responses do proxy, ou litellm.responses() no SDK, seguia sem alterações para o provedor até que use_chat_completions_api: true fosse definido no modelo.
  3. Claude com /v1 na URL base chamou /v1/v1/messages e recebeu um 404. O provedor anthropic/ adiciona /v1/messages sozinho; já os modelos openai/ precisam de /v1.
  4. O curinga listou os modelos errados. Com openai/*, o /v1/models do proxy mostrou a lista interna do LiteLLM com 216 nomes da OpenAI (gpt-3.5-turbo, babbage-002) e nenhum do Zurelay. Requisições com IDs reais de modelo continuaram funcionando. check_provider_endpoint: true fez a lista mostrar os modelos do Zurelay.
  5. No Windows, o proxy travava na inicialização com UnicodeEncodeError: 'charmap' codec can't encode characters quando a saída ia para um arquivo de log: o banner tem caracteres que a página de código padrão não suporta. O modo UTF-8 do Python resolveu: PYTHONUTF8=1 no ambiente, ou python -X utf8.

Acompanhamento de custos

O controle de gastos do LiteLLM calcula o preço de cada requisição a partir de uma lista própria. Para os modelos que ele conhece, usa o preço de tabela do laboratório: ele contou nossa requisição do Claude Sonnet 5.5 pela tarifa da Anthropic, cerca de 2,5 vezes o que o Zurelay cobrou. Para modelos que ele não conhece, como o DeepSeek V4.1 Flash por trás de openai/, não registra custo algum. As linhas model_info da configuração acima resolvem os dois casos: com elas, o custo que o LiteLLM retornou no cabeçalho x-litellm-response-cost bateu com a nossa cobrança.

Quanto custou no nosso teste

Pelo proxy, o Claude Code escreveu um pequeno arquivo Python no DeepSeek V4.1 Flash e depois o editou no Claude Sonnet 5.5. Os dois usaram corretamente as ferramentas de arquivo do Claude Code. O Zurelay cobrou:

ModeloTarefaRequisiçõesTokens de prompt (em cache)Custo
DeepSeek V4.1 FlashCriar hello.py339,725 (25,845)$0.0005
Claude Sonnet 5.5Editar hello.py351,310 (32,523)$0.023

Cada requisição levava as instruções e as definições de ferramentas do Claude Code, de 13.000 a 18.000 tokens, e a partir da segunda requisição a maior parte disso vinha do cache. A estimativa do próprio Claude Code para a tarefa no Claude foi de $0.054, com os preços de tabela da Anthropic. As chamadas de SDK anteriores, com uma resposta curta cada, custaram $0.000006 no DeepSeek e $0.0003 no Claude Sonnet 5.5.

O que você precisa saber

  • O proxy escuta em todas as interfaces de rede (0.0.0.0), a menos que você passe --host 127.0.0.1. Mantenha a chave mestra definida, ou qualquer pessoa na sua rede poderá gastar o seu crédito.
  • Nos modelos com curinga, o ID real vem depois do prefixo: zurelay/gpt-6.1-terra em uma requisição vira gpt-6.1-terra no Zurelay.
  • No Windows, instale em um caminho de pasta curto. Um ambiente virtual dentro de uma pasta temporária muito profunda falhou com ModuleNotFoundError: No module named 'openai.types...' porque alguns caminhos de arquivo passaram do limite de 260 caracteres do Windows.

Preços dos modelos que você usaria com ele

Por 1M tokens, o preço de tabela do laboratório e o da Zurelay:

ModeloEntradaSaídaNa Zurelay (entrada / saída)
DeepSeek V4.1 Flash$0.30$1.20$0.03 / $0.12
Claude Sonnet 5.5$2.00$10.00$0.79 / $3.95
Claude Opus 5.5$4.00$20.00$1.40 / $7.00
GPT-6.1 Terra$1.00$5.00$0.25 / $1.25
Gemini 3.8 Flash$0.75$3.75$0.22 / $1.10
Kimi K3.1 Pro$2.00$10.00$0.80 / $4.00
GLM-5.3$1.40$4.40$0.38 / $1.21

Testado em 3 de novembro de 2026 com LiteLLM 1.106.6 no Python 3.12 e Claude Code 2.1.317, no Windows, com a API do Zurelay. A configuração resumida está em LiteLLM na documentação. Documentação do próprio LiteLLM: Endpoints compatíveis com a OpenAI e configuração do proxy.

Todos os modelos com uma única chave compatível com OpenAI, abaixo do preço de tabela. Créditos a partir de $10, sem assinatura.Obtenha sua chave de API

Perguntas frequentes

Perguntas frequentes

Mais alguma dúvida? Fale com nossa equipe e responderemos por e-mail.

O que é o LiteLLM?

Um SDK Python e servidor proxy de código aberto da BerriAI. O SDK chama vários provedores de modelos por uma única função no estilo OpenAI; o proxy é um servidor que você mesmo executa, chamado pelos apps no formato da OpenAI ou da Anthropic, com chaves, orçamentos, logs e fallbacks na frente dos seus provedores.

O LiteLLM é gratuito?

Sim. O SDK e o proxy são de código aberto sob a licença MIT, exceto os recursos enterprise da pasta enterprise do repositório, que têm licença própria. Você paga apenas os provedores para os quais envia requisições.

Como uso uma API compatível com a OpenAI no LiteLLM?

Coloque o prefixo openai/ no nome do modelo e defina api_base como a URL base do provedor, incluindo /v1, por exemplo model: openai/deepseek-v4.1-flash com api_base: https://api.zurelay.com/v1. A chave vai em api_key, ou em os.environ/NAME no config.yaml do proxy.

Por que o LiteLLM chama /v1/responses?

Para modelos openai/, o LiteLLM envia as requisições da Messages API da Anthropic (do Claude Code, por exemplo) e da Responses API para a Responses API do provedor. Provedores que atendem apenas Chat Completions respondem 404. Defina use_chat_completions_url_for_anthropic_messages: true em litellm_settings e use_chat_completions_api: true no modelo.

Como uso o Claude Code com o LiteLLM?

Execute o proxy do LiteLLM com os modelos do config.yaml, defina ANTHROPIC_BASE_URL como http://localhost:4000, ANTHROPIC_AUTH_TOKEN como a master key do proxy e ANTHROPIC_MODEL, junto com as três variáveis ANTHROPIC_DEFAULT_*_MODEL, com nomes de modelos do config, e rode claude.

Por que o custo do LiteLLM está errado?

O LiteLLM calcula o preço das requisições a partir da própria lista: o preço de tabela do laboratório para os modelos que ele conhece e nada para os que não conhece. Adicione input_cost_per_token, output_cost_per_token e cache_read_input_token_cost em model_info para cada modelo e acompanhe o que seu provedor realmente cobra.

Qual porta o proxy do LiteLLM usa?

A porta 4000, em todas as interfaces de rede (0.0.0.0), a menos que você passe --host. Mude a porta com --port ou com a variável de ambiente PORT.

Mais guias

Pare de pagar o preço de tabela.
Comece a economizar hoje.

Crie uma chave em segundos, direcione o SDK que você já usa para a Zurelay e pague até 90% menos em cada requisição desde o primeiro token.