0Pricing
AI Prompt Engineering · Ders

Maliyet ve Gecikme Dengeleri

Düşünme belirteci bütçeleri, çıkarım maliyetleri ve hibrit yönlendirme stratejileri.

Maliyet ve Gecikme Dengeleri, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 4. 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 Prompt Engineering öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Prompt Engineering kursu toplamda 4 dersten oluşur.

Maliyet-Kalite-Gecikme Üçgeni

LLM sistem tasarımında temel bir üçgen vardır: maliyet, kalite ve gecikme. Herhangi bir anda bu üçünden en fazla ikisi için en iyi duruma getirme yapabilirsiniz.

  • Düşük maliyet + Yüksek kalite = Yavaş (akıl yürütme modelleri, yavaş üretim)
  • Düşük maliyet + Düşük gecikme = Daha düşük kalite (küçük ve hızlı modeller)
  • Yüksek kalite + Düşük gecikme = Pahalı (akış özelliğini kullanan akıl yürütme modeli)

Her mimari kararı, bu üçgen içindeki bir ödünleşmedir.

Akıl Yürütme Modeli Fiyatlandırması

Düşünme belirteçleri, standart girdi ve çıktı belirteçlerine ek olarak ücretlendirilir. Bir akıl yürütme modeli çağrısının maliyeti şunları içerir: girdi belirteçleri + düşünme belirteçleri + çıktı belirteçleri.

Hızlı ve küçük modellerle karşılaştırıldığında: o3, belirteç başına GPT-4o-mini'dan yaklaşık 20 kat daha pahalıdır; genişletilmiş düşünme kullanan Claude Opus ise çıktı belirteci başına Claude Haiku'dan yaklaşık 10-15 kat daha pahalıdır.

# Rough cost estimates (2025 pricing, may change)
# Source: provider pricing pages

PRICING = {
    # (input $/1M tokens, output $/1M tokens)
    'gpt-4o-mini':       (0.15,   0.60),
    'gpt-4o':            (2.50,  10.00),
    'o3-mini':           (1.10,   4.40),
    'o3':                (10.0,  40.00),
    'claude-haiku-4-5':  (0.25,   1.25),
    'claude-sonnet-4-5': (3.00,  15.00),
    'claude-opus-4-5':   (15.0,  75.00),
}

def estimate_cost(model, input_tokens, output_tokens, thinking_tokens=0):
    inp_price, out_price = PRICING[model]
    # Thinking tokens billed as output tokens
    total_out = output_tokens + thinking_tokens
    cost = (input_tokens / 1e6 * inp_price) + (total_out / 1e6 * out_price)
    return cost

# A single hard question with 8000 thinking tokens:
cost = estimate_cost('claude-opus-4-5', 500, 300, thinking_tokens=8000)
print(f'Cost per call: ${cost:.4f}')

Düşünme Belirteci Ek Yükü

Düşünme belirteçleri çoğu zaman çıktı belirteçlerinden çok daha fazladır. Kısa, 200 sözcüklük bir yanıtın arkasında 5.000-15.000 düşünme belirteci bulunabilir. Bu düşünme belirteçleri, çıktı belirteçleriyle aynı ücret üzerinden hesaplanır.

Akıl yürütme modellerindeki maliyet çarpanını öncelikle yanıtın uzunluğu değil, düşünme belirteçleri belirler.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

def analyze_token_breakdown(question, budget_tokens):
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=budget_tokens + 2000,
        thinking={'type': 'enabled', 'budget_tokens': budget_tokens},
        messages=[{'role': 'user', 'content': question}]
    )

    # Usage breakdown
    usage = response.usage
    print(f'Input tokens:  {usage.input_tokens:,}')
    print(f'Output tokens: {usage.output_tokens:,}')

    # Thinking tokens are in cache_creation_input_tokens on some APIs
    # or can be estimated from thinking block content length
    thinking_blocks = [b for b in response.content if b.type == 'thinking']
    est_thinking = sum(len(b.thinking.split()) * 1.3 for b in thinking_blocks)
    print(f'Est. thinking tokens: {int(est_thinking):,}')
    answer = next(b.text for b in response.content if b.type == 'text')
    print(f'Answer words: {len(answer.split())}')

analyze_token_breakdown(
    'Explain the trade-offs between REST and GraphQL APIs.',
    budget_tokens=5000
)

Gecikme: Neler Beklemelisiniz

Farklı model yapılandırmaları için gözlemlenen gecikme aralıkları (yük ve sorunun zorluğuna göre büyük ölçüde değişir):

  • Claude Haiku: 0,5-2 saniye
  • Claude Sonnet: 2-8 saniye
  • Claude Opus (düşünme yok): 5-15 saniye
  • Claude Opus (5K düşünme): 15-40 saniye
  • Claude Opus (16K düşünme): 40-90 saniye
  • o3 (yüksek çaba): 30-120 saniye
import time
import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

def benchmark_latency(prompt, model, budget_tokens=None):
    kwargs = {
        'model': model,
        'max_tokens': 2000,
        'messages': [{'role': 'user', 'content': prompt}]
    }
    if budget_tokens:
        kwargs['thinking'] = {'type': 'enabled', 'budget_tokens': budget_tokens}
        kwargs['max_tokens'] = budget_tokens + 2000

    start = time.time()
    response = client.messages.create(**kwargs)
    elapsed = time.time() - start
    answer = response.content[-1].text
    print(f'{model} (budget={budget_tokens}): {elapsed:.1f}s')
    return elapsed, answer

benchmark_latency('Name 3 planets', 'claude-haiku-4-5')
benchmark_latency('Solve x^2 - 5x + 6 = 0', 'claude-opus-4-5', 3000)
benchmark_latency('Design a fault-tolerant payment system', 'claude-opus-4-5', 10000)

Akışla İlk Belirtece Kadar Geçen Süre

Akıl yürütme modellerinin toplam gecikmesi yüksek olsa da akış kullanıldığında ilk belirtece kadar geçen süre (TTFT) çok daha kısa olabilir; model, düşünme tamamlanır tamamlanmaz yanıtı akışla göndermeye başlar. Akış kullanarak kullanıcıya hızlıca bir şey gösterin.

import anthropic
import time

client = anthropic.Anthropic(api_key='sk-ant-...')

def stream_with_timing(prompt):
    start = time.time()
    first_token_time = None
    full_text = ''

    with client.messages.stream(
        model='claude-opus-4-5',
        max_tokens=10000,
        thinking={'type': 'enabled', 'budget_tokens': 5000},
        messages=[{'role': 'user', 'content': prompt}]
    ) as stream:
        in_answer = False
        for text_chunk in stream.text_stream:
            if not in_answer:
                in_answer = True
                first_token_time = time.time() - start
                print(f'Time to first answer token: {first_token_time:.1f}s')
            full_text += text_chunk
            print(text_chunk, end='', flush=True)

    total_time = time.time() - start
    print(f'\nTotal time: {total_time:.1f}s')

stream_with_timing('List 5 key benefits of microservices.')

Hibrit Mimari Deseni

Uygulamada kullanılabilecek bir üretim ortamı deseni şudur: Önce hızlı ve standart bir model kullanın. Sonuç tatmin ediciyse (kalite ölçütünüzle denetleyin) sonucu hemen döndürün. Tatmin edici değilse bir akıl yürütme modeline geçin. Böylece ortalama gecikmeyi ve maliyeti düşük tutarken zor durumlarda yüksek doğruluk elde edersiniz.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

def hybrid_query(question, quality_threshold=0.7):
    # Step 1: Try fast model first
    r_fast = client.messages.create(
        model='claude-haiku-4-5',
        max_tokens=300,
        messages=[{'role': 'user', 'content': question}]
    )
    fast_answer = r_fast.content[0].text

    # Step 2: Quick confidence check
    confidence_check = client.messages.create(
        model='claude-haiku-4-5',
        max_tokens=20,
        messages=[{
            'role': 'user',
            'content': (
                f'Q: {question}\nA: {fast_answer}\n'
                f'Rate answer quality 0.0-1.0. Number only:'
            )
        }]
    )
    try:
        quality = float(confidence_check.content[0].text.strip())
    except ValueError:
        quality = 0.5

    if quality >= quality_threshold:
        return fast_answer, 'fast'

    # Step 3: Escalate to reasoning model
    r_slow = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=8000,
        thinking={'type': 'enabled', 'budget_tokens': 6000},
        messages=[{'role': 'user', 'content': question}]
    )
    return next(b.text for b in r_slow.content if b.type == 'text'), 'reasoning'

Ölçekli Maliyet: Hesabı Yapmak

Sınama sırasında uygun maliyetli görünen akıl yürütme modelleri, ölçek büyüdüğünde önemli maliyetlere dönüşür. Bir mimari seçmeden önce daima maliyetleri öngörün.

def project_monthly_cost(daily_queries, model_config):
    """
    Project monthly API costs for different configurations.
    model_config: dict with 'cost_per_query' key
    """
    monthly_queries = daily_queries * 30
    monthly_cost = monthly_queries * model_config['cost_per_query']

    print(f'Daily queries: {daily_queries:,}')
    print(f'Monthly queries: {monthly_queries:,}')
    print(f'Cost per query: ${model_config["cost_per_query"]:.4f}')
    print(f'Monthly cost: ${monthly_cost:,.2f}')
    return monthly_cost

# Compare configurations at 10,000 queries/day
configs = [
    {'name': 'All Haiku', 'cost_per_query': 0.0005},
    {'name': 'All Sonnet', 'cost_per_query': 0.015},
    {'name': 'All Opus+Thinking', 'cost_per_query': 0.85},
    {'name': 'Hybrid (90% Haiku, 10% Opus)', 'cost_per_query': 0.9*0.0005 + 0.1*0.85},
]

for config in configs:
    print(f'\n--- {config["name"]} ---')
    project_monthly_cost(10_000, config)

Maliyetleri Azaltmak için İstem Önbellekleme

Uzun ve tekrarlanan sistem istemleri ya da bağlam içeren akıl yürütme modeli çağrılarında istem önbellekleme kullanın. Önbelleğe alınan belirteçler, önbelleğe alınmayanlara göre %90 daha ucuzdur. Aynı büyük bağlamın (belgeler, kod) tekrar tekrar gönderildiği durumlarda bu yöntem özellikle etkilidir.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

LONG_CONTEXT = 'A' * 50000  # Simulated large document

# With prompt caching: mark large context as cacheable
response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=10000,
    thinking={'type': 'enabled', 'budget_tokens': 6000},
    system=[
        {
            'type': 'text',
            'text': f'You are analyzing this document: {LONG_CONTEXT}',
            'cache_control': {'type': 'ephemeral'}  # Cache this prefix
        }
    ],
    messages=[{
        'role': 'user',
        'content': 'What are the main themes in this document?'
    }]
)

usage = response.usage
print(f'Cache read tokens: {getattr(usage, "cache_read_input_tokens", 0):,}')
print(f'Cache creation tokens: {getattr(usage, "cache_creation_input_tokens", 0):,}')
# Second call with same system content costs ~90% less on cached tokens

Maliyet Verimliliği için Toplu İşleme

OpenAI ve Anthropic, zamana duyarlı olmayan istekler için %50 maliyet indirimi sunan toplu işlem arayüzleri sağlar. Sonuçlar için saatlerce bekleyebilecek büyük miktarda sorgunuz varsa toplu işlem, en uygun maliyetli seçenektir.

import anthropic
import json

client = anthropic.Anthropic(api_key='sk-ant-...')

# Batch API: 50% cheaper, 24-hour turnaround
requests = [
    {
        'custom_id': f'query_{i}',
        'params': {
            'model': 'claude-opus-4-5',
            'max_tokens': 1024,
            'messages': [{'role': 'user', 'content': f'Analyze dataset row {i}'}]
        }
    }
    for i in range(100)  # 100 queries in one batch
]

# Submit batch
batch = client.messages.batches.create(requests=requests)
print(f'Batch ID: {batch.id}')
print(f'Status: {batch.processing_status}')
print(f'Requests: {batch.request_counts}')
# Poll batch.id for results when processing_status == 'ended'

Belirteç Bütçesini Optimize Etme

budget_tokens değerini sorun sınıfınıza uygun boyutlandırın. Basit bir sorun için 16K bütçe kullanmak belirteçleri boşa harcar ve gecikmeyi artırır. Sorun zorluğu düzeylerine göre bir bütçe başvuru tablosu oluşturun.

BUDGET_LOOKUP = {
    'simple_math':        1000,   # Arithmetic, basic algebra
    'medium_code':        3000,   # Function implementation, debugging
    'complex_reasoning':  8000,   # System design, complex analysis
    'research_grade':    16000,   # Proofs, research-level problems
}

def budget_for_query(query):
    q_lower = query.lower()
    if any(kw in q_lower for kw in ['calculate', 'what is', 'how many', 'convert']):
        return BUDGET_LOOKUP['simple_math']
    elif any(kw in q_lower for kw in ['code', 'function', 'bug', 'implement']):
        return BUDGET_LOOKUP['medium_code']
    elif any(kw in q_lower for kw in ['design', 'architecture', 'analyze', 'strategy']):
        return BUDGET_LOOKUP['complex_reasoning']
    else:
        return BUDGET_LOOKUP['medium_code']  # Safe default

print(budget_for_query('What is 15% of 340?'))       # 1000
print(budget_for_query('Implement a trie in Python')) # 3000
print(budget_for_query('Design a CDC pipeline'))      # 8000

LLM Uygulamaları için SLA Belirleme

Standart ve akıl yürütme modelleri arasında seçim yapmadan önce uygulamanızın Hizmet Düzeyi Sözleşmesi (SLA) gereksinimlerini tanımlayın:

  • P50 gecikmesi: Tipik kullanıcı deneyimi
  • P99 gecikmesi: En kötü durumdaki kullanıcı deneyimi
  • Belirteç bütçesi: Kullanıcı sorgusu başına azami maliyet
  • Kalite alt sınırı: Sınama kümenizde kabul edilebilir en düşük doğruluk

Akıl yürütme modelleri, etkileşimli uygulamalar için P99 gecikmesine ilişkin SLA'ları kolayca ihlal eder. Mimari kararları kesinleştirmeden önce kısıtlamalarınızı bilin.

Bilgi Denetimi: Akıl Yürütme Modeli Maliyetleri

Standart modellere kıyasla akıl yürütme modellerini kullanmanın yüksek maliyetlerinin temel nedeni nedir?

Özet: Maliyet ve Gecikme Dengeleri

Akıl yürütme modelleri pahalıdır: Düşünme belirteçleri çıktı belirteçleri olarak ücretlendirilir ve görünür yanıttan 10-50 kat daha fazla olabilir. Zor sorunlarda gecikme 15-120 saniye arasında değişir. Şu yöntemlerle etkilerini azaltabilirsiniz: hibrit desen (önce hızlı model, yalnızca güven düşük olduğunda daha güçlü modele geçiş), tekrarlanan büyük bağlamlar için istem önbellekleme (önbelleğe alınan belirteçlerde %90 indirim), çevrim dışı iş yükleri için toplu işlem arayüzü (%50 indirim) ve budget_tokens değerini sorun zorluğuna göre uygun boyutlandırma. Ölçek büyüdüğünde, sorgu başına küçük maliyetler bile çarpılarak yüksek aylık faturalara dönüşür; bir mimariyi kesinleştirmeden önce daima maliyetleri öngörün.

Sıkça Sorulan Sorular

“Maliyet ve Gecikme Dengeleri” dersi ücretsiz mi?

Evet — “Maliyet ve Gecikme Dengeleri” 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 Prompt Engineering kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Prompt Engineering kursu toplamda 4 dersten oluşur.

“Maliyet ve Gecikme Dengeleri” dersinde ne öğreneceğim?

Düşünme belirteci bütçeleri, çıkarım maliyetleri ve hibrit yönlendirme stratejileri. AI Prompt Engineering 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 Prompt Engineering öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AI Prompt Engineering, 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 4. dersidir.

“Maliyet ve Gecikme Dengeleri” 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 Prompt Engineering dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AI Prompt Engineering 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

  1. Akıl Yürütme Modelleri Nasıl Farklılaşır
  2. Uzun Süreli Düşünme İçin Etkili İstemler
  3. Akıl Yürütme ve Standart Modeller Ne Zaman Kullanılmalı
  4. Maliyet ve Gecikme Dengeleri
← AI Prompt Engineering Sayfasına Dön