Was LiteLLM macht
- Das SDK ist eine einzige Python-Funktion,
completion(), die jeden Anbieter im OpenAI-Format aufruft. Das Präfix im Modellnamen bestimmt den Anbieter:openai/steht für jede OpenAI-kompatible API. - Der Proxy ist ein Server, den du selbst betreibst, standardmäßig auf
http://localhost:4000. Apps rufen ihn im Format von OpenAI oder Anthropic auf, und er ergänzt vor deinen Anbietern Keys, Budgets, Logging und Fallbacks.
Den Proxy einrichten
- Installiere ihn in einer virtuellen Umgebung. LiteLLM 1.106 braucht Python 3.10 oder neuer.
python -m venv .venvsource .venv/bin/activate # Windows: .venv\Scripts\activatepip install "litellm[proxy]"- Schreibe die config.yaml. Das ist die Datei, die wir getestet haben: DeepSeek V4.1 Flash über den OpenAI-kompatiblen Endpoint, Claude Sonnet 5.5 über den Anthropic-Provider von LiteLLM und ein Wildcard-Eintrag, der alle anderen Modelle als
zurelay/<model ID>erreichbar macht. Diemodel_info-Preise sind die aktuellen von Zurelay.
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: truelitellm_settings: use_chat_completions_url_for_anthropic_messages: true check_provider_endpoint: truegeneral_settings: master_key: os.environ/LITELLM_MASTER_KEY- Starte ihn mit deinem Zurelay-Key und einem eigenen Master-Key. Clients senden den Master-Key; LiteLLM erwartet Keys, die mit
sk-beginnen.
export ZURELAY_API_KEY="zr_live_..."export LITELLM_MASTER_KEY="sk-choose-a-long-random-key"litellm --config config.yaml- Ruf ihn auf wie jede OpenAI-kompatible API, mit dem
model_nameaus der Config.
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"}]}'Oder nutze das Python-SDK
Ohne den Proxy übergibst du Base-URL und Key bei jedem Aufruf. Für Claude über den anthropic/-Provider von LiteLLM lautet die Base-URL https://api.zurelay.com, ohne /v1.
import osfrom litellm import completionresponse = 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 über LiteLLM
Der Proxy bedient auch die Messages API von Anthropic, sodass Claude Code mit jedem Modell aus der Config laufen kann. Richte Claude Code auf den Proxy aus und gib die Modelle an, die es verwenden soll:
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"claudeNur für Claude-Modelle brauchst du LiteLLM nicht: Claude Code spricht direkt mit Zurelay, wie Claude-Code-Preise zeigt. Für einen Router mit Weboberfläche statt YAML-Datei siehe Claude Code Router.
Die Einstellungen, an denen es gescheitert ist
- Claude Code ist mit DeepSeek gescheitert mit
Unknown request URL: POST /v1/responses. Beiopenai/-Modellen übersetzt LiteLLM Anthropic-Messages-Anfragen in Aufrufe der Responses API von OpenAI, die Zurelay nicht anbietet. Nach einem Fehler setzte LiteLLM das Modell außerdem in den Cooldown, sodass die nächsten Anfragen429 No deployments available for selected modelbekamen.use_chat_completions_url_for_anthropic_messages: trueunterlitellm_settingsleitet sie stattdessen an Chat Completions. - Clients der Responses API scheiterten genauso. Eine Anfrage an
/v1/responsesdes Proxys oderlitellm.responses()im SDK ging unverändert an den Upstream, bisuse_chat_completions_api: trueam Modell gesetzt war. - Claude mit /v1 in der Base-URL rief
/v1/v1/messagesauf und bekam einen 404. Deranthropic/-Provider hängt/v1/messagesselbst an; beiopenai/-Modellen brauchst du/v1. - Die Wildcard listete die falschen Modelle. Mit
openai/*zeigte/v1/modelsdes Proxys die in LiteLLM eingebaute Liste mit 216 OpenAI-Namen (gpt-3.5-turbo,babbage-002) und keinen von Zurelay. Anfragen mit echten Modell-IDs funktionierten weiterhin.check_provider_endpoint: truesorgte dafür, dass stattdessen die Modelle von Zurelay gelistet wurden. - Unter Windows ist der Proxy beim Start abgestürzt mit
UnicodeEncodeError: 'charmap' codec can't encode characters, als seine Ausgabe in eine Logdatei ging: Das Banner enthält Zeichen, die in der Standard-Codepage fehlen. Der UTF-8-Modus von Python hat das behoben:PYTHONUTF8=1in der Umgebung oderpython -X utf8.
Kosten-Tracking
Das Spend-Tracking von LiteLLM berechnet jede Anfrage anhand der eigenen Preisliste. Bei bekannten Modellen ist das der Listenpreis des Labs: Unsere Claude-Sonnet-5.5-Anfrage wurde zum Tarif von Anthropic gezählt, rund 2,5-mal so hoch wie bei Zurelay. Bei unbekannten Modellen, etwa DeepSeek V4.1 Flash hinter openai/, erfasst es gar keine Kosten. Die model_info-Zeilen in der Config oben beheben beides: Mit ihnen stimmten die Kosten, die LiteLLM im x-litellm-response-cost-Header zurückgab, mit unserer Rechnung überein.
Was es in unserem Test gekostet hat
Über den Proxy schrieb Claude Code mit DeepSeek V4.1 Flash eine kleine Python-Datei und bearbeitete sie dann mit Claude Sonnet 5.5. Beide nutzten die Datei-Tools von Claude Code korrekt. Zurelay berechnete:
| Modell | Aufgabe | Anfragen | Prompt-Token (aus dem Cache) | Kosten |
|---|---|---|---|---|
| DeepSeek V4.1 Flash | hello.py erstellen | 3 | 39,725 (25,845) | $0.0005 |
| Claude Sonnet 5.5 | hello.py bearbeiten | 3 | 51,310 (32,523) | $0.023 |
Jede Anfrage enthielt die Anweisungen und Tool-Definitionen von Claude Code, 13.000 bis 18.000 Tokens, und ab der zweiten Anfrage wurde das meiste davon aus dem Cache gelesen. Die eigene Schätzung von Claude Code für die Claude-Aufgabe lag bei $0.054, zu den Listenpreisen von Anthropic. Die SDK-Aufrufe davor, jeweils eine kurze Antwort, kosteten $0.000006 bei DeepSeek und $0.0003 bei Claude Sonnet 5.5.
Gut zu wissen
- Der Proxy lauscht auf allen Netzwerkschnittstellen (
0.0.0.0), sofern du nicht--host 127.0.0.1übergibst. Lass den Master-Key gesetzt, sonst kann jeder in deinem Netzwerk dein Guthaben verbrauchen. - Bei Wildcard-Modellen steht nach dem Präfix die echte ID:
zurelay/gpt-6.1-terrain einer Anfrage wird bei Zurelay zugpt-6.1-terra. - Installiere unter Windows in einen kurzen Ordnerpfad. Eine virtuelle Umgebung tief in einem Temp-Ordner scheiterte mit
ModuleNotFoundError: No module named 'openai.types...', weil manche Dateipfade das 260-Zeichen-Limit von Windows überschritten.
Preise für die Modelle, die du dahinter einsetzen würdest
Pro 1M Token: der Listenpreis des Anbieters und der Preis bei Zurelay:
| Modell | Input | Output | Bei Zurelay (Input / Output) |
|---|---|---|---|
| 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 |
Getestet am 3. November 2026 mit LiteLLM 1.106.6 unter Python 3.12 und Claude Code 2.1.317, unter Windows, gegen die API von Zurelay. Die Kurzanleitung steht in LiteLLM in der Doku. Die eigene Dokumentation von LiteLLM: OpenAI-kompatible Endpoints und Proxy-Config.