Large Language Model (LLM)
Ein KI-Modell, das auf riesigen Textmengen trainiert wurde und menschenähnliche Sprache verstehen und generieren kann.
Ein System, das eingehende LLM-Anfragen basierend auf Komplexität, Kosten oder Anforderungen automatisch an das optimale Modell weiterleitet – für bessere Performance bei geringeren Kosten.
GPT-5 kostet deutlich mehr als GPT-5-mini. Aber braucht jede Anfrage das stärkste Modell? Eine einfache FAQ-Antwort, eine kurze Zusammenfassung oder eine Klassifizierungsaufgabe – das kann ein kleines Modell genauso gut.
Ein LLM Router analysiert jede eingehende Anfrage und entscheidet: Welches Modell ist gut genug und gleichzeitig günstig? Das Ergebnis: Gleiche oder bessere Gesamtqualität bei deutlich geringeren Kosten.
Routing-Strategien:
| Strategie | Funktionsweise | Vorteil |
|---|---|---|
| Regelbasiert | Token-Länge, Keywords | Einfach, vorhersehbar |
| Classifier | ML-Modell schätzt Komplexität | Genauer |
| Cascade | Klein → Groß bei Unsicherheit | Qualitätssicherung |
| Cost-based | Günstigstes Modell mit Mindestqualität | Maximale Ersparnis |
import litellm
from litellm import Router
router = Router(
model_list=[
{
"model_name": "fast-model",
"litellm_params": {
"model": "gpt-5-mini",
"api_key": os.getenv("OPENAI_API_KEY"),
},
},
{
"model_name": "powerful-model",
"litellm_params": {
"model": "claude-sonnet-4-6",
"api_key": os.getenv("ANTHROPIC_API_KEY"),
},
},
],
routing_strategy="cost-based-routing",
)
# Einfache Anfrage → günstiges Modell
response = await router.acompletion(
model="fast-model",
messages=[{"role": "user", "content": "Was ist die Hauptstadt von Frankreich?"}],
)
def route_request(prompt: str) -> str:
token_count = len(prompt.split())
has_code = "```" in prompt or "def " in prompt
needs_reasoning = any(w in prompt.lower() for w in ["analysiere", "vergleiche", "erkläre warum"])
if token_count > 2000 or has_code or needs_reasoning:
return "gpt-5" # Komplex → starkes Modell
elif token_count > 500:
return "gpt-5-mini" # Mittel → günstiges Modell
else:
return "gpt-5-mini" # Einfach → günstigstes Modell
router = Router(
model_list=[...],
fallbacks=[
{"gpt-5": ["claude-sonnet-4-6"]}, # OpenAI down → Anthropic
{"claude-sonnet-4-6": ["gpt-5"]},
],
context_window_fallbacks=[
{"gpt-5": ["claude-sonnet-4-6"]}, # Context zu lang → größeres Fenster (1M)
],
) Ein LLM Router ist wie ein Triagesystem in der Notaufnahme: Einfache Fälle (Pflaster kleben) gehen zur Krankenschwester, mittlere Fälle zum Allgemeinmediziner, komplexe Fälle zum Spezialisten. Nicht jede Anfrage braucht den teuersten Experten.
Leitet Anfragen basierend auf Komplexität, Kosten oder Latenz an verschiedene Modelle
Einfache Anfragen → kleines, günstiges Modell; komplexe → großes, leistungsstarkes Modell
Kann Kosten um 50–80% reduzieren ohne messbare Qualitätseinbußen
Kostenoptimierung
FAQ-Anfragen an GPT-5-mini, komplexe Analysen an GPT-5 – automatisch und transparent
Latenz-Optimierung
Zeitkritische Anfragen an schnelle Modelle, Qualitätskritische an leistungsstarke
Fallback-Strategie
Wenn OpenAI nicht erreichbar ist, automatisch auf Anthropic oder lokale Modelle ausweichen
Verschiedene Strategien: Regelbasiert (Anfragen unter X Tokens → kleines Modell), Classifier-basiert (ML-Modell schätzt Komplexität), Cost-based (günstigstes Modell das die Qualitätsanforderung erfüllt), oder Cascade (erst kleines Modell, bei Unsicherheit großes).
LiteLLM ist eine Open-Source-Bibliothek, die eine einheitliche OpenAI-kompatible API für über 100 LLM-Provider bereitstellt. Statt für jeden Provider eigenen Code zu schreiben, nutzt man immer dieselbe API – LiteLLM übersetzt die Anfragen. Es bietet auch Routing, Fallbacks, Caching und Kostentracking.
Bei guter Konfiguration kaum. Studien zeigen, dass 40–60% der typischen LLM-Anfragen von kleineren Modellen genauso gut beantwortet werden. Der Schlüssel ist, die Grenze richtig zu ziehen – und das Routing-System regelmäßig zu evaluieren.