AI och LLMLLM-applikationer

Cachande LLM-gateway

Peka din OpenAI- eller Anthropic-SDK mot en enda URL så besvaras upprepade förfrågningar av HotKV i stället för att betalas igen. Inga kodändringar.

kodrad att ändra
1
statisk binärfil
~6 MB
öppen källkod
Apache-2.0
Steg 1 av 5
Starta gatewayen

En binärfil eller container framför leverantören. Anroparens egen API-nyckel vidarebefordras, så gatewayen behöver ingen.

Exempelsessionplaying
# Starta gatewayen
$ 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)

En animerad genomgång med riktiga HotKV-kommandon och exempelsvar. Klicka på valfritt steg för att hoppa dit. Kommandon och svar förblir på engelska, precis som du skriver och ser dem i HotKV.

Problemet

Det mesta av LLM-trafiken upprepar sig. Samma systemprompt och fråga kommer om och om igen från olika användare, omförsök och testkörningar, och varje enskild faktureras. Att lägga en cache i varje tjänst, i varje språk du använder, är långsamt och lätt att göra fel.

Så löser HotKV det

hotkv-gateway sitter mellan din applikation och LLM-API:et. Byt SDK:ns bas-URL så serveras identiska förfrågningar från HotKV, strömmade svar spelas upp som strömmar, omformulerade frågor kan besvaras efter betydelse och identiska förfrågningar under körning delar ett enda anrop uppströms. Om HotKV är långsamt eller nere går förfrågningarna direkt till leverantören.

Steg för steg

Vad som händer, kommando för kommando

  1. 01

    Starta gatewayen

    En binärfil eller container framför leverantören. Anroparens egen API-nyckel vidarebefordras, så gatewayen behöver ingen.

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

    Första förfrågan, en miss

    Inget är cachat än. Förfrågan går uppströms en gång och det slutförda 200-svaret sparas.

    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

    Samma förfrågan, en träff

    En identisk förfrågan, även med nycklarna i annan ordning, besvaras av HotKV och når aldrig leverantören.

    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

    En omformulerad fråga

    Med den semantiska cachen påslagen kan en annorlunda formulerad envändsfråga besvaras med svaret på en liknande.

    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

    Ett skov av identiska förfrågningar

    Tre identiska förfrågningar kommer medan den första fortfarande pågår. De delar ett enda anrop uppströms.

    for i in 1 2 3; do curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -d @new.json & done
Där det passar

Verkliga scenarier

Utvärderings- och CI-körningar

Testsviter och promptutvärderingar skickar samma förfrågningar vid varje körning. Bakom gatewayen kostar bara ändrade prompter något.

Plattformar med flera språk

En Python-backend, en Node.js-arbetare och en Go-tjänst får samma cache genom att byta en enda bas-URL, utan bibliotek i varje språk.

Egenhostade modeller

Framför vLLM eller Ollama sparar gatewayen GPU-tid i stället för API-avgifter, eftersom upprepade prompter aldrig når modellservern.

Inbyggt

Det här får du

Exakt och semantisk cache

Identiska chatt-, completion- och embeddings-förfrågningar cachas, och envändsfrågor i chatten kan också matchas efter betydelse (--semantic).

Uppspelning av strömmar

Strömmade svar fångas och spelas upp som en ström, så att klienterna beter sig precis som förut.

Säker som standard

Varje API-nyckel har sin egen cache. Fel och filtrerade svar sparas aldrig, och förfrågningar kan hoppa över cachen med en header.

Aldrig i vägen

Om HotKV är långsamt eller otillgängligt går förfrågningarna direkt till leverantören. Gatewayen redovisar också sina siffror på /_hotkv/metrics.

Den enda ändringen i din kod

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")

Vanliga frågor

Behöver gatewayen en HotKV-licens?

Nej. Den fungerar mot vilken HotKV-server som helst. Med en licens som innehåller promptcachen lagras posterna i en PCACHE-namnrymd och HotKV räknar sparade tokens. Den semantiska cachen kräver alltid en licens.

Kan två kunder se varandras svar?

Nej. Cachenyckeln innehåller anroparens inloggningsuppgifter, så varje API-nyckel har sin egen cache, om du inte har en enda uppströmsnyckel i gatewayen eller startar den med --scope global.

Vilka leverantörer fungerar den med?

OpenAI, Azure OpenAI, OpenRouter, vLLM, Ollama, LiteLLM och allt annat som talar OpenAI:s API, plus Anthropics Messages API med den exakta cachen.

Relaterade användningsfall

Prova på din egen arbetslast

HotKV talar Redis-protokollet, så du kan peka en befintlig klient mot det och köra samma kommandon.