LITELLM · TECH
LiteLLM: ein Gateway für 100+ LLM-Anbieter mit einer einzigen API
LiteLLM ist ein Open-Source-Proxy, der OpenAI, Anthropic, Mistral, lokale Modelle und weitere Anbieter hinter einer OpenAI-kompatiblen API bündelt.
Recherche & Faktencheck: DuneDive LLC · Stand: 2026-05
Was ist LiteLLM?
LiteLLM ist ein Open-Source-Projekt von BerriAI (Apache-2.0-Lizenz), das einen einheitlichen Zugangspunkt vor mehr als 100 LLM-Anbieter setzt. Egal ob OpenAI, Anthropic, Mistral, Cohere, Google Vertex, Azure, AWS Bedrock, DeepSeek, Groq, Perplexity oder eine lokale Ollama-Instanz – jede Anfrage geht über die gleiche OpenAI-kompatible REST-Schnittstelle (POST /v1/chat/completions). Die Anwendung im Code ändert sich nicht, wenn ein Anbieter ausgetauscht wird.
LiteLLM läuft entweder als Python-Library im Anwendungs-Prozess oder – in produktiven Setups – als eigenständiger Proxy-Server (Docker-Image ghcr.io/berriai/litellm-stable). Der Proxy-Modus bringt zusätzliche Funktionen mit: virtuelle API-Keys pro Team, Budget-Limits, Fallback-Ketten, Rate-Limiting, Caching, sowie Observability-Hooks für Langfuse, Helicone, Datadog und PostgreSQL-Logging. Version 1.50+ ist Stand Mai 2026 stabil; das Projekt ist seit 2023 aktiv und hat über 14.000 GitHub-Sterne.
Auf der fairlane.systems-Infrastruktur läuft LiteLLM unter Port 4100 und bündelt aktuell 24 Modelle aus 8 Anbietern. Jede produktive Anwendung – vom Mandanten-Chat über n8n-Workflows bis zu RAG-Anfragen – geht ausschliesslich über diesen Proxy. Das ist die Basis für Routing nach Datenschutz-Stufe, für Kostenkontrolle und für Anbieter-Wechsel ohne Code-Änderung.
Warum es wichtig ist
Wer LLM-Anwendungen direkt gegen die Provider-SDKs schreibt, baut sich technische Schulden in jedes Modul. Drei Probleme treten in jedem grösseren Setup auf, und LiteLLM löst sie an einer Stelle.
Erstens: Lock-in. OpenAI, Anthropic und Mistral haben unterschiedliche SDKs, unterschiedliche Token-Limits, unterschiedliche Fehler-Codes. Eine Code-Basis, die alle drei direkt anspricht, hat drei Fehlerquellen statt einer. Wenn der bevorzugte Anbieter teurer wird oder ausfällt, ist der Wechsel ein Refactor, kein Konfigurations-Eintrag. Mit LiteLLM ist der Provider eine Modell-Konfiguration in einer YAML – Anwendung bleibt unverändert.
Zweitens: Datenschutz-Routing. Eine CH-Treuhand darf Mandanten-PII nicht an US-Provider senden, kann aber anonymisierte Recherche-Anfragen problemlos an GPT-4o stellen. Ohne Gateway ist diese Regel im Code verteilt; mit LiteLLM steht sie zentral. Modell-Namen wie mistral-eu-secure, claude-haiku-eu oder local-llama markieren die Stufe, der Proxy entscheidet das Routing.
Drittens: Kosten und Beobachtbarkeit. Jeder Provider hat eigene Dashboards, eigene Rechnungs-Frequenz, eigene Modell-Preise. Die Gesamtsicht über alle Anbieter – wer hat wie viel verbraucht, welcher Workflow kostet wie viel – lässt sich ohne Aggregations-Layer nicht erstellen. LiteLLM schreibt jede Anfrage mit Modell, Token-Zählung, Kosten und Latenz in Postgres und exportiert Metriken an Prometheus, sodass Grafana eine einzige Kosten-Sicht pro Mandant zeigen kann.
Wie es funktioniert
Der LiteLLM-Proxy ist eine Python-FastAPI-Anwendung im Docker-Container. Die Konfiguration lebt in einer config.yaml mit drei zentralen Abschnitten: model_list, litellm_settings, general_settings.
Im model_list-Block bekommt jedes Modell einen logischen Namen und eine Provider-Zuordnung. Beispiel: ein Eintrag mit model_name: mistral-eu-secure verweist via litellm_params: model: mistral/mistral-large-latest auf Mistral La Plateforme, einen weiteren Eintrag namens mistral-eu-fallback auf eine Mistral-Instanz in Azure EU. Beide stehen unter dem gleichen logischen Namen in einer Fallback-Gruppe – wenn der erste 5xx zurückgibt, springt der zweite an.
Virtuelle Keys sind das zweite Kern-Feature. Der Proxy speichert Master-API-Keys der Provider intern; nach aussen verteilt er sogenannte Virtual Keys (sk-litellm-...) an Teams, Anwendungen oder einzelne Mandanten. Jeder virtuelle Key hat ein Monats-Budget (z.B. CHF 50 für einen Pilot-Mandanten), eine Modell-Whitelist (z.B. nur mistral-eu-*) und ein Rate-Limit. Überschreitet ein Key sein Budget, blockt der Proxy weitere Anfragen – der Provider-Master-Key bleibt unberührt.
Observability lauft über Callback-Hooks. Bei jeder Antwort feuert der Proxy ein Event an konfigurierte Sinks: Langfuse für Prompt-/Response-Tracing, PostgreSQL für Audit-Log (revisionsfest für Art. 957a OR), Prometheus für Metriken. Das Audit-Log enthält Timestamp, Virtual-Key, Modell, Token-Zahl, Kosten, Hash des Prompts (nicht den Klartext bei Vertraulichkeit) sowie die Antwort-Latenz.
Fallback und Retry werden pro Modellgruppe definiert. Eine typische Konfiguration: drei Versuche mit exponentiellem Backoff, danach Fallback auf das nächste Modell in der Gruppe. Latenz-basiertes Routing (least-busy oder weighted-round-robin) verteilt Last über mehrere Modell-Instanzen.
LiteLLM-Setup in 6 Schritten
- 01Provider-Inventar erstellen: welche LLMs sind im Einsatz, welche API-Keys, welche Modelle pro Anwendungsfall?
- 02config.yaml mit model_list anlegen: jeder logische Modellname mit Provider-Mapping, Fallback-Gruppen, Rate-Limits.
- 03Docker-Compose-Stack starten: LiteLLM-Container auf Port 4100, plus PostgreSQL für Audit-Log und virtuelle Keys.
- 04Master-Admin-Key generieren und virtuelle Keys pro Team/Mandant ausstellen, mit Budget und Modell-Whitelist.
- 05Observability anbinden: Langfuse für Tracing, Prometheus-Scraper für Metriken, Grafana-Dashboard für Kosten pro Mandant.
- 06Anwendungen umstellen: base_url=http://litellm:4100/v1, api_key=sk-litellm-<team>, Modellnamen aus YAML. Tests, dann Schwenk.
Wann LiteLLM einsetzen
LiteLLM lohnt sich, sobald (a) mehr als ein LLM-Anbieter im Spiel ist, (b) mehrere Anwendungen oder Mandanten parallel auf LLMs zugreifen, oder (c) Datenschutz-Stufen geroutet werden müssen.
Konkrete Trigger: eine CH-Treuhand will Mistral-EU für Mandantendaten und GPT-4o für offene Recherche im gleichen Workflow nutzen. Ein KMU pilotiert RAG und Voice-Bot gleichzeitig – beide Anwendungen sollen separate Budgets und separate Modell-Whitelists haben. Ein Büro plant n8n-Automation und einen Chat-Assistenten – beide brauchen Audit-Log und Kosten-Reporting auf Mandanten-Ebene.
Auch für eine einzige Anwendung lohnt sich der Proxy, wenn ein Fallback gewünscht ist. Ein Beispiel: der Mandanten-Chat soll bei Anthropic-Ausfällen automatisch auf Mistral umschalten, ohne dass der Code es merkt. Das geht via LiteLLM in 5 Zeilen YAML; ohne Gateway ist es ein eigenes Stück Code in jedem Service.
Wann NICHT
Bei einer einzelnen, überschaubaren Anwendung mit genau einem Provider und ohne Mandanten-Trennung ist LiteLLM Mehraufwand ohne Mehrwert. Wer in einem Wochenend-Projekt mit der OpenAI-Library arbeitet, braucht keinen Proxy.
Ebenso ungeeignet: extrem latenz-kritische Anwendungen, in denen jede Millisekunde zählt. Der Proxy fügt typischerweise 10-30 ms hinzu – bei Voice-Streaming oder Real-Time-Bots kann das relevant werden. In solchen Fällen lohnt eine direkte Provider-Anbindung mit dediziertem Fallback-Code.
Wer in Azure-only oder AWS-Bedrock-only-Umgebungen lebt, hat dort eigene Gateway-Funktionen (Azure OpenAI Service mit Content Filter, AWS Bedrock mit Guardrails). Wenn die Anforderung dort vollständig abgedeckt ist, ist eine weitere Proxy-Schicht redundant.
Vor- und Nachteile
STÄRKEN
- Ein API-Surface für alle Anbieter – Anwendungs-Code bleibt stabil bei Provider-Wechsel
- Virtuelle Keys mit Budget, Whitelist und Rate-Limit pro Team oder Mandant
- Zentrales Audit-Log und Kosten-Reporting über alle Anbieter
- Fallback-Ketten und Latenz-Routing per YAML-Konfiguration
SCHWÄCHEN
- Zusätzliche Latenz von 10-30 ms pro Request
- Eine weitere Komponente im Stack – Monitoring und Updates nötig
- YAML-Konfiguration kann bei vielen Modellen unübersichtlich werden – Versionierung wichtig
- Bei Single-Provider-Einsatz oder Single-App-Projekt Mehraufwand ohne Nutzen
Häufige Fragen
Welchen Overhead hat der Proxy?
Typisch 10-30 ms zusätzliche Latenz pro Anfrage gegenüber dem direkten Provider-Call, plus minimaler CPU-Aufwand. Bei produktiver Last (mehrere hundert Anfragen pro Stunde) reicht ein 2-vCPU-Container; bei tausenden Anfragen pro Minute skaliert man horizontal hinter einen Load-Balancer.
Kann LiteLLM auch Embeddings und Bild-Modelle routen?
Ja. Der Proxy unterstützt /v1/embeddings (OpenAI, Cohere, Voyage, lokale Modelle), /v1/audio/transcriptions (Whisper, Deepgram), /v1/images/generations (DALL-E, Stable Diffusion) und /v1/chat/completions mit Vision. Auch Re-Ranking-Endpoints sind abgedeckt.
Ist LiteLLM revisionsfest für Art. 957a OR?
Der Proxy schreibt jeden Request mit Timestamp, Modell, Token, Kosten und Antwort-Hash in PostgreSQL. Wenn diese Tabelle WORM-gesichert ist (z.B. über Append-Only-Tablespace plus regelmässigen Hash-Anchor in einem externen Speicher), erfüllt sie die OR-Anforderungen für revisionsfeste Geschäftskorrespondenz. Den Hash-Anchor liefern wir im Managed Service.
Verwandte Themen
Quellen
PASSEND ZU IHREM STACK?