מטמון פרומפטים מודע לספק (Provider-Aware Prompt Caching)
Superdav AI Agent v1.12.0 מציג מטמון פרומפטים מודע לספק (provider-aware prompt caching), המבצע אופטימיזציה של עלויות ה-API וזמני ההשהיה (latency) על ידי שמירת פרומפטים במטמון בין ספקי LLM שונים. לכל ספק יש מנגנוני תצורה ומטמון שונים.
סקירה כללית
מטמון פרומפטים מאפשר לך:
- לשמור במטמון פרומפטים גדולים ומשתמשים בתדירות גבוהה
- להפחית עלויות API על ידי מניעת עיבוד מיותר
- לשפר את זמני ההשהיה עבור בקשות שנשמרו במטמון
- לנהל את מחזור חיי המטמון באופן מפורש
ספקים שונים מיישמים מטמון בצורה שונה:
- Google Gemini: ממשק ה-API
cachedContents - Azure OpenAI: מטמון פרומפטים עם TTL
- OpenRouter: מטמון ספציפי לספק
- Vertex Anthropic: מטמון פרומפטים עם בקרת מטמון (cache control)
Google Gemini: ממשק ה-API cachedContents
Google Gemini מספק ניהול מטמון מפורש באמצעות ה-API cachedContents.
תצורה
$config = [
'provider' => 'google-gemini',
'model' => 'gemini-2.0-flash',
'caching' => [
'enabled' => true,
'ttl' => 3600, // שעה בשניות
'max_tokens' => 1000000, // מקסימום טוקנים למטמון
],
];
יצירת פרומפט במטמון
use Superdav\AI\Providers\GoogleGemini;
$gemini = new GoogleGemini( $config );
$cached_content = $gemini->create_cached_content(
[
'system_prompt' => 'אתה עוזר מועיל...',
'context' => 'מסמך הקשר גדול...',
'ttl' => 3600,
]
);
// מחזיר: ['cache_id' => 'abc123', 'expires_at' => timestamp]
שימוש בפרומפט במטמון
$response = $gemini->generate(
[
'cache_id' => 'abc123',
'prompt' => 'שאלה מהמשתמש כאן',
]
);
מחזור חיי המטמון
// רשימת תכני מטמון
$caches = $gemini->list_cached_contents();
// קבלת פרטי מטמון
$cache = $gemini->get_cached_content( 'abc123' );
// הארכת TTL של המטמון
$gemini->update_cached_content(
'abc123',
['ttl' => 7200] // הארכה ל-2 שעות
);
// מחיקת מטמון
$gemini->delete_cached_content( 'abc123' );
שיטות עבודה מומלצות עבור Gemini
- הגדרת TTL מתאים: איזון בין חיסכון בעלויות לבין התיישנות המטמון
- שמירת פרומפטי מערכת: שימוש חוזר באותו פרומפט מערכת עבור בקשות שונות
- ניטור שימוש במטמון: מעקב אחר המטמון שבו נעשה שימוש הכי הרבה
- ניקוי מטמון פג תוקף: מחיקה תקופתית של מטמון שלא נעשה בו שימוש
Azure OpenAI: מטמון פרומפטים
Azure OpenAI תומך במטמון פרומפטים עם ניהול TTL אוטומטי.
תצורה
$config = [
'provider' => 'azure-openai',
'model' => 'gpt-4-turbo',
'api_version' => '2024-08-01-preview',
'caching' => [
'enabled' => true,
'cache_control' => 'max_age=3600',
],
];
הפעלת מטמון
use Superdav\AI\Providers\AzureOpenAI;
$azure = new AzureOpenAI( $config );
$response = $azure->generate(
[
'system_prompt' => 'אתה עוזר מועיל...',
'context' => 'מסמך הקשר גדול...',
'prompt' => 'שאלה מהמשתמש כאן',
'cache_control' => 'max_age=3600',
]
);
// התגובה כוללת שימוש במטמון:
// [
// 'content' => '...',
// 'cache_creation_input_tokens' => 1000,
// 'cache_read_input_tokens' => 500,
// ]
כותרות מטמון (Cache Headers)
Azure OpenAI משתמש בכותרות HTTP לבקרת מטמון:
Cache-Control: max_age=3600
ערכים נתמכים:
max_age=<seconds>: מטמון לתקופה שצוינהno_cache: לא לשמור את הבקשה הזו במטמוןno_store: לא לשמור ולא להשתמש מחדש
ניטור שימוש במטמון
$response = $azure->generate( [...] );
$cache_tokens = $response['cache_creation_input_tokens'] ?? 0;
$cache_hits = $response['cache_read_input_tokens'] ?? 0;
echo "יצירת מטמון: $cache_tokens טוקנים\n";
echo "פגיעות מטמון: $cache_hits טוקנים\n";