Wie Sie aufhören, Adapter für neuronale Netze zu schreiben und die Kontrolle über Token-Kosten übernehmen
Kürzlich habe ich die Claude-Integration auf einen aktualisierten Client umgeschrieben und musste dabei nachdenken. Einmal bitten Kunden um die Anbindung von GPT-4o, dann verlangen sie plötzlich Anthropic, und eine Woche später fragt die Finanzabteilung, woher eine mehrere hundert Dollar teure Rechnung für Tests stammt. Jedes Mal muss ich Fehlerbehandlungslogik hinzufügen, Schlüssel verwalten und Token-Ausgaben manuell berechnen.
Diese Routine wird durch LLM Gateway vom Team The Open Co gelöst. Das Projekt dient als einheitliches API-Gateway, das Aufrufe im Standard-OpenAI-Format akzeptiert und sie an die entsprechenden Anbieter weiterleitet.
Eine Anfrage für jedes Modell
Das Kernkonzept ist einfach. Anstatt mehrere SDKs zu integrieren, senden Sie eine einzelne HTTP-Anfrage an ein lokales oder Cloud-Gateway. Der Controller identifiziert automatisch den Zielanbieter, transformiert das Format und gibt die Antwort zurück.
Derzeit werden die wichtigsten Anbieter unterstützt:
- OpenAI
- Anthropic
- Google Vertex AI
- Weitere Dienste mit kompatiblen APIs
So sieht eine Standard-Gateway-Anfrage aus:
curl -X POST https://api.llmgateway.io/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $LLM_GATEWAY_API_KEY" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "Hello, how are you?"}
]
}'
Wenn Sie zu Claude 3.5 Sonnet wechseln müssen, bleibt die JSON-Struktur in Ihrer Anwendung gleich. Nur der Modellname im Request-Body ändert sich.
Kostenverfolgung und Latenzmetriken
Wenn mehrere Dienste oder Entwickler mit neuronalen Netzen arbeiten, wird die Kontrolle über Limits schwierig. Manchmal führt jemand ein Skript mit einem falschen Prompt in einer Endlosschleife aus und verbraucht das Budget eines ganzen Monats in einer Stunde.
Das Gateway kümmert sich um die Verfolgung. Jede Transaktion wird in der Datenbank gespeichert, und das System berechnet automatisch:
- Anzahl der Eingabe- und Ausgabe-Token
- Gesamtkosten jedes Aufrufs
- Antwortzeit des Modells
- Gesamtstatistiken nach Schlüsseln und Projekten
Über das Web-Panel können Sie vorgefertigte Diagramme anzeigen und sofort sehen, welches bestimmte Modell den Großteil des Budgets verbraucht.
Projektstruktur und Ausführung in Docker
Die Autoren haben ein Monorepo in TypeScript erstellt. Im Hintergrund werden bewährte Technologien verwendet:
- Hono übernimmt die Proxying von API-Anfragen
- Next.js verwaltet die Weboberfläche und den Playground
- Drizzle ORM arbeitet mit PostgreSQL- und Redis-Datenbanken
- TypeScript sorgt für eine End-to-End-Typisierung der Komponenten
Sie können Ihren eigenen Dienst in wenigen Minuten über Docker bereitstellen. Die Autoren haben ein gebrauchsfertiges Image zusammengestellt, das die Hauptkomponenten kombiniert.
docker volume create llmgateway_postgres
docker volume create llmgateway_redis
docker run -d \
--name llmgateway \
--restart unless-stopped \
-p 3002:3002 \
-p 3003:3003 \
-p 3005:3005 \
-p 3006:3006 \
-p 4001:4001 \
-p 4002:4002 \
-v llmgateway_postgres:/var/lib/postgresql/data \
-v llmgateway_redis:/var/lib/redis \
-e AUTH_SECRET="$(openssl rand -base64 32 | tr -d '\n')" \
-e GATEWAY_API_KEY_HASH_SECRET="$(openssl rand -base64 32 | tr -d '\n')" \
ghcr.io/theopenco/llmgateway-unified:latest
Ein kleines Detail aus der Dokumentation: Mounten Sie keinen Ordner vom Host-Rechner direkt in /var/lib/postgresql/data. Aufgrund der Besonderheiten der PostgreSQL-Berechtigungsinitialisierung im Container kann der Prozess abstürzen. Die benannten Volumes im obigen Befehl eliminieren dieses Problem.
Wenn Sie das System zuerst ohne Bereitstellung ausprobieren möchten, haben die Entwickler eine Cloud-Version unter llmgateway.io.
Einschränkungen der kostenlosen Version
Das Repository verwendet eine duale Lizenzierung. Der Hauptcode wird unter AGPLv3 vertrieben, jedoch gehören einige Ordner im Quellcode zur Enterprise-Version.
In der kostenlosen Open-Source-Version wird der Anrufverlauf 30 Tage lang gespeichert. Wenn Sie unbegrenzte Protokollspeicherung, erweiterte Benutzerabrechnung oder Teamtrennung in Ihrer Organisation benötigen, müssen Sie eine kommerzielle Lizenz erwerben.
Wer profitiert von diesem Tool
Wenn Ihre Anwendung täglich nur drei Anfragen an ein einzelnes Modell stellt, lohnt sich die Einrichtung eines separaten Proxys nicht. Sie fügen nur einen zusätzlichen Fehlerpunkt und vernachlässigbare Netzwerklatenz hinzu.
Das Gateway wird sich in folgenden Situationen bewähren:
- Das Projekt verwendet Modelle von verschiedenen Anbietern
- Eine transparente Token-Kostenverfolgung über verschiedene Dienste hinweg ist erforderlich
- Eine Proxy-Bereitstellung in der eigenen Umgebung wird benötigt
- Ein schneller Fallback auf ein Backup-Modell bei Ausfällen ist geplant
Sie können das Projekt auf GitHub ausprobieren. Die README dort ist recht minimalistisch, aber das Projekt ist auch ohne ausführliche Anleitungen verständlich.
Ähnliche Projekte