LiteLLM Prompt Caching Optimierung
Um die Kosten und Suchqualität meiner KI-Infrastruktur zu optimieren, habe ich mein Setup auf Architektur- und Infrastrukturebene grundlegend überarbeitet. Der Fokus lag dabei auf effizientem Prompt-Caching im LLM-Gateway, einem Upgrade der Embeddings und der Absicherung meiner API-Keys.
Prompt-Caching im LLM-Gateway
Da meine automatisierten Cron-Jobs bei jedem Aufruf denselben umfangreichen System-Prompt an das Sprachmodell senden, entstanden hohe redundante Token-Kosten. Um das zu lösen, habe ich die Konfiguration meines zentralen LLM-Gateways (LiteLLM) angepasst. Zunächst habe ich die Time-to-Live (TTL) des Caches von einer auf 24 Stunden erhöht, da sich Basis-Kontexte in Hintergrund-Jobs selten untertägig ändern.
Zusätzlich habe ich die supported_call_types explizit definiert und – als wichtigsten Hebel – das native Provider-Caching aktiviert. Das Gateway reicht nun identische Prompt-Präfixe direkt an die nativen Caching-Mechanismen moderner Modelle (Anthropic, DeepSeek, Gemini) weiter. Das Ergebnis: Eine massiv gestiegene Cache-Trefferquote, sinkende API-Kosten und geringere Latenzen.
Neue Embeddings und Secret-Management
Da ältere Embedding-Modelle komplexe semantische Zusammenhänge oft nur unzureichend erfassen, habe ich meine Vektordatenbank auf die neueste preview-Version des Gemini-Embedding-Modells (768 Dimensionen) migriert. Dafür mussten knapp 6.000 bestehende Notizen per Batch-Skript neu vektorisiert werden. Dabei fiel auf, dass die .env-Dateien vor den API-Calls nicht sauber geladen wurden – ein Fix im CLI-Entrypoint sorgt nun für einen stabilen Re-Embedding-Prozess.
Parallel dazu habe ich das Sicherheitsrisiko verstreuter .env-Dateien auf dem VPS behoben. Statt API-Keys lokal auf verschiedenen Servern abzulegen, setze ich nun einen selbstgehosteten Passwort-Manager ein, um alle Zugangsdaten zentral zu verwalten.
Erkenntnisse für eigene Projekte:
* Ordne statische Prompt-Teile ganz vorne an und konfiguriere dein LLM-Gateway so, dass es natives Provider-Caching nutzt (z. B. mit 24h TTL für Cron-Jobs).
* Evaluiere regelmäßig neue Embedding-Modelle für bessere RAG-Qualität und sorge bei Batch-Verarbeitungen zwingend für robuste .env-Laderoutinen in deinen CLI-Tools.