Provider-Aware Prompt Caching
Ipinakilala ng Superdav AI Agent v1.12.0 ang provider-aware prompt caching, na nag-o-optimize sa gastos at latency ng API sa pamamagitan ng pag-iimbak (caching) ng mga prompts sa iba't ibang LLM providers. Ang bawat provider ay may iba't ibang mekanismo at configuration para sa caching.
Overview
Ang prompt caching ay nagpapahintulot sa iyo na:
- Mag-cache ng malalaki at madalas gamiting prompts
- Bawasan ang gastos sa API sa pamamagitan ng pag-iwas sa paulit-ulit na pagpoproseso
- Pagandahin ang latency para sa mga cached na request
- Pamahalaan nang malinaw ang lifecycle ng cache
Iba-iba ang pagpapatupad ng caching ng iba't ibang providers:
- Google Gemini:
cachedContentsAPI - Azure OpenAI: Prompt caching na may TTL
- OpenRouter: Provider-specific caching
- Vertex Anthropic: Prompt caching na may cache control
Google Gemini: cachedContents API
Nagbibigay ang Google Gemini ng malinaw na pamamahala ng cache sa pamamagitan ng cachedContents API.
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' );
Best Practices for Gemini
- Set appropriate TTL: Balansehin ang pagtitipid sa gastos laban sa pagiging luma (staleness) ng cache
- Cache system prompts: Gamitin muli ang parehong system prompt sa iba't ibang requests
- Monitor cache usage: Subaybayan kung aling mga cache ang pinakamadalas gamitin
- Clean up expired caches: Regular na burahin ang mga cache na lumipas na ang expiration
Azure OpenAI: Prompt Caching
Sinusuportahan ng Azure OpenAI ang prompt caching na may awtomatikong pamamahala ng 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
Gumagamit ang Azure OpenAI ng HTTP headers para sa cache control:
Cache-Control: max_age=3600
Mga sinusuportahang values:
max_age=<seconds>: I-cache sa loob ng tinukoy na tagalno_cache: Huwag i-cache ang request na itono_store: Huwag i-cache at huwag gamitin muli
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";
Best Practices for Azure OpenAI
- Gamitin ang consistent prompts: Ang magkakaparehong prompts ay nakikinabang sa caching
- Magtakda ng makatwirang TTL: Balansehin ang gastos laban sa pagiging sariwa (freshness)
- Monitor cache metrics: Subaybayan ang paglikha ng cache kumpara sa mga hits
- Batch similar requests: Pangkat-pangkatin ang mga requests para ma-maximize ang cache hits