การแคช Prompt ที่รับรู้ถึง Provider
Superdav AI Agent v1.12.0 ได้เพิ่มฟีเจอร์ provider-aware prompt caching ซึ่งช่วยเพิ่ มประสิทธิภาพและลดค่าใช้จ่าย API โดยการแคช Prompt ข้าม Provider ของ LLM ต่างๆ เนื่องจากแต่ละ Provider มีกลไกและการตั้งค่าการแคชที่แตกต่างกัน
ภาพรวม
Prompt caching ช่วยให้คุณสามารถ:
- แคช Prompt ขนาดใหญ่ที่ถูกใช้งานบ่อย
- ลดค่าใช้จ่าย API โดยการหลีกเลี่ยงการประมวลผลซ้ำซ้อน
- ปรับปรุงความหน่วง (latency) สำหรับคำขอที่ถูกแคชไว้
- จัดการวงจรชีวิตของ Cache ได้อย่างชัดเจน
Provider ต่างๆ มีการนำการแคชไปใช้ที่แตกต่างกัน:
- Google Gemini: API
cachedContents - Azure OpenAI: Prompt caching พร้อม TTL
- OpenRouter: การแคชเฉพาะ Provider
- Vertex Anthropic: Prompt caching พร้อม cache control
Google Gemini: cachedContents API
Google Gemini มี การจัดการ Cache ที่ชัดเจนผ่าน API cachedContents
การตั้งค่า (Configuration)
$config = [
'provider' => 'google-gemini',
'model' => 'gemini-2.0-flash',
'caching' => [
'enabled' => true,
'ttl' => 3600, // 1 ชั่วโมงในหน่วยวินาที
'max_tokens' => 1000000, // จำนวน Token สูงสุดที่สามารถแคชได้
],
];
การสร้าง Prompt ที่ถูกแคช (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,
]
);
// คืนค่า: ['cache_id' => 'abc123', 'expires_at' => timestamp]
การใช้ Prompt ที่ถูกแคช (Using a Cached Prompt)
$response = $gemini->generate(
[
'cache_id' => 'abc123',
'prompt' => 'User question here',
]
);
วงจรชีวิตของ Cache (Cache Lifecycle)
// แสดงรายการเนื้อหาที่ถูกแคช
$caches = $gemini->list_cached_contents();
// ดึงรายละเอียด Cache
$cache = $gemini->get_cached_content( 'abc123' );
// ขยาย TTL ของ Cache
$gemini->update_cached_content(
'abc123',
['ttl' => 7200] // ขยายเป็น 2 ชั่วโมง
);
// ลบ Cache
$gemini->delete_cached_content( 'abc123' );
แนวทางปฏิบัติที่ดีที่สุดสำหรับ Gemini (Best Practices for Gemini)
- ตั้งค่า TTL ที่เหมาะสม: สร้างสมดุลระหว่างการประหยัดต้นทุนกับการที่ Cache ล้าสมัย
- แคช System prompts: ใช้ System prompt เดิมซ้ำๆ ในหลายคำขอ
- ตรวจสอบการใช้งาน Cache: ติดตามว่า Cache ใดถูกใช้งานมากที่สุด
- ล้าง Cache ที่หมดอายุ: ลบ Cache ที่ไม่ได้ใช้งานเป็นระยะๆ
Azure OpenAI: Prompt Caching
Azure OpenAI รองรับ Prompt caching พร้อมการจัดการ TTL อัตโนมัติ
การตั้งค่า (Configuration)
$config = [
'provider' => 'azure-openai',
'model' => 'gpt-4-turbo',
'api_version' => '2024-08-01-preview',
'caching' => [
'enabled' => true,
'cache_control' => 'max_age=3600',
],
];