Evaluatie- en CI-runs
Testsuites en promptevaluaties sturen bij elke run dezelfde verzoeken. Achter de gateway kost alleen een gewijzigde prompt iets.
Richt je OpenAI- of Anthropic-SDK op één URL en herhaalde verzoeken worden uit HotKV beantwoord in plaats van opnieuw betaald. Geen codewijzigingen.
Eén binary of container voor de provider. De eigen API-sleutel van de aanroeper wordt doorgestuurd, dus de gateway heeft er geen nodig.
Een geanimeerde walkthrough met echte HotKV-commando's en voorbeeldantwoorden. Klik op een stap om ernaartoe te springen. Commando's en antwoorden blijven Engels, precies zoals je ze in HotKV typt en ziet.
Het meeste LLM-verkeer herhaalt zichzelf. Dezelfde systeemprompt en vraag komen steeds opnieuw binnen van verschillende gebruikers, retries en testruns, en elk daarvan wordt in rekening gebracht. Een cache toevoegen in elke service, in elke taal die je gebruikt, is traag en makkelijk fout te doen.
hotkv-gateway staat tussen je applicatie en de LLM-API. Wijzig de basis-URL van de SDK en identieke verzoeken worden uit HotKV geserveerd, streamingantwoorden worden als streams opnieuw afgespeeld, herformuleerde vragen kunnen op betekenis worden bediend en identieke verzoeken die onderweg zijn delen één upstream-aanroep. Als HotKV traag of onbereikbaar is, gaan verzoeken rechtstreeks naar de provider.
Eén binary of container voor de provider. De eigen API-sleutel van de aanroeper wordt doorgestuurd, dus de gateway heeft er geen nodig.
hotkv-gateway --upstream https://api.openai.com --semantic --embedding-model text-embedding-3-smallNog niets gecachet. Het verzoek gaat één keer upstream en het voltooide 200-antwoord wordt opgeslagen.
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-cacheEen identiek verzoek, zelfs met sleutels in een andere volgorde, wordt uit HotKV beantwoord en bereikt de provider nooit.
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-cacheMet de semantische cache aan kan een anders geformuleerde vraag van één beurt worden bediend met het antwoord op een vergelijkbare vraag.
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-cacheDrie identieke verzoeken komen binnen terwijl het eerste nog onderweg is. Ze delen één upstream-aanroep.
for i in 1 2 3; do curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -d @new.json & doneTestsuites en promptevaluaties sturen bij elke run dezelfde verzoeken. Achter de gateway kost alleen een gewijzigde prompt iets.
Een Python-backend, een Node.js-worker en een Go-service krijgen dezelfde cache door één basis-URL te wijzigen, zonder bibliotheek in elke taal.
Voor vLLM of Ollama bespaart de gateway GPU-tijd in plaats van API-kosten, omdat herhaalde prompts de modelserver nooit bereiken.
Identieke chat-, completion- en embeddingverzoeken worden gecachet, en chatvragen van één beurt kunnen ook op betekenis matchen (--semantic).
Gestreamde antwoorden worden vastgelegd en als stream opnieuw afgespeeld, zodat clients zich precies zo gedragen als voorheen.
Elke API-sleutel heeft een eigen cache. Fouten en gefilterde antwoorden worden nooit opgeslagen, en verzoeken kunnen de cache overslaan met een header.
Als HotKV traag of niet beschikbaar is, gaan verzoeken rechtstreeks naar de provider. De gateway rapporteert zijn cijfers ook op /_hotkv/metrics.
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")
Nee. Hij werkt op elke HotKV-server. Met een licentie die de promptcache bevat, staan items in een PCACHE-namespace en houdt HotKV bespaarde tokens bij. De semantische cache vereist altijd een licentie.
Nee. De cachesleutel bevat de inloggegevens van de aanroeper, dus elke API-sleutel heeft een eigen cache, tenzij je één upstream-sleutel in de gateway bewaart of hem start met --scope global.
OpenAI, Azure OpenAI, OpenRouter, vLLM, Ollama, LiteLLM en al het andere dat de OpenAI-API spreekt, plus de Messages-API van Anthropic met de exacte cache.
HotKV spreekt het Redis-protocol, dus je kunt een bestaande client erop richten en dezelfde commando's uitvoeren.