AI a LLMAplikace s LLM

Cachovací gateway pro LLM

Nasměrujte své SDK OpenAI nebo Anthropic na jedno URL a opakované požadavky se obslouží z HotKV místo toho, abyste za ně platili znovu. Bez změn v kódu.

řádek kódu ke změně
1
statický binární soubor
~6 MB
open source
Apache-2.0
Krok 1 z 5
Spuštění gateway

Jeden binární soubor nebo kontejner před poskytovatelem. Přeposílá se vlastní API klíč volajícího, takže gateway žádný nepotřebuje.

Ukázková relaceplaying
# Spuštění gateway
$ 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)

Animovaný průvodce se skutečnými příkazy HotKV a ukázkovými odpověďmi. Kliknutím na kterýkoli krok na něj přeskočíte. Příkazy a odpovědi zůstávají anglicky, přesně tak, jak je v HotKV zadáváte a vidíte.

Problém

Většina provozu LLM se opakuje. Stejný systémový prompt a stejná otázka přicházejí znovu a znovu od různých uživatelů, z opakování a z testovacích běhů a každé z nich se účtuje. Přidávat cache dovnitř každé služby, v každém jazyce, který používáte, je pomalé a snadno se v tom udělá chyba.

Jak to řeší HotKV

hotkv-gateway stojí mezi vaší aplikací a API LLM. Změňte základní URL v SDK a identické požadavky se obslouží z HotKV, streamované odpovědi se přehrají jako streamy, přeformulované otázky lze obsloužit podle významu a identické požadavky v běhu sdílejí jedno volání upstreamu. Pokud je HotKV pomalé nebo nedostupné, požadavky jdou rovnou k poskytovateli.

Krok za krokem

Co se děje, příkaz po příkazu

  1. 01

    Spuštění gateway

    Jeden binární soubor nebo kontejner před poskytovatelem. Přeposílá se vlastní API klíč volajícího, takže gateway žádný nepotřebuje.

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

    První požadavek, minutí

    Zatím nic v cache. Požadavek jde jednou k upstreamu a dokončená odpověď 200 se uloží.

    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

    Stejný požadavek, zásah

    Identický požadavek, i s klíči v jiném pořadí, se obslouží z HotKV a k poskytovateli se vůbec nedostane.

    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

    Přeformulovaná otázka

    Se zapnutou sémantickou cache lze jinak formulovanou otázku o jedné replice obsloužit odpovědí na podobnou.

    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

    Nápor identických požadavků

    Tři identické požadavky přijdou, zatímco první je ještě v běhu. Sdílejí jedno volání upstreamu.

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

Scénáře z praxe

Evaluace a běhy CI

Testovací sady a evaluace promptů posílají při každém běhu stejné požadavky. Za gateway stojí něco jen změněné prompty.

Polyglotní platformy

Backend v Pythonu, worker v Node.js a služba v Go dostanou stejnou cache změnou jednoho základního URL, bez knihovny v každém jazyce.

Vlastní hostované modely

Před vLLM nebo Ollama ušetří gateway místo poplatků za API čas GPU, protože se opakované prompty k serveru modelu nikdy nedostanou.

Zabudováno

Co dostanete

Cache s přesnou i sémantickou shodou

Identické požadavky chat, completion a embeddings se cachují a jednorepliková chatová otázka může odpovídat i podle významu (--semantic).

Přehrávání streamů

Streamované odpovědi se zachytí a přehrají jako stream, takže se klienti chovají přesně jako dřív.

Bezpečné ve výchozím stavu

Každý API klíč má vlastní cache. Chyby a filtrované odpovědi se nikdy neukládají a požadavky mohou cache přeskočit pomocí hlavičky.

Nikdy v cestě

Pokud je HotKV pomalé nebo nedostupné, požadavky jdou rovnou k poskytovateli. Gateway také hlásí svá čísla na /_hotkv/metrics.

Jediná změna ve vašem kódu

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

Časté otázky

Potřebuje gateway licenci HotKV?

Ne. Funguje s libovolným serverem HotKV. S licencí, která zahrnuje cache promptů, žijí položky ve jmenném prostoru PCACHE a HotKV sleduje ušetřené tokeny. Sémantická cache licenci potřebuje vždy.

Mohou dva zákazníci vidět odpovědi toho druhého?

Ne. Klíč cache zahrnuje přihlašovací údaje volajícího, takže každý API klíč má vlastní cache, pokud v gateway nemáte jediný upstream klíč nebo ji nespustíte s --scope global.

S jakými poskytovateli funguje?

S OpenAI, Azure OpenAI, OpenRouter, vLLM, Ollama, LiteLLM a čímkoli dalším, co mluví API OpenAI, plus s API Messages od Anthropic s cache s přesnou shodou.

Související případy použití

Vyzkoušejte to na své zátěži

HotKV mluví protokolem Redisu, takže na něj můžete nasměrovat stávajícího klienta a spustit tytéž příkazy.