AI API Maliyet Takibi ve Token Yönetimi
Yapay zeka projelerinde sürdürülebilirliğin anahtarı, maliyetleri daha istek gönderilmeden tahmin edebilmek ve kullanım verilerini anlık olarak takip etmektir. Caching stratejileri ile gereksiz istekleri engellemek (bkz: Maliyet Yönetimi & Caching) işin bir parçasıyken, gönderilen her isteğin token bazlı maliyetini hesaplamak profesyonel bir gerekliliktir.
LLM modelleri kelimeleri değil, "token" adı verilen parçaları işler. Genellikle 1000 token yaklaşık 750 kelimeye tekabül eder. Maliyetler hem Input (giriş) hem de Output (çıkış) tokenları üzerinden ayrı ayrı hesaplanır.
1) Python ile Token Hesaplama (Tiktoken)
İsteği API'ye göndermeden önce kaç token harcayacağınızı hesaplamak, bütçe aşımını engellemenin en güvenli yoludur.
import tiktoken
def num_tokens_from_string(string: str, model_name: str) -> int:
# Modele uygun encoding seçilir (Örn: gpt-4o, gpt-3.5-turbo)
encoding = tiktoken.encoding_for_model(model_name)
num_tokens = len(encoding.encode(string))
return num_tokens
# Örnek Kullanım
prompt = "KodÖrnekleri.com ile yapay zeka öğreniyorum."
tokens = num_tokens_from_string(prompt, "gpt-4o")
print(f"Harcanacak Token: {tokens}")
2) Dinamik Maliyet Analizi (PHP Örneği)
API yanıtından gelen usage verisini veritabanına kaydederek günlük bütçe takibi yapabilirsiniz.
// API yanıtından gelen veriyi yakala
$usage = $apiResponse['usage'];
$prompt_tokens = $usage['prompt_tokens'];
$completion_tokens = $usage['completion_tokens'];
// Örn: GPT-4o-mini fiyatı (1M token başı $0.15 input, $0.60 output)
$input_cost = ($prompt_tokens / 1000000) * 0.15;
$output_cost = ($completion_tokens / 1000000) * 0.60;
$total_cost = $input_cost + $output_cost;
// Veritabanına logla
$db->query("INSERT INTO api_logs (user_id, total_tokens, cost) VALUES (1, {$usage['total_tokens']}, $total_cost)");
3) Bütçe Koruma Stratejileri
- Hard Limits: API sağlayıcı panelinden aylık bütçe sınırı (Hard Limit) koyun ve bu sınıra yaklaşıldığında otomatik uyarı (Alert) kurun.
- Max Tokens Parametresi: İsteklerinizde her zaman
max_tokensparametresini kullanın. Bu, modelin sonsuz döngüye girip tüm bakiyenizi bitirmesini engeller. - Model Seçimi: Analiz ve özetleme gibi basit işler için pahalı modeller (GPT-4o) yerine, 20-30 kat daha ucuz olan "mini" veya "flash" modellerini tercih edin.