Оценка и прогоны CI
Наборы тестов и оценки промптов при каждом запуске отправляют одни и те же запросы. За шлюзом чего-то стоят только изменённые промпты.
Направьте SDK OpenAI или Anthropic на один URL, и повторные запросы будут обслуживаться из HotKV, а не оплачиваться снова. Менять код не нужно.
Один бинарный файл или контейнер перед провайдером. Пересылается собственный ключ API вызывающей стороны, поэтому самому шлюзу ключ не нужен.
Анимированная демонстрация с настоящими командами HotKV и примерами ответов. Нажмите на любой шаг, чтобы перейти к нему. Команды и ответы остаются на английском, ровно так, как вы вводите и видите их в HotKV.
Большая часть трафика LLM повторяется. Один и тот же системный промпт и вопрос приходят снова и снова от разных пользователей, из повторных попыток и тестовых прогонов, и каждый запрос оплачивается. Добавлять кеш внутрь каждого сервиса, на каждом используемом языке, долго, и в этом легко ошибиться.
hotkv-gateway стоит между вашим приложением и API LLM. Измените базовый URL SDK, и одинаковые запросы будут обслуживаться из HotKV, потоковые ответы воспроизводятся как потоки, переформулированные вопросы могут обслуживаться по смыслу, а одинаковые запросы, находящиеся в обработке, разделяют один вызов к провайдеру. Если HotKV медленный или недоступен, запросы идут напрямую к провайдеру.
Один бинарный файл или контейнер перед провайдером. Пересылается собственный ключ API вызывающей стороны, поэтому самому шлюзу ключ не нужен.
hotkv-gateway --upstream https://api.openai.com --semantic --embedding-model text-embedding-3-smallВ кеше пока ничего нет. Запрос один раз уходит к провайдеру, а завершённый ответ 200 сохраняется.
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Одинаковый запрос, даже с ключами в другом порядке, обслуживается из HotKV и никогда не доходит до провайдера.
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При включённом семантическом кеше вопрос в один ход, сформулированный иначе, может быть обслужен ответом на похожий вопрос.
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Три одинаковых запроса приходят, пока первый ещё обрабатывается. Они разделяют один вызов к провайдеру.
for i in 1 2 3; do curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -d @new.json & doneНаборы тестов и оценки промптов при каждом запуске отправляют одни и те же запросы. За шлюзом чего-то стоят только изменённые промпты.
Бэкенд на Python, воркер на Node.js и сервис на Go получают один и тот же кеш, меняя один базовый URL, без библиотеки на каждом языке.
Перед vLLM или Ollama шлюз экономит время GPU вместо платы за API, потому что повторные промпты никогда не доходят до сервера модели.
Одинаковые запросы чата, дополнений и эмбеддингов кешируются, а вопросы чата в один ход могут также находиться по смыслу (--semantic).
Потоковые ответы перехватываются и воспроизводятся как поток, поэтому клиенты ведут себя точно так же, как и раньше.
У каждого ключа API свой кеш. Ошибки и отфильтрованные ответы никогда не сохраняются, а запросы могут пропускать кеш с помощью заголовка.
Если HotKV медленный или недоступен, запросы идут напрямую к провайдеру. Шлюз также сообщает свои показатели на /_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")
Нет. Он работает с любым сервером HotKV. С лицензией, включающей кеш промптов, записи хранятся в пространстве имён PCACHE, а HotKV считает сэкономленные токены. Семантическому кешу лицензия нужна всегда.
Нет. Ключ кеша включает учётные данные вызывающей стороны, поэтому у каждого ключа API свой кеш, если только вы не храните в шлюзе один ключ провайдера или не запускаете его с --scope global.
OpenAI, Azure OpenAI, OpenRouter, vLLM, Ollama, LiteLLM и любые другие, понимающие API OpenAI, а также API Messages от Anthropic с точным кешем.
HotKV понимает протокол Redis, поэтому вы можете подключить к нему существующий клиент и выполнить те же команды.