AI ו-LLMיישומי LLM

שער LLM עם מטמון

מפנים את ה-SDK של OpenAI או של Anthropic לכתובת אחת, ובקשות חוזרות נענות מ-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 יושב בין האפליקציה ל-API של ה-LLM. משנים את כתובת הבסיס של ה-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 מקבלים כולם את אותו מטמון בשינוי כתובת בסיס אחת, בלי ספרייה בכל שפה.

מודלים באירוח עצמי

לפני vLLM או Ollama השער חוסך זמן GPU במקום עמלות API, כי פרומפטים חוזרים לעולם לא מגיעים לשרת המודל.

מובנה

מה מקבלים

מטמון מדויק וסמנטי

בקשות זהות של צ'אט, השלמה ו-embeddings נשמרות במטמון, ושאלות צ'אט חד-תוריות יכולות גם להתאים לפי משמעות (--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 וכל דבר אחר שמדבר את ה-API של OpenAI, וכן ה-Messages API של Anthropic עם המטמון המדויק.

שימושים קשורים

נסו על עומס העבודה שלכם

HotKV מדבר את פרוטוקול Redis, ולכן אפשר להפנות אליו לקוח קיים ולהריץ את אותן פקודות.