Кэшкунии промпт бо огоҳӣ аз провайдер
Superdav AI Agent v1.12.0 кэшкунии промпт бо огоҳӣ аз провайдер-ро муаррифӣ мекунад, ки хароҷоти API ва таъхирро тавассути кэшкунии про мптҳо дар байни провайдерҳои гуногуни LLM оптимизатсия мекунад. Ҳар як провайдер механизмҳо ва конфигуратсияҳои гуногуни кэшкунӣ дорад.
Шарҳи умумӣ
Кэшкунии промпт ба шумо имкон медиҳад:
- Промптҳои калон ва зуд-зуд истифодашавандаро кэш кунед
- Хароҷоти API-ро бо пешгирӣ аз коркарди такрорӣ кам кунед
- Таъхирро барои дархостҳои кэшшуда беҳтар кунед
- Давраи ҳаёти кэшро ошкоро идора кунед
Провайдерҳои гуногун кэшкуниро ба таври гуногун амалӣ мекунанд:
- Google Gemini: API-и
cachedContents - Azure OpenAI: Кэшкунии промпт бо TTL
- OpenRouter: Кэшкунии махсуси провайдер
- Vertex Anthropic: Кэшкунии промпт бо назорати кэш
Google Gemini: API-и cachedContents
Google Gemini идоракунии ошкори кэшро тавассути API-и cachedContents таъмин мекунад.
Конфигуратсия
$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
],
];
Эҷоди промпти кэшшуда
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]
Истифодаи промпти кэшшуда
$response = $gemini->generate(
[
'cache_id' => 'abc123',
'prompt' => 'User question here',
]
);
Давраи ҳаёти кэш
// 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
- 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' => '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,
// ]
Сарлавҳаҳои кэш
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 creation: $cache_tokens tokens\n";
echo "Cache hits: $cache_hits tokens\n";
Беҳтарин таҷрибаҳо барои Azure OpenAI
- Промптҳои пайвастаро истифода баред: Промптҳои якхела аз кэшкунӣ фоида мебинанд
- TTL-и оқилона таъин кунед: Хароҷотро бо тозагӣ мувозинат кунед
- Метрикаҳои кэшро назорат кунед: Эҷоди кэшро нисбат ба попаданияҳо пайгирӣ кунед
- Дархостҳои монандро гурӯҳбандӣ кунед: Дархостҳоро гурӯҳбандӣ кунед, то попаданияҳои кэшро ба ҳадди аксар расонед
OpenRouter: Кэшкунии махсуси провайдер
OpenRouter кэшкуниро тавассути провайдерҳои зеринаш (OpenAI, Anthropic ва ғайра) дастгирӣ мекунад.
Конфигуратсия
$config = [
'provider' => 'openrouter',
'model' => 'openai/gpt-4-turbo',
'caching' => [
'enabled' => true,
'provider_cache' => 'openai', // Use OpenAI's caching
],
];
Истифодаи кэшкунии OpenRouter
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',
]
);
Имконоти махсуси провайдер
Провайдерҳои гуногун механизмҳои гуногуни кэшкунӣ доранд:
// 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
- Кэшкунии провайдери худро бидонед: Ҳар як провайдер механизмҳои гуногун дорад
- Рафтори кэшкуниро санҷед: Боварӣ ҳосил кунед, ки кэшкунӣ бо провайдери интихобкардаи шумо кор мекунад
- Хароҷотро назорат кунед: Сарфаро аз кэшкунӣ пайгирӣ кунед
- Моделҳои пайвастаро истифода баред: Иваз кардани моделҳо попаданияҳои кэшро мешиканад
Vertex Anthropic: Кэшкунии промпт бо назорати кэш
Vertex Anthropic (Google Cloud) кэшкунии промптро бо назорати ошкори кэш дастгирӣ мекунад.
Конфигуратсия
$config = [
'provider' => 'vertex-anthropic',
'model' => 'claude-3-opus',
'project_id' => 'your-gcp-project',
'region' => 'us-central1',
'caching' => [
'enabled' => true,
'cache_control' => [
'type' => 'ephemeral',
'max_tokens' => 1000000,
],
],
];
Истифодаи Vertex Anthropic Caching
use Superdav\AI\Providers\VertexAnthropic;
$vertex = new VertexAnthropic( $config );
$response = $vertex->generate(
[
'system_prompt' => 'You are a helpful assistant...',
'context' => 'Large context document...',
'prompt' => 'User question here',
'cache_control' => [
'type' => 'ephemeral',
'max_tokens' => 1000000,
],
]
);
// Response includes cache metrics:
// [
// 'content' => '...',
// 'usage' => [
// 'input_tokens' => 1000,
// 'cache_creation_input_tokens' => 500,
// 'cache_read_input_tokens' => 300,
// ],
// ]
Намудҳои идоракунии кеш
- ephemeral: Кеш барои давомнокии дархост (пешфарз)
- persistent: Кеш дар байни якчанд дархост (агар дастгирӣ шавад)
Мониторинги истифодаи кеш
$response = $vertex->generate( [...] );
$usage = $response['usage'];
$cache_created = $usage['cache_creation_input_tokens'] ?? 0;
$cache_read = $usage['cache_read_input_tokens'] ?? 0;
echo "Cache created: $cache_created tokens\n";
echo "Cache read: $cache_read tokens\n";
Беҳтарин таҷрибаҳо барои Vertex Anthropic
- Истифодаи кеши ephemeral: Барои кешкунии як-сеансӣ хуб аст
max_tokens-ро мувофиқ танзим кунед: Андозаи кешро бо хароҷот мувозинат кунед- Метрикаҳои кешро мониторинг кунед: Самаранокии кешро пайгирӣ кунед
- Бо сарбории кори худ санҷед: Тафтиш кунед, ки кешкунӣ барои мавриди истифодаи шумо фоида дорад
Стратегияи кешкунӣ байни провайдерҳо
Танзимоти ягона
$config = [
'caching' => [
'enabled' => true,
'default_ttl' => 3600,
'providers' => [
'google-gemini' => [
'ttl' => 3600,
'max_tokens' => 1000000,
],
'azure-openai' => [
'cache_control' => 'max_age=3600',
],
'vertex-anthropic' => [
'cache_control' => [
'type' => 'ephemeral',
'max_tokens' => 1000000,
],
],
],
],
];
Муайянкунии провайдер
$provider = $config['provider'];
$cache_config = $config['caching']['providers'][ $provider ]
?? $config['caching'];
// Use provider-specific caching configuration
Стратегияи fallback
try {
// Try caching with primary provider
$response = $primary_provider->generate( $request );
} catch ( CacheException $e ) {
// Fall back to non-cached request
$response = $primary_provider->generate(
array_merge( $request, ['cache_control' => 'no_cache'] )
);
}
Оптимизатсияи хароҷот
Ҳисоб кардани сарфа
$cache_created_tokens = $response['cache_creation_input_tokens'] ?? 0;
$cache_read_tokens = $response['cache_read_input_tokens'] ?? 0;
$regular_tokens = $response['input_tokens'] ?? 0;
// Typical pricing (varies by provider):
$cache_creation_cost = $cache_created_tokens * 0.00001; // 10x cheaper
$cache_read_cost = $cache_read_tokens * 0.000001; // 100x cheaper
$regular_cost = $regular_tokens * 0.00001;
$total_cost = $cache_creation_cost + $cache_read_cost + $regular_cost;
$savings = ($regular_tokens * 0.00001) - $total_cost;
echo "Estimated savings: \$$savings\n";
Маслиҳатҳои оптимизатсия
- Кеш кардани prompt-ҳои калони системавӣ: Бузургтарин сарфаи хароҷот
- Истифодаи дубораи контекст: Ҳуҷҷатҳои контексти зуд-зуд истифодашавандаро кеш кунед
- Дархостҳои batch: Дархостҳои монандро гурӯҳбандӣ кунед, то cache hit-ҳоро ба ҳадди аксар расонед
- Мониторинги самаранокии кеш: Сарфаи воқеиро пайгирӣ кунед
- Танзими TTL: Хароҷотро бо тозагӣ мувозинат кунед
Ҳалли мушкилот
Кеш истифода намешавад
- Тафтиш кунед, ки кешкунӣ дар танзимот фаъол аст
- Санҷед, ки prompt-ҳо якхелаанд (кешкунӣ мувофиқати дақиқро талаб мекунад)
- Тафтиш кунед, ки муҳлати кеш ба охир нарасидааст
- Маҳдудиятҳои кеши махсуси провайдерро санҷед
Эҷоди кеш ноком мешавад
- Тафтиш кунед, ки андозаи кеш дар доираи маҳдудиятҳои провайдер аст
- Санҷед, ки синтаксиси идоракунии кеш дуруст аст
- Боварӣ ҳосил кунед, ки провайдер барои модели шумо кешкуниро дастгирӣ мекунад
- Ҳуҷҷатҳои провайдерро барои маҳдудиятҳо баррасӣ кунед
Хароҷоти ғайричашмдошт
- Токенҳои эҷоди кешро нисбат ба токенҳои хондани кеш мониторинг кунед
- Тафтиш кунед, ки кеш воқеан истифода мешавад
- Норасоиҳои кешро аз сабаби фарқиятҳои prompt санҷед
- Дар бораи танзими TTL ё стратегияи кеш фикр кунед
Муқоисаи про вайдерҳо
| Хусусият | Gemini | Azure OpenAI | OpenRouter | Vertex Anthropic |
|---|---|---|---|---|
| Cache API | cachedContents | HTTP headers | Махсуси провайдер | Идоракунии кеш |
| Идоракунии TTL | Ошкор | Тавассути headers | Вобаста ба провайдер | Ephemeral/persistent |
| Андозаи максималии кеш | 1M токен | Вобаста ба провайдер | Вобаста ба провайдер | 1M токен |
| Коҳиши хароҷот | 90% | 90% | Вобаста ба провайдер | 90% |
| Мониторинг | Муфассал | Тавассути метрикаҳо | Вобаста ба провайдер | Тавассути истифода |
Қадамҳои минбаъда
- Провайдери худро интихоб кунед: Дар асоси ниёзҳои худ интихоб кунед
- Кешкуниро танзим кунед: Кешкунии махсуси провайдерро роҳандозӣ кунед
- Кешкуниро санҷед: Тафтиш кунед, ки он бо prompt-ҳои шумо кор мекунад
- Истифодаро мониторинг кунед: Cache hit-ҳо ва сарфаи хароҷотро пайгирӣ кунед
- Оптимизатсия кунед: TTL ва стратегияи кешро дар асоси натиҷаҳо танзим кунед