API Maliyetlerini Hesaplama ve Öngörme
Token'ları sayıp model başına fiyatlandırmayı uygulayarak istek göndermeden önce maliyeti tahmin eden bir Python yardımcı programı yazın; böylece beklenmedik bir fatura ile karşılaşmayın.
API Maliyetlerini Hesaplama ve Öngörme, CoddyKit'te ücretsiz bir AI Engineering Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Engineering Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Engineering Academy kursu toplamda 4 dersten oluşur.
Maliyet Tahmini Neden Önemlidir
LLM uygulamalarının API maliyetleri, büyük ölçekte şaşırtıcı derecede yüksek olabilir. 0,002 ABD doları gibi görünen tek bir sorgu, 100.000 kez çalıştırıldığında 200 ABD dolarına dönüşür. Maliyet tahmini ve izleme olmadan yapay zekâ özellikleri, tüm altyapı harcamanızı gölgede bırakacak beklenmedik bulut faturaları oluşturabilir.
İyi haber şu ki LLM maliyetleri, isteği göndermeden önce tamamen öngörülebilirdir: modeli bilirsiniz, giriş tokenlarını tiktoken ile sayabilirsiniz ve max_tokens ayarınıza veya geçmiş ortalamalara göre çıkış tokenlarını tahmin edebilirsiniz. Maliyet tahminini uygulamanıza ilk günden eklemek fatura sürprizlerini önler.
OpenAI Fiyatlandırma Yapısı
OpenAI, giriş tokenları ile çıkış tokenları için ayrı ücret alır; çıkış tokenlarının maliyeti genellikle 3-4 kat daha yüksektir. Fiyatlar modele göre değişir. 2025 için bir rehber olarak (fiyatlar değiştiğinden güncel fiyatlandırma sayfasını mutlaka kontrol edin):
- gpt-4o-mini: milyon giriş tokenı başına yaklaşık 0,15 ABD doları, milyon çıkış tokenı başına yaklaşık 0,60 ABD doları
- gpt-4o: milyon giriş tokenı başına yaklaşık 2,50 ABD doları, milyon çıkış tokenı başına yaklaşık 10,00 ABD doları
- text-embedding-3-small: milyon token başına yaklaşık 0,02 ABD doları
Modeller arasındaki maliyet farkı çok büyüktür: gpt-4o, giriş tokenı başına gpt-4o-mini'dan yaklaşık 17 kat daha pahalıdır. Model seçimi, maliyet kontrolündeki en büyük kaldıraçtır; kalite gereksinimlerinizi karşılayan en ucuz modelle her zaman başlayın.
Maliyet Tahmini İçin Yardımcı Bir İşlev
Herhangi bir isteği göndermeden önce çağıracağınız bir maliyet tahmincisi oluşturun. Bu tahminci, tiktoken ile giriş tokenlarını sayar, max_tokens parametrenizden çıkış tokenlarını tahmin eder, model başına fiyatı bulur ve tahmini maliyeti dolar cinsinden döndürür. Bunu geliştirme sırasında çağırın ve sonuçları günlüğe kaydedin; böylece farklı sorgu türlerinin maliyetleri hakkında sezgi kazanırsınız.
import tiktoken
# Prices per million tokens as of early 2025
PRICING = {
'gpt-4o': {'input': 2.50, 'output': 10.00},
'gpt-4o-mini': {'input': 0.15, 'output': 0.60},
'gpt-4-turbo': {'input': 10.00, 'output': 30.00},
'text-embedding-3-small': {'input': 0.02, 'output': 0.0},
}
def estimate_cost(messages, model='gpt-4o-mini', expected_output_tokens=500):
enc = tiktoken.encoding_for_model(model)
input_tokens = sum(
len(enc.encode(m.get('content', ''))) + 4
for m in messages
) + 3
if model not in PRICING:
raise ValueError(f'Unknown model: {model}')
rates = PRICING[model]
input_cost = (input_tokens / 1_000_000) * rates['input']
output_cost = (expected_output_tokens / 1_000_000) * rates['output']
total = input_cost + output_cost
print(f'Model: {model}')
print(f'Input tokens: {input_tokens} (${input_cost:.6f})')
print(f'Est. output tokens: {expected_output_tokens} (${output_cost:.6f})')
print(f'Estimated total: ${total:.6f}')
return totalAPI Yanıtlarından Gerçek Maliyetleri İzleme
Her API çağrısından sonra yanıt nesnesi, kullanılan gerçek token sayılarını içerir. Gerçek maliyetleri günlüğe kaydetmek ve tahminlerinizle karşılaştırmak için bu değerleri çıkarın. Zamanla, tahmini ve gerçek çıkış tokenları arasındaki fark kullanım miktarını ne kadar doğru öngördüğünüzü gösterir; günlükler de özellik veya kullanıcı segmentine göre maliyet dökümü sağlar.
import openai
client = openai.OpenAI()
PRICING = {
'gpt-4o-mini': {'input': 0.15, 'output': 0.60},
}
def chat_with_cost_tracking(model, messages):
response = client.chat.completions.create(
model=model, messages=messages
)
usage = response.usage
rates = PRICING.get(model, {'input': 0, 'output': 0})
actual_cost = (
(usage.prompt_tokens / 1_000_000) * rates['input'] +
(usage.completion_tokens / 1_000_000) * rates['output']
)
print(f'Input: {usage.prompt_tokens} tokens')
print(f'Output: {usage.completion_tokens} tokens')
print(f'Total: {usage.total_tokens} tokens')
print(f'Actual cost: ${actual_cost:.6f}')
return response, actual_costAylık Maliyetleri Öngörme
İstek başına ortalama maliyeti ve beklenen istek hacmini öğrendikten sonra aylık maliyetleri öngörmek kolaydır. Farklı varsayımları denemenizi sağlayan bir maliyet modeli elektronik tablosu veya basit bir Python betiği oluşturun: günlük aktif kullanıcı sayısı iki katına çıkarsa ne olur? Kullanıcı eylemi başına 1 yerine 3 API çağrısı yapan bir özellik eklersek ne olur?
def project_monthly_cost(
avg_cost_per_request,
requests_per_day,
days=30
):
daily_cost = avg_cost_per_request * requests_per_day
monthly_cost = daily_cost * days
print(f'Avg cost/request: ${avg_cost_per_request:.6f}')
print(f'Requests/day: {requests_per_day:,}')
print(f'Daily cost: ${daily_cost:.2f}')
print(f'Monthly cost: ${monthly_cost:.2f}')
# Growth scenarios
for multiplier in [2, 5, 10]:
scaled = monthly_cost * multiplier
print(f' At {multiplier}x traffic: ${scaled:.2f}/month')
# Example: customer support bot
project_monthly_cost(
avg_cost_per_request=0.002, # 2 cents per support query
requests_per_day=5000
)Model Seçiminin Maliyete Etkisi
Maliyet azaltmadaki en büyük kaldıraç, kalite gereksiniminizi karşılayan en ucuz modeli kullanmaktır. Birçok görevde gpt-4o-mini, gpt-4o ile karşılaştırılabilir performans gösterir ancak maliyeti yaklaşık 17 kat daha düşüktür. Varsayılan olarak en güçlü modele geçmeden önce daha ucuz modeli kendi görevinizde kıyaslayın ve yalnızca kalite eşik değerinizin altına düşerse daha pahalı modele geçin.
Kademeli bir yönlendirme stratejisi daha da etkilidir: Gelen istekleri karmaşıklıklarına göre sınıflandırın ve basit sorguları ucuz modellere, karmaşık sorguları pahalı modellere yönlendirin. Trafiğin %70'ini ucuz modele, %30'unu pahalı modele yönlendirmek bile yapay zekâ maliyetlerinizin yaklaşık %70'inden tasarruf etmenizi sağlar.
İstem Uzunluğu ve Maliyet
İsteminizdeki her belirteç maliyet oluşturur. Anlamını kaybetmeden kısaltılabilecek ayrıntılı bir sistem istemi, her istekte API faturanızı doğrudan artırır. İstemlerinizin belirteç sayısını ölçün ve ifadeleri sıkılaştırabileceğiniz fırsatları arayın. Benzer şekilde, uzun birkaç örnekli örnekler çoğu zaman doğruluktan ödün vermeden daha kısa eşdeğerleriyle değiştirilebilir.
RAG sistemlerinde, alınan bağlam genellikle istemin en büyük bölümünü oluşturur. İyi seçilmiş 3 küçük parçanın yeterli olacağı durumlarda 10 büyük parça döndürmek, her sorguda belirteçleri boşa harcar. Gereksiz bağlamı en aza indirirken alaka düzeyini en üst düzeye çıkarmak için alma işleminizi ayarlayın.
Maliyet Verimliliği İçin Toplu İşleme
OpenAI, istekleri standart fiyatın %50 indirimli fiyatıyla eşzamansız olarak işleyen bir Toplu İşleme API'si sunar. Kullanım alanınız gecikmeye duyarlı değilse — belge işleme, gece çalışan analiz görevleri, toplu içerik üretimi gibi — Toplu İşleme API'si çok az kod değişikliğiyle maliyetlerinizi yarıya indirebilir.
Toplu istekler JSONL dosyaları olarak gönderilir, 24 saat içinde işlenir ve sonuçlar API'den alınır. Bu yöntem, bir programa göre çalışan ve gerçek zamanlı yanıt gerektirmeyen ön işleme işlem hatları için idealdir.
import openai
import json
client = openai.OpenAI()
# Create batch request file
requests = [
{'custom_id': f'doc-{i}',
'method': 'POST',
'url': '/v1/chat/completions',
'body': {
'model': 'gpt-4o-mini',
'messages': [{'role': 'user', 'content': f'Summarize document {i}'}],
'max_tokens': 200
}}
for i in range(100)
]
# Write to JSONL
with open('/tmp/batch_input.jsonl', 'w') as f:
for req in requests:
f.write(json.dumps(req) + '\n')
# Upload and submit (50% off list price)
print('Would submit batch for 100 documents at 50% discount')
# batch_file = client.files.create(file=open('/tmp/batch_input.jsonl','rb'), purpose='batch')
# batch = client.batches.create(input_file_id=batch_file.id, endpoint='/v1/chat/completions', completion_window='24h')Harcama Sınırlarını Belirleme
Kontrolden çıkan maliyetleri önlemek için her zaman harcama sınırları yapılandırın. OpenAI panosunda, sınıra ulaşıldığında API erişimini kesen aylık harcama üst sınırları belirleyebilirsiniz. Kabul edebileceğiniz azami harcamaya sabit bir sınır, bu değerin %80'ine de sabit sınıra ulaşmadan önce e-posta uyarısı almak için esnek bir sınır koyun.
Uygulama kodunuzda, veritabanınızda izlenen kullanıcı veya özellik başına bütçe uygulayın. Her API çağrısından önce bütçeyi kontrol edin ve tükenmişse bir hata döndürün. Böylece tek bir kontrolden çıkan kullanıcının veya toplu işteki bir hatanın aylık kotanızın tamamını birkaç saat içinde tüketmesi önlenir.
Gereksiz API Çağrılarını Önlemek İçin Önbelleğe Alma
En ucuz API çağrısı, hiç yapmadığınız çağrıdır. Özdeş istekleri API'yi yeniden çağırmak yerine önbellekten sunmak için uygulama katmanında önbelleğe alma uygulayın. İstemin SHA256 karmasıyla anahtarlanan basit bir Redis önbelleği bile üretim uygulamasındaki gereksiz çağrıların önemli bir bölümünü ortadan kaldırabilir.
Gömüler için önbelleğe alma özellikle etkilidir: aynı metin yalnızca bir kez gömülmelidir. Gömüleri, özgün metni anahtar olarak kullanarak vektör veritabanınızda saklayın ve gömüler API'sini çağırmadan önce mevcut bir gömü olup olmadığını kontrol edin. Bir RAG işlem hattında belge gömüleri dizin oluşturma sırasında bir kez hesaplanır ve onları alan her sorguda yeniden kullanılır.
import hashlib
import json
# Simple in-memory cache (use Redis in production)
_cache = {}
def cached_completion(client, model, messages, **kwargs):
cache_key = hashlib.sha256(
json.dumps({'model': model, 'messages': messages}).encode()
).hexdigest()
if cache_key in _cache:
print('Cache HIT - no API call made')
return _cache[cache_key]
response = client.chat.completions.create(
model=model, messages=messages, **kwargs
)
_cache[cache_key] = response
print('Cache MISS - API call made')
return responseMaliyet Panosu Oluşturma
Üretimde, yapay zekâ maliyetlerinizi özellik, kullanıcı ve modele göre ayrıntılı olarak görebilmeniz gerekir. Her API çağrısının belirteç sayılarını ve ilişkili üst verilerini (kullanıcı kimliği, özellik adı, model) zaman serisi veritabanına kaydederek bir maliyet panosu oluşturun. Ardından şu soruları yanıtlamak için verileri toplulaştırın: En fazla harcamaya hangi özellik neden oluyor? Yoğun kullanıcılar orantısız maliyetler mi oluşturuyor? İstem değişikliğinden sonra sorgu başına maliyet artış eğiliminde mi?
Bu görünürlük, maliyetleri nerede azaltacağınızı tahmin etmek yerine verilere dayalı iyileştirme kararları almak için gereklidir. Çoğu şirket, özelliklerinin %20'sinin yapay zekâ harcamalarının %80'ini oluşturduğunu keşfeder; bu özellikleri iyileştirmenin etkisi de orantısız derecede büyük olur.
Hızlı Kontrol
Bu dersteki yapay zekâ mühendisliği kavramlarını anlayıp anlamadığınızı sınayın.
Ders Özeti
Bu derste şunları öğrendiniz: API maliyetleri, göndermeden önce tiktoken ile giriş belirteçleri sayılarak ve çıkış belirteçleri tahmin edilerek öngörülebilir, model seçimi en büyük maliyet kaldıraçlarından biridir — uygun görevlerde gpt-4o-mini, gpt-4o'dan 17 kat daha ucuz olabilir ve önbelleğe alma, toplu işleme ve harcama sınırları üretimde kontrolden çıkan maliyetleri önler. Sırada, bağlam penceresini aşan uzun konuşmaları yönetme stratejilerini inceleyeceğiz.
Yapay zeka eğitmeniyle Python öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 30
- Dersler
- 120
Sıkça Sorulan Sorular
“API Maliyetlerini Hesaplama ve Öngörme” dersi ücretsiz mi?
Evet — “API Maliyetlerini Hesaplama ve Öngörme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Engineering Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Engineering Academy kursu toplamda 4 dersten oluşur.
“API Maliyetlerini Hesaplama ve Öngörme” dersinde ne öğreneceğim?
Token'ları sayıp model başına fiyatlandırmayı uygulayarak istek göndermeden önce maliyeti tahmin eden bir Python yardımcı programı yazın; böylece beklenmedik bir fatura ile karşılaşmayın. AI Engineering Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Engineering Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Engineering Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“API Maliyetlerini Hesaplama ve Öngörme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Engineering Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Engineering Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Token Nedir
- Bağlam Pencereleri: Boyut ve Sonuçları
- API Maliyetlerini Hesaplama ve Öngörme
- Bağlam Sınırları İçinde Kalma Stratejileri