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:8787 bzw. intern http://headroom:8787).
    • Verwendet das offizielle Multi-Arch-Image ghcr.io/headroomlabs-ai/headroom:main oder kann alternativ via Dockerfile.headroom lokal gebaut werden.
    • Ermöglicht ML-basierte und strukturelle Prompt-Kompression direkt im lokalen Stack ohne Cloud-Abhängigkeit.
  • 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.
  • 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

  1. Umgebungsvariablen konfigurieren:

    cp .env.example .env
    

    Öffne .env und trage deine Werte ein:

    • LITELLM_MASTER_KEY & LITELLM_SALT_KEY
    • UI_USERNAME & UI_PASSWORD (für den Login in die Web-UI)
    • HEADROOM_API_KEY (und optional HEADROOM_API_BASE, Standard: https://api.headroom.ai)
    • Deine LLM-Provider API-Keys (z.B. OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.)
  2. Container starten:

    docker compose up -d
    
  3. Web-UI öffnen:

    • URL: http://localhost:4000/ui (oder http://<server-ip>:4000/ui)
    • Logge dich mit UI_USERNAME und UI_PASSWORD oder dem LITELLM_MASTER_KEY ein.

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 KeysCreate New Key (oder bestehenden Key bearbeiten).
    • Wähle im Feld Guardrails den Eintrag headroom aus, um die Kompression für diesen Key zu erzwingen.
  • Teams:
    • Gehe auf TeamsCreate Team (oder bestehendes Team bearbeiten).
    • Wähle unter Guardrails headroom aus, damit alle Keys dieses Teams automatisch komprimiert werden.
  • Modelle:
    • Unter Models / Add Model kann guardrails: ["headroom"] direkt an spezifische Modelle gebunden werden.
  • Guardrails-Übersicht:
    • Unter Guardrails in der Web-UI siehst du alle registrierten Guardrails inklusive headroom und deren Status.

Konfigurationsdateien

  • docker-compose.yaml: Definiert die Services litellm, headroom, db (Postgres), redis und prometheus.
  • 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.
S
Description
Eine einfache docker-compose um LiteLLM zu starten.
Readme MIT
48 KiB