प्रदाता-जागरूक प्रॉम्प्ट कॅशिंग (Provider-Aware Prompt Caching)
Superdav AI Agent v1.12.0 मध्ये प्रदाता-जागरूक प्रॉम्प्ट कॅशिंग (provider-aware prompt caching) सादर केले आहे. हे वेगवेगळ्या LLM प्रदात्यांमध्ये (providers) प्रॉम्प्ट्स कॅश करून API खर्च आणि विलंबता (latency) ऑप्टिमाइझ करते. प्रत्येक प्रदात्याची कॅशिंग यंत्रणा आणि कॉन्फिगरेशन वेगळे असते.
विहंगावलोकन (Overview)
प्रॉम्प्ट कॅशिंगमुळे तुम्हाला खालील गोष्टी करता येतात:
- मोठ्या, वारंवार वापरल्या जाणाऱ्या प्रॉम्प्ट्स कॅश करणे.
- अनावश्यक प्रोसेसिंग टाळून API खर्च कमी करणे.
- कॅश केलेल्या विनंत्यांसाठी विलंबता (latency) सुधारणे.
- कॅश लाइफसायकल (cache lifecycle) स्पष्टपणे व्यवस्थापित करणे.
वेगवेगळे प्रदाते कॅशिंग वेगळ्या पद्धतीने लागू करतात:
- Google Gemini:
cachedContentsAPI - Azure OpenAI: TTL सह प्रॉम्प्ट कॅशिंग
- OpenRouter: प्रदाता-विशिष्ट कॅशिं ग
- Vertex Anthropic: कॅश कंट्रोलसह प्रॉम्प्ट कॅशिंग
Google Gemini: cachedContents API
Google Gemini तुम्हाला cachedContents API द्वारे स्पष्ट कॅशे व्यवस्थापन (explicit cache management) देते.
कॉन्फिगरेशन (Configuration)
$config = [
'provider' => 'google-gemini',
'model' => 'gemini-2.0-flash',
'caching' => [
'enabled' => true,
'ttl' => 3600, // 1 hour in seconds
'max_tokens' => 1000000, // Max tokens to cache
],
];
कॅश केलेला प्रॉम्प्ट तयार करणे (Creating a Cached Prompt)
use Superdav\AI\Providers\GoogleGemini;
$gemini = new GoogleGemini( $config );
$cached_content = $gemini->create_cached_content(
[
'system_prompt' => 'You are a helpful assistant...',
'context' => 'Large context document...',
'ttl' => 3600,
]
);
// Returns: ['cache_id' => 'abc123', 'expires_at' => timestamp]
कॅश केलेला प्रॉम्प्ट वापरणे (Using a Cached Prompt)
$response = $gemini->generate(
[
'cache_id' => 'abc123',
'prompt' => 'User question here',
]
);
कॅश लाइफसायकल (Cache Lifecycle)
// List cached contents
$caches = $gemini->list_cached_contents();
// Get cache details
$cache = $gemini->get_cached_content( 'abc123' );
// Extend cache TTL
$gemini->update_cached_content(
'abc123',
['ttl' => 7200] // Extend to 2 hours
);
// Delete cache
$gemini->delete_cached_content( 'abc123' );
Gemini साठी सर्वोत्तम पद्धती (Best Practices for Gemini)
- योग्य TTL सेट करा: खर्च बचत आणि कॅश जुने होणे (cache staleness) यांच्यात संतुलन साधा.
- सिस्टम प्रॉम्प्ट कॅश करा: विनंत्यांमध्ये (requests) तोच सिस्टम प्रॉम्प्ट पुन्हा वापरा.
- कॅश वापर निरीक्षण करा: कोणते कॅश सर्वात जास्त वापरले जातात याचा मागोवा घ्या.
- समाप्ती झालेले कॅश स्वच्छ करा: वेळोवेळी न वापरलेले कॅश डिलीट करा.
Azure OpenAI: प्रॉम्प्ट कॅशिंग (Prompt Caching)
Azure OpenAI स्वयंचलित TTL व्यवस्थापनासह प्रॉम्प्ट कॅशिंगला समर्थन देते.
कॉन्फिगरेशन (Configuration)
$config = [
'provider' => 'azure-openai',
'model' => 'gpt-4-turbo',
'api_version' => '2024-08-01-preview',
'caching' => [
'enabled' => true,
'cache_control' => 'max_age=3600',
],
];
कॅशिंग सक्षम करणे (Enabling Caching)
use Superdav\AI\Providers\AzureOpenAI;
$azure = new AzureOpenAI( $config );
$response = $azure->generate(
[
'system_prompt' => 'You are a helpful assistant...',
'context' => 'Large context document...',
'prompt' => 'User question here',
'cache_control' => 'max_age=3600',
]
);
// Response includes cache usage:
// [
// 'content' => '...',
// 'cache_creation_input_tokens' => 1000,
// 'cache_read_input_tokens' => 500,
// ]
कॅश हेडर (Cache Headers)
Azure OpenAI कॅश कंट्रोलसाठी HTTP हेडर वापरते:
Cache-Control: max_age=3600
समर्थित मूल्ये (Supported values):
max_age=<seconds>: निर्दिष्ट कालावधीसाठी कॅश करा.no_cache: ही विनंती कॅश करू नका.no_store: कॅश करू नका आणि पुन्हा वापरू नका.
कॅश वापर निरीक्षण करणे (Monitoring Cache Usage)
$response = $azure->generate( [...] );
$cache_tokens = $response['cache_creation_input_tokens'] ?? 0;
$cache_hits = $response['cache_read_input_tokens'] ?? 0;
echo "Cache creation: $cache_tokens tokens\n";
echo "Cache hits: $cache_hits tokens\n";
Azure OpenAI साठी सर्वोत्तम पद्धती (Best Practices for Azure OpenAI)
- सुसंगत प्रॉम्प्ट वापरा: एकसारख्या प्रॉम्प्ट्समुळे कॅशिंगचा फायदा होतो.
- वाजवी TTL सेट करा: खर्च आणि ताजेपणा (freshness) यांच्यात संतुलन साधा.
- कॅश मेट्रिक्सवर लक्ष ठेवा: कॅश निर्मिती विरुद्ध हिट्सचा मागोवा घ्या.
- समान विनंत्या बॅच करा: कॅश हिट्स वाढवण्यासाठी विनंत्यांचा गट करा.
OpenRouter: प्रदाता-विशिष्ट कॅशिंग (Provider-Specific Caching)
OpenRouter हे खालील प्रदात्यांद्वारे (OpenAI, Anthropic, इत्यादी) कॅशिंगला समर्थन देते.
कॉन्फिगरेशन (Configuration)
$config = [
'provider' => 'openrouter',
'model' => 'openai/gpt-4-turbo',
'caching' => [
'enabled' => true,
'provider_cache' => 'openai', // Use OpenAI's caching
],
];
OpenRouter कॅशिंग वापरणे (Using OpenRouter Caching)
use Superdav\AI\Providers\OpenRouter;
$router = new OpenRouter( $config );
$response = $router->generate(
[
'system_prompt' => 'You are a helpful assistant...',
'context' => 'Large context document...',
'prompt' => 'User question here',
'cache_control' => 'max_age=3600',
]
);
प्रदाता-विशिष्ट पर्याय (Provider-Specific Options)
वेगवेगळ्या प्रदात्यांच्या कॅशिंग यंत्रणा वेगळ्या असतात:
// OpenAI-compatible caching
$response = $router->generate(
[
'model' => 'openai/gpt-4-turbo',
'cache_control' => 'max_age=3600',
]
);
// Anthropic-compatible caching
$response = $router->generate(
[
'model' => 'anthropic/claude-3-opus',
'cache_control' => [
'type' => 'ephemeral',
'max_tokens' => 1000000,
],
]
);
OpenRouter साठी सर्वोत्तम पद्धती (Best Practices for OpenRouter)
- तुमच्या प्रदात्याचे कॅशिंग जाणून घ्या: प्रत्येक प्रदात्याची यंत्रणा वेगळी असते.
- कॅशिंग वर्तन तपासा: तुम्ही निवडलेल्या प्रदात्यासोबत कॅशिंग काम करते की नाही हे तपासा.
- खर्चावर लक्ष ठेवा: कॅशिंगमुळे किती बचत होते याचा मागोवा घ्या.
- सुसंगत मॉडेल्स वापरा: मॉडेल बदलल्यास कॅश हिट्स तुटतात.
Vertex Anthropic: कॅश कंट्रोलसह प्रॉम्प्ट कॅशिंग (Prompt Caching with Cache Control)
Vertex Anthropic (Google Cloud) स्पष्ट कॅश कंट्रोलसह प्रॉम्प्ट कॅशिंगला समर्थन देते.