Evaluation और CI रन
टेस्ट सूट और prompt evaluations हर रन में वही अनुरोध भेजते हैं। गेटवे के पीछे सिर्फ़ बदले हुए prompts की कीमत लगती है।
अपने OpenAI या Anthropic SDK को एक URL पर पॉइंट करें, और दोहराए गए अनुरोधों का जवाब दोबारा भुगतान करने की जगह HotKV से मिलेगा। कोड में कोई बदलाव नहीं।
provider के सामने एक binary या container। कॉलर की अपनी API key आगे भेजी जाती है, इसलिए गेटवे को कोई key नहीं चाहिए।
असली HotKV कमांड और उदाहरण रिस्पॉन्स के साथ एक एनिमेटेड वॉकथ्रू। किसी भी कदम पर क्लिक करके वहां पहुंचें। कमांड और रिस्पॉन्स अंग्रेज़ी में ही रहते हैं, ठीक वैसे जैसे आप HotKV में टाइप करते और देखते हैं।
ज़्यादातर LLM ट्रैफ़िक खुद को दोहराता है। वही system prompt और वही सवाल अलग-अलग यूज़र, retries और टेस्ट रन से बार-बार आते हैं, और हर एक का बिल बनता है। हर सर्विस में, आपकी इस्तेमाल की हर भाषा में cache जोड़ना धीमा है और उसमें गलती होना आसान है।
hotkv-gateway आपके एप्लिकेशन और LLM API के बीच बैठता है। SDK का base URL बदलें, और एक जैसे अनुरोध HotKV से मिलते हैं, streaming जवाब stream के रूप में ही replay होते हैं, दोबारा शब्द बदलकर पूछे गए सवाल अर्थ से परोसे जा सकते हैं, और एक साथ चल रहे एक जैसे अनुरोध एक ही upstream कॉल साझा करते हैं। अगर HotKV धीमा है या बंद है, तो अनुरोध सीधे provider के पास जाते हैं।
provider के सामने एक binary या container। कॉलर की अपनी API key आगे भेजी जाती है, इसलिए गेटवे को कोई key नहीं चाहिए।
hotkv-gateway --upstream https://api.openai.com --semantic --embedding-model text-embedding-3-smallअभी कुछ cache नहीं है। अनुरोध एक बार upstream जाता है, और पूरा हुआ 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एक जैसा अनुरोध, चाहे keys अलग क्रम में हों, HotKV से जवाब पाता है और provider तक कभी नहीं पहुँचता।
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-cachesemantic cache चालू होने पर, अलग शब्दों में पूछे गए single-turn सवाल को किसी मिलते-जुलते सवाल के जवाब से परोसा जा सकता है।
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तीन एक जैसे अनुरोध तब आते हैं जब पहला अभी चल ही रहा होता है। वे एक upstream कॉल साझा करते हैं।
for i in 1 2 3; do curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -d @new.json & doneटेस्ट सूट और prompt evaluations हर रन में वही अनुरोध भेजते हैं। गेटवे के पीछे सिर्फ़ बदले हुए prompts की कीमत लगती है।
Python बैकएंड, Node.js worker और Go सर्विस, सबको एक base URL बदलकर वही cache मिल जाता है, हर भाषा में कोई लाइब्रेरी जोड़े बिना।
vLLM या Ollama के सामने गेटवे API शुल्क की जगह GPU समय बचाता है, क्योंकि दोहराए गए prompts मॉडल सर्वर तक कभी पहुँचते ही नहीं।
एक जैसे chat, completion और embeddings अनुरोध cache होते हैं, और single-turn चैट सवाल अर्थ से भी मिलाए जा सकते हैं (--semantic)।
Streamed जवाब कैप्चर होते हैं और stream के रूप में ही replay होते हैं, इसलिए क्लाइंट बिल्कुल पहले जैसा व्यवहार करते हैं।
हर API key का अपना cache होता है। errors और filtered जवाब कभी सहेजे नहीं जाते, और अनुरोध एक header से cache को छोड़ सकते हैं।
अगर HotKV धीमा है या उपलब्ध नहीं है, तो अनुरोध सीधे provider के पास जाते हैं। गेटवे अपने आँकड़े /_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 सर्वर पर काम करता है। जिस लाइसेंस में prompt cache शामिल है, उसके साथ एंट्री PCACHE namespace में रहती हैं और HotKV बचाए गए tokens का हिसाब रखता है। semantic cache को हमेशा लाइसेंस चाहिए।
नहीं। cache key में कॉलर के credentials शामिल होते हैं, इसलिए हर API key का अपना cache होता है, जब तक आप गेटवे में एक ही upstream key न रखें या उसे --scope global के साथ शुरू न करें।
OpenAI, Azure OpenAI, OpenRouter, vLLM, Ollama, LiteLLM और हर वह चीज़ जो OpenAI API बोलती है, साथ ही exact cache के साथ Anthropic की Messages API।
HotKV Redis प्रोटोकॉल बोलता है, इसलिए आप किसी मौजूदा क्लाइंट को इसकी ओर इंगित करके यही कमांड चला सकते हैं।