AI Maliyet Yönetimi ve Caching Teknikleri

Yapay zeka modelleri (GPT-4, Claude 3.5 vb.) her istekte gönderilen token miktarı üzerinden ücretlendirilir. Eğer kullanıcılarınız benzer soruları tekrar tekrar soruyorsa, her seferinde API'ye gitmek hem maliyetli hem de yavaştır.

Önbelleklemenin Avantajları
  • Maliyet: Tekrarlanan isteklerde %0 maliyet.
  • Hız: API yanıtı (2-10 sn) yerine önbellek yanıtı (<10 ms).
  • Süreklilik: API limitleriniz (Rate Limit) dolsa bile önbellekteki veriyi sunmaya devam edebilirsiniz.

1) Basit PHP File Caching

Küçük projeler için prompt'un hash değerine göre dosya tabanlı saklama yöntemi.

$prompt = "Yapay zeka nedir?";
$cacheFile = "cache/" . md5($prompt) . ".json";
$cacheTime = 3600 * 24; // 24 saat

if (file_exists($cacheFile) && (time() - filemtime($cacheFile) < $cacheTime)) {
    // Önbellekten oku
    $result = json_decode(file_get_contents($cacheFile), true);
} else {
    // API'ye git
    $result = callAI($prompt); 
    // Sonucu kaydet
    file_put_contents($cacheFile, json_encode($result));
}

2) Profesyonel Çözüm: Redis ile Caching

Yüksek trafikli uygulamalarda RAM üzerinden veri okumak için Redis en ideal çözümdür.

// Redis bağlantısı
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$key = "ai_response:" . sha1($prompt);

if ($redis->exists($key)) {
    return $redis->get($key);
} else {
    $response = $apiClient->generate($prompt);
    $redis->setex($key, 86400, $response); // 1 gün sakla
    return $response;
}

3) İleri Seviye: Semantic Caching

Sadece birebir aynı cümleleri değil, aynı anlama gelen soruları da önbellekten getirmek mümkündür. Bunun için sorulan soruyu vektörleştirip (Embedding), vektör veritabanında (Pinecone/Milvus) "benzer bir soru daha önce sorulmuş mu?" araması yapılır.

Token Tasarrufu İpucu

Sadece yanıtı değil, sistem mesajlarını (system prompt) kısa tutmak da maliyeti düşürür. Gereksiz örnekleri (few-shot) her istekte göndermek yerine, sadece karmaşık durumlarda ekleyin.