الذكاء الاصطناعي وLLMتطبيقات LLM

بوابة LLM مع تخزين مؤقت

وجّه SDK الخاص بـ OpenAI أو Anthropic إلى عنوان URL واحد، فتُجاب الطلبات المتكررة من HotKV بدل أن تدفع ثمنها مجددًا. دون أي تغيير في الشيفرة.

سطر شيفرة تغيّره
1
ملف تنفيذي ثابت
~6 MB
مفتوح المصدر
Apache-2.0
الخطوة 1 من 5
شغّل البوابة

ملف تنفيذي واحد أو حاوية واحدة أمام المزوّد. يُمرَّر مفتاح API الخاص بالمستدعي، فلا تحتاج البوابة إلى مفتاح.

جلسة توضيحيةplaying
# شغّل البوابة
$ 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)

عرض متحرك بأوامر HotKV حقيقية وردود توضيحية. انقر على أي خطوة للانتقال إليها. تبقى الأوامر والردود بالإنجليزية، تمامًا كما تكتبها وتراها في HotKV.

المشكلة

معظم حركة LLM تكرر نفسها. يصل موجّه النظام نفسه والسؤال نفسه مرارًا من مستخدمين مختلفين ومن إعادة المحاولات ومن جولات الاختبار، ويُحاسَب كل واحد منها. وإضافة ذاكرة مؤقتة داخل كل خدمة، وبكل لغة تستخدمها، عمل بطيء ومن السهل أن يُنفَّذ بشكل خاطئ.

كيف يتعامل HotKV معها

يقف hotkv-gateway بين تطبيقك وواجهة LLM. غيّر عنوان URL الأساسي في SDK، فتُقدَّم الطلبات المتطابقة من HotKV، وتُعاد الاستجابات المتدفقة كتدفقات، ويمكن أن تُجاب الأسئلة المعاد صياغتها حسب المعنى، وتتشارك الطلبات المتطابقة الجارية استدعاءً واحدًا للمزوّد. وإذا كان HotKV بطيئًا أو متوقفًا، تذهب الطلبات مباشرة إلى المزوّد.

خطوة بخطوة

ما يحدث، أمرًا بأمر

  1. 01

    شغّل البوابة

    ملف تنفيذي واحد أو حاوية واحدة أمام المزوّد. يُمرَّر مفتاح API الخاص بالمستدعي، فلا تحتاج البوابة إلى مفتاح.

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

    الطلب الأول إخفاق

    لا شيء مخزن بعد. يذهب الطلب إلى المزوّد مرة واحدة، وتُخزَّن استجابة 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
  3. 03

    الطلب نفسه إصابة

    الطلب المتطابق، حتى لو جاءت مفاتيحه بترتيب مختلف، يُجاب من 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
  4. 04

    سؤال معاد صياغته

    عند تفعيل الذاكرة المؤقتة الدلالية، يمكن أن يُجاب سؤال من دور واحد بصياغة مختلفة بإجابة سؤال مشابه.

    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

    دفعة من الطلبات المتطابقة

    تصل ثلاثة طلبات متطابقة بينما الأول ما زال قيد التنفيذ. فتتشارك استدعاءً واحدًا للمزوّد.

    for i in 1 2 3; do curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -d @new.json & done
أين يناسب

سيناريوهات من الواقع

جولات التقييم وCI

ترسل مجموعات الاختبار وتقييمات الموجّهات الطلبات نفسها في كل جولة. وخلف البوابة، لا يكلّف شيئًا إلا الموجّهات التي تغيّرت.

منصات متعددة اللغات

خلفية Python وعامل Node.js وخدمة Go، كلها تحصل على الذاكرة المؤقتة نفسها بتغيير عنوان URL أساسي واحد، دون مكتبة لكل لغة.

نماذج مستضافة ذاتيًا

أمام vLLM أو Ollama توفّر البوابة وقت GPU بدل رسوم API، لأن الموجّهات المتكررة لا تصل أبدًا إلى خادم النموذج.

مدمج

ما تحصل عليه

تخزين مؤقت مطابق ودلالي

تُخزَّن مؤقتًا طلبات الدردشة والإكمال والتضمين المتطابقة، ويمكن أيضًا أن تُطابق أسئلة الدردشة ذات الدور الواحد حسب المعنى (--semantic).

إعادة تشغيل التدفقات

تُلتقط الاستجابات المتدفقة وتُعاد كتدفق، فيتصرف العملاء تمامًا كما كانوا من قبل.

آمنة افتراضيًا

لكل مفتاح API ذاكرته المؤقتة الخاصة. لا تُخزَّن الأخطاء والإجابات المُرشَّحة أبدًا، ويمكن للطلبات تجاوز الذاكرة المؤقتة عبر ترويسة.

لا تعترض طريقك أبدًا

إذا كان HotKV بطيئًا أو غير متاح، تذهب الطلبات مباشرة إلى المزوّد. كما تعرض البوابة أرقامها على /_hotkv/metrics.

التغيير الوحيد في شيفرتك

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

أسئلة شائعة

هل تحتاج البوابة إلى ترخيص HotKV؟

لا. تعمل على أي خادم HotKV. ومع ترخيص يتضمن الذاكرة المؤقتة للموجّهات، تُحفظ الإدخالات في مساحة أسماء PCACHE ويتتبع HotKV الرموز الموفَّرة. أما الذاكرة المؤقتة الدلالية فتحتاج دائمًا إلى ترخيص.

هل يمكن أن يرى عميلان إجابات بعضهما؟

لا. يتضمن مفتاح الذاكرة المؤقتة بيانات اعتماد المستدعي، فلكل مفتاح API ذاكرته المؤقتة الخاصة، إلا إذا احتفظت بمفتاح واحد للمزوّد في البوابة أو شغّلتها باستخدام --scope global.

ما المزوّدون الذين تعمل معهم؟

OpenAI وAzure OpenAI وOpenRouter وvLLM وOllama وLiteLLM وأي خدمة أخرى تتحدث OpenAI API، إضافة إلى Messages API من Anthropic مع التخزين المؤقت المطابق.

حالات استخدام ذات صلة

جرّبه على عبء عملك

يتحدث HotKV بروتوكول Redis، لذا يمكنك توجيه عميل موجود إليه وتشغيل هذه الأوامر نفسها.