KI und LLMLLM-Anwendungen

Caching-LLM-Gateway

Richten Sie Ihr OpenAI- oder Anthropic-SDK auf eine URL, und wiederholte Anfragen werden aus HotKV beantwortet, statt erneut bezahlt zu werden. Ohne Codeänderungen.

Codezeile zu ändern
1
statisches Binary
~6 MB
Open Source
Apache-2.0
Schritt 1 von 5
Gateway starten

Ein Binary oder Container vor dem Anbieter. Der eigene API-Schlüssel des Aufrufers wird weitergereicht, daher braucht das Gateway keinen.

Beispielsitzungplaying
# Gateway starten
$ hotkv-gateway --upstream https://api.openai.com --semantic --embedding-model text-embedding-3-small
(gateway listening on 127.0.0.1:8080, cache in HotKV)

Ein animierter Durchlauf mit echten HotKV-Befehlen und Beispielantworten. Klicken Sie auf einen Schritt, um direkt dorthin zu springen. Befehle und Antworten bleiben auf Englisch, genau so, wie Sie sie in HotKV eingeben und sehen.

Das Problem

Der meiste LLM-Traffic wiederholt sich. Derselbe System-Prompt und dieselbe Frage kommen immer wieder von verschiedenen Benutzern, Wiederholungsversuchen und Testläufen, und jede davon wird abgerechnet. Einen Cache in jeden Dienst einzubauen, in jeder Sprache, die Sie verwenden, ist langsam und fehleranfällig.

So löst HotKV es

hotkv-gateway sitzt zwischen Ihrer Anwendung und der LLM-API. Ändern Sie die Basis-URL des SDK, und identische Anfragen werden aus HotKV bedient, Streaming-Antworten werden als Streams wiedergegeben, umformulierte Fragen lassen sich über ihre Bedeutung beantworten, und identische Anfragen, die gleichzeitig laufen, teilen sich einen Upstream-Aufruf. Ist HotKV langsam oder nicht erreichbar, gehen Anfragen direkt an den Anbieter.

Schritt für Schritt

Was passiert, Befehl für Befehl

  1. 01

    Gateway starten

    Ein Binary oder Container vor dem Anbieter. Der eigene API-Schlüssel des Aufrufers wird weitergereicht, daher braucht das Gateway keinen.

    hotkv-gateway --upstream https://api.openai.com --semantic --embedding-model text-embedding-3-small
  2. 02

    Erste Anfrage, ein Miss

    Noch ist nichts gecacht. Die Anfrage geht einmal upstream, und die vollständige 200-Antwort wird gespeichert.

    curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @question.json | grep -i x-hotkv-cache
  3. 03

    Dieselbe Anfrage, ein Treffer

    Eine identische Anfrage, auch mit Schlüsseln in anderer Reihenfolge, wird aus HotKV beantwortet und erreicht den Anbieter nie.

    curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @question.json | grep -i x-hotkv-cache
  4. 04

    Eine umformulierte Frage

    Mit aktiviertem semantischem Cache kann eine anders formulierte Frage mit einem einzigen Gesprächsschritt mit der Antwort auf eine ähnliche Frage bedient werden.

    curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @rephrased.json | grep -i x-hotkv-cache
  5. 05

    Eine Welle identischer Anfragen

    Drei identische Anfragen treffen ein, während die erste noch läuft. Sie teilen sich einen Upstream-Aufruf.

    for i in 1 2 3; do curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -d @new.json & done
Wo es passt

Szenarien aus der Praxis

Evaluierungs- und CI-Läufe

Testsuites und Prompt-Evaluierungen senden bei jedem Lauf dieselben Anfragen. Hinter dem Gateway kosten nur geänderte Prompts etwas.

Mehrsprachige Plattformen

Ein Python-Backend, ein Node.js-Worker und ein Go-Dienst bekommen alle denselben Cache, indem eine Basis-URL geändert wird, ohne Bibliothek in jeder Sprache.

Selbst gehostete Modelle

Vor vLLM oder Ollama spart das Gateway GPU-Zeit statt API-Gebühren, weil wiederholte Prompts den Modellserver nie erreichen.

Integriert

Was Sie bekommen

Exakter und semantischer Cache

Identische Chat-, Completion- und Embedding-Anfragen werden gecacht, und Chatfragen mit einem einzigen Gesprächsschritt können auch über ihre Bedeutung getroffen werden (--semantic).

Stream-Replay

Gestreamte Antworten werden aufgezeichnet und als Stream wiedergegeben, sodass sich Clients genau wie vorher verhalten.

Standardmäßig sicher

Jeder API-Schlüssel hat seinen eigenen Cache. Fehler und gefilterte Antworten werden nie gespeichert, und Anfragen können den Cache per Header umgehen.

Steht nie im Weg

Ist HotKV langsam oder nicht verfügbar, gehen Anfragen direkt an den Anbieter. Das Gateway meldet seine Kennzahlen außerdem unter /_hotkv/metrics.

Die einzige Änderung in Ihrem Code

python
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8080/v1")   # the only change

# For Anthropic: start the gateway with --upstream https://api.anthropic.com
import anthropic
client = anthropic.Anthropic(base_url="http://localhost:8080")

Häufige Fragen

Braucht das Gateway eine HotKV-Lizenz?

Nein. Es funktioniert mit jedem HotKV-Server. Mit einer Lizenz, die den Prompt-Cache enthält, liegen die Einträge in einem PCACHE-Namespace, und HotKV erfasst die eingesparten Tokens. Der semantische Cache braucht immer eine Lizenz.

Können zwei Kunden die Antworten des jeweils anderen sehen?

Nein. Der Cache-Schlüssel enthält die Zugangsdaten des Aufrufers, sodass jeder API-Schlüssel seinen eigenen Cache hat, es sei denn, Sie hinterlegen einen einzigen Upstream-Schlüssel im Gateway oder starten es mit --scope global.

Mit welchen Anbietern funktioniert es?

OpenAI, Azure OpenAI, OpenRouter, vLLM, Ollama, LiteLLM und alles andere, was die OpenAI-API spricht, dazu die Messages-API von Anthropic mit dem exakten Cache.

Verwandte Anwendungsfälle

Probieren Sie es mit Ihrer eigenen Workload

HotKV spricht das Redis-Protokoll, sodass Sie einen bestehenden Client darauf richten und genau diese Befehle ausführen können.