جولات التقييم وCI
ترسل مجموعات الاختبار وتقييمات الموجّهات الطلبات نفسها في كل جولة. وخلف البوابة، لا يكلّف شيئًا إلا الموجّهات التي تغيّرت.
وجّه SDK الخاص بـ OpenAI أو Anthropic إلى عنوان URL واحد، فتُجاب الطلبات المتكررة من HotKV بدل أن تدفع ثمنها مجددًا. دون أي تغيير في الشيفرة.
ملف تنفيذي واحد أو حاوية واحدة أمام المزوّد. يُمرَّر مفتاح API الخاص بالمستدعي، فلا تحتاج البوابة إلى مفتاح.
عرض متحرك بأوامر HotKV حقيقية وردود توضيحية. انقر على أي خطوة للانتقال إليها. تبقى الأوامر والردود بالإنجليزية، تمامًا كما تكتبها وتراها في HotKV.
معظم حركة LLM تكرر نفسها. يصل موجّه النظام نفسه والسؤال نفسه مرارًا من مستخدمين مختلفين ومن إعادة المحاولات ومن جولات الاختبار، ويُحاسَب كل واحد منها. وإضافة ذاكرة مؤقتة داخل كل خدمة، وبكل لغة تستخدمها، عمل بطيء ومن السهل أن يُنفَّذ بشكل خاطئ.
يقف hotkv-gateway بين تطبيقك وواجهة 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 وأي خدمة أخرى تتحدث OpenAI API، إضافة إلى Messages API من Anthropic مع التخزين المؤقت المطابق.
يتحدث HotKV بروتوكول Redis، لذا يمكنك توجيه عميل موجود إليه وتشغيل هذه الأوامر نفسها.