main
LiteLLM Docker Compose Setup
Dieses Projekt stellt ein vollständiges Setup für den LiteLLM Proxy mit PostgreSQL-Datenbank (für UI/Key-/Team-Management), Redis (für Caching/Routing), Prometheus (Monitoring) und Headroom Prompt-Kompression bereit.
Funktionen
- LiteLLM Database & Admin UI: Verwaltung von Modellen, API-Keys, Benutzern, Teams und Guardrails über das Webinterface (
http://localhost:4000/ui). - Headroom Proxy Service:
- Eigener Headroom Proxy-Container (
http://localhost:8787bzw. internhttp://headroom:8787). - Verwendet das offizielle Multi-Arch-Image
ghcr.io/headroomlabs-ai/headroom:mainoder kann alternativ viaDockerfile.headroomlokal gebaut werden. - Ermöglicht ML-basierte und strukturelle Prompt-Kompression direkt im lokalen Stack ohne Cloud-Abhängigkeit.
- Eigener Headroom Proxy-Container (
- Headroom Prompt-Kompression in LiteLLM:
- Global standardmäßig für alle Anfragen aktiviert (
default_guardrails: ["headroom"]). - Als Guardrail (
headroom) definiert, sodass es in der LiteLLM Web-UI sichtbar ist und spezifischen API-Keys, Teams oder Modellen zugewiesen oder angepasst werden kann.
- Global standardmäßig für alle Anfragen aktiviert (
- PostgreSQL: Persistente Speicherung aller Modelle, Spend-Logs, Teams und Guardrail-Zuweisungen.
- Redis: Caching von Antworten und Rate-Limiting.
- Prometheus: Metriken-Erfassung unter
http://localhost:9090.
Schnellstart
-
Umgebungsvariablen konfigurieren:
cp .env.example .envÖffne
.envund trage deine Werte ein:LITELLM_MASTER_KEY&LITELLM_SALT_KEYUI_USERNAME&UI_PASSWORD(für den Login in die Web-UI)HEADROOM_API_KEY(und optionalHEADROOM_API_BASE, Standard:https://api.headroom.ai)- Deine LLM-Provider API-Keys (z.B.
OPENAI_API_KEY,ANTHROPIC_API_KEY, etc.)
-
Container starten:
docker compose up -d -
Web-UI öffnen:
- URL:
http://localhost:4000/ui(oderhttp://<server-ip>:4000/ui) - Logge dich mit
UI_USERNAMEundUI_PASSWORDoder demLITELLM_MASTER_KEYein.
- URL:
Headroom-Kompression verwenden & zuweisen
1. Globale Standard-Aktivierung ("für alles")
In config.yaml ist Headroom unter litellm_settings als Standard-Guardrail hinterlegt:
litellm_settings:
default_guardrails: ["headroom"]
Dadurch wird Headroom automatisch bei allen eingehenden Anfragen zur Prompt-Kompression angewendet.
2. Zuweisung und Verwaltung über die Web-UI
Da headroom in config.yaml unter guardrails: definiert ist, steht es in der LiteLLM Web-UI an folgenden Stellen zur Verfügung:
- API-Keys:
- Gehe in der Web-UI auf API Keys → Create New Key (oder bestehenden Key bearbeiten).
- Wähle im Feld Guardrails den Eintrag
headroomaus, um die Kompression für diesen Key zu erzwingen.
- Teams:
- Gehe auf Teams → Create Team (oder bestehendes Team bearbeiten).
- Wähle unter Guardrails
headroomaus, damit alle Keys dieses Teams automatisch komprimiert werden.
- Modelle:
- Unter Models / Add Model kann
guardrails: ["headroom"]direkt an spezifische Modelle gebunden werden.
- Unter Models / Add Model kann
- Guardrails-Übersicht:
- Unter Guardrails in der Web-UI siehst du alle registrierten Guardrails inklusive
headroomund deren Status.
- Unter Guardrails in der Web-UI siehst du alle registrierten Guardrails inklusive
Konfigurationsdateien
docker-compose.yaml: Definiert die Serviceslitellm,headroom,db(Postgres),redisundprometheus.Dockerfile.headroom: Dockerfile zum optionalen lokalen Bauen des Headroom-Proxy-Images.config.yaml: LiteLLM Proxy-Konfiguration inklusive Caching, Routing, Logging und Headroom-Guardrail..env.example: Vorlage für Passwörter, Master-Keys und Provider/Headroom-Konfiguration.prometheus.yaml: Konfiguration für das Scraping der LiteLLM-Metriken.