Нийлүүлэгчийг харгалздаг сануулгын кэшлэлт
Superdav AI Agent v1.12.0 нь нийлүүлэгчийг харгалздаг сануулгын кэшлэлт-ийг танилцуулж байгаа бөгөөд энэ нь өөр өөр LLM нийлүүлэгчдийн хооронд сануулгуудыг кэшлэснээр API зардал болон хоцролтыг оновчилдог. Нийлүүлэгч бүр өөр өөр кэшлэх механизм болон тохиргоотой.
Тойм
Сануулгын кэшлэлт танд дараах боломжийг олгоно:
- Том, байнга ашиглагддаг сануулгуудыг кэшлэх
- Давхардсан боловсруулалтаас зайлсхийж API зардлыг бууруулах
- Кэшлэгдсэн хүсэлтүүдийн хоцролтыг сайжруулах
- Кэшийн амьдралын мөчлөгийг ил тод удирдах
Өөр өөр нийлүүлэгчид кэшлэлтийг өөр өөрөөр хэрэгжүүлдэг:
- Google Gemini:
cachedContentsAPI - Azure OpenAI: TTL-тэй сануулгын кэшлэлт
- OpenRouter: Нийлүүлэгчид тусгайлсан кэшлэлт
- Vertex Anthropic: Кэшийн хяналттай сануулгын кэшлэлт
Google Gemini: cachedContents API
Google Gemini нь cachedContents API-аар дамжуулан кэшийн ил тод удирдлагыг хангадаг.
Тохиргоо
$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',
]
);