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.

Token Nedir?

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.

Python: Tiktoken Library
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.

PHP: Usage Tracking
// 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_tokens parametresini 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.
💡 İpucu: Geliştirme aşamasında gerçek API yerine Mock API veya yerel Ollama modellerini kullanarak sıfır maliyetle testlerinizi yapabilirsiniz.