Évaluations et CI
Les suites de tests et les évaluations de prompts envoient les mêmes requêtes à chaque exécution. Derrière la passerelle, seuls les prompts modifiés coûtent quelque chose.
Pointez votre SDK OpenAI ou Anthropic vers une seule URL, et les requêtes répétées sont servies par HotKV au lieu d'être payées une nouvelle fois. Aucune modification de code.
Un binaire ou un conteneur devant le fournisseur. La clé d'API de l'appelant est transmise, la passerelle n'en a donc besoin d'aucune.
Une démonstration animée avec de vraies commandes HotKV et des exemples de réponses. Cliquez sur une étape pour y accéder directement. Les commandes et les réponses restent en anglais, exactement comme vous les saisissez et les voyez dans HotKV.
La plupart du trafic LLM se répète. Le même prompt système et la même question reviennent sans cesse, de la part d'utilisateurs différents, de nouvelles tentatives et d'exécutions de tests, et chacun est facturé. Ajouter un cache dans chaque service, dans chaque langage que vous utilisez, est long et facile à mal faire.
hotkv-gateway se place entre votre application et l'API LLM. Changez l'URL de base du SDK, et les requêtes identiques sont servies par HotKV, les réponses en streaming sont rejouées en streaming, les questions reformulées peuvent être servies par leur sens et les requêtes identiques en cours partagent un seul appel en amont. Si HotKV est lent ou indisponible, les requêtes vont directement au fournisseur.
Un binaire ou un conteneur devant le fournisseur. La clé d'API de l'appelant est transmise, la passerelle n'en a donc besoin d'aucune.
hotkv-gateway --upstream https://api.openai.com --semantic --embedding-model text-embedding-3-smallRien n'est encore en cache. La requête part une fois en amont, et la réponse 200 complète est enregistrée.
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-cacheUne requête identique, même avec des clés dans un ordre différent, reçoit sa réponse de HotKV et n'atteint jamais le fournisseur.
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-cacheAvec le cache sémantique activé, une question à un seul tour formulée autrement peut être servie par la réponse à une question proche.
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-cacheTrois requêtes identiques arrivent pendant que la première est encore en cours. Elles partagent un seul appel en amont.
for i in 1 2 3; do curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -d @new.json & doneLes suites de tests et les évaluations de prompts envoient les mêmes requêtes à chaque exécution. Derrière la passerelle, seuls les prompts modifiés coûtent quelque chose.
Un backend Python, un worker Node.js et un service Go profitent tous du même cache en changeant une seule URL de base, sans bibliothèque dans chaque langage.
Devant vLLM ou Ollama, la passerelle économise du temps GPU plutôt que des frais d'API, car les prompts répétés n'atteignent jamais le serveur de modèles.
Les requêtes de chat, de complétion et d'embeddings identiques sont mises en cache, et les questions de chat à un seul tour peuvent aussi correspondre par leur sens (--semantic).
Les réponses en streaming sont capturées et rejouées en streaming, si bien que les clients se comportent exactement comme avant.
Chaque clé d'API a son propre cache. Les erreurs et les réponses filtrées ne sont jamais enregistrées, et une requête peut contourner le cache grâce à un en-tête.
Si HotKV est lent ou indisponible, les requêtes vont directement au fournisseur. La passerelle publie aussi ses chiffres sur /_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")
Non. Elle fonctionne avec n'importe quel serveur HotKV. Avec une licence qui inclut le cache de prompts, les entrées vivent dans un namespace PCACHE et HotKV suit les tokens économisés. Le cache sémantique nécessite toujours une licence.
Non. La clé de cache inclut les identifiants de l'appelant, chaque clé d'API a donc son propre cache, sauf si vous conservez une seule clé amont dans la passerelle ou si vous la démarrez avec --scope global.
OpenAI, Azure OpenAI, OpenRouter, vLLM, Ollama, LiteLLM et tout ce qui parle l'API OpenAI, ainsi que l'API Messages d'Anthropic avec le cache exact.
HotKV parle le protocole Redis. Vous pouvez donc y connecter un client existant et exécuter ces mêmes commandes.