İçeriğe geç

Faturayı Şişiren Gizli Maliyetler: Tool Use, Structured Output, Thinking, Web Search ve Daha Fazlası

LLM faturalarında 'fiyat sayfasında olmayan' ama gerçek kalemler: tool definition input'a eklenir, structured output prefill, reasoning thinking gizli output, web search tool $30/1K, vision detail mode 9× zam. Bu derste faturanın görünmez köşelerini açıyoruz.

Şükrü Yusuf KAYA
18 dakikalık okuma
Orta
Faturayı Şişiren Gizli Maliyetler: Tool Use, Structured Output, Thinking, Web Search ve Daha Fazlası
🕵️ Fatura forensiği
Bu ders bir audit. Bir LLM faturasını paragrafına kadar açacağız ve fiyat sayfasında olmayan ama gerçek 6 kalemi göstereceğiz. Bunu görmezden gelen ekip her ay fazla ödüyor.

Gizli #1 — Tool Definition Token'ları#

functions
/
tools
parametresi ile bir LLM'e fonksiyon listesi gönderdiğinde, her isteğin input'una eklenir.

Örnek#

5 tool var:
  • search_database
  • call_api
  • send_email
  • schedule_meeting
  • query_calendar
Her tool'un JSON şeması:
{ "name": "search_database", "description": "Searches the customer database by query string", "parameters": { "type": "object", "properties": { "query": {"type": "string", "description": "The search query"}, "limit": {"type": "integer", "default": 10} }, "required": ["query"] } }
Bir tool tanımı ortalama 150-300 token. 5 tool = 750-1500 ek input token / istek.

Maliyet etkisi (Sonnet 4.6, aylık 100K istek):#

1.000 token × 100K istek × $3/M = $300/ay
$3.600/yıl, sırf tool definition'ı her isteğe yüklediğin için.

Strateji#

  • Tool description'larını minimal tut
  • Aynı pipeline'da kullanılmayan tool'ları eklemе
  • Conditional tool loading: kullanıcı niyetine göre subset gönder
  • Prompt caching ile cache'le (Modül 7)

Gizli #2 — Tool Result Token'ları#

Tool çağrıldığında dönen sonuç bir sonraki LLM çağrısında input olarak gönderilir.

Örnek#

1. LLM çağrısı 1: kullanıcı sorusu → LLM "search_database" çağırır 2. Tool execute → 50 sonuç döner (5K token JSON) 3. LLM çağrısı 2: input = orijinal soru + tool result (5K) + ...
Tool result'ları input olarak faturalandırılır. Tek bir agent loop = 2 LLM çağrısı + 5K ek input.

Strateji#

  • Tool result'ları sıkıştır (önemli alanları al, hepsini değil)
  • LLM'e sadece top-N sonuç dön, hepsi değil
  • Tool result'ları cache'ye alın (Modül 7)
  • Agent loop'unda accumulated history token sayısını izle (Modül 14)

Gizli #3 — Structured Output Prefill#

response_format={"type": "json_schema"}
(OpenAI) veya tool-forced (Anthropic) kullandığında:
  • OpenAI: schema'yı internal olarak inject ediyor — bir-iki yüz token overhead
  • Anthropic: tools'u zorlayınca tool definition token'ı + tool_use prefill

Maliyet#

Genelde küçük (200-500 ek token), ama yüksek-volume'da:
500 token × 100K istek × $3/M = $150/ay

Gizli #4 — Thinking / Reasoning Default Bütçesi#

En büyük gizli fatura kalemi.

Default değerler#

ModelDefault thinking budget
OpenAI o3medium (~3K tokens)
OpenAI o3-minimedium (~2K tokens)
Claude 4.x extended thinkingdisabled (default) ✅
Gemini 2.5 Pro8.192 tokens! ⚠️
Gemini 2.5 Flash1.024 tokens

Hesap#

Gemini 2.5 Pro, default thinking, 100K istek/ay:
8.192 thinking tokens × 100K × $5/M (output) = $4.096/ay
Sadece default thinking için ödenen para. Bilmiyorsan kayıp.

Strateji#

  • Her zaman
    thinking_budget=0
    veya disabled (gereksizse)
  • Gerektiğinde explicitly aç, gerektiğinde kapat
🚨 Gemini'nin gizli vergi
Yeni Gemini hesap açan herkesin bilmesi gereken: default thinking aktif, 8K token bütçesi var. İlk istekten itibaren ödüyorsun. Tüm production çağrılarında
thinking_budget=0
set et.

Gizli #5 — Web Search Tool#

OpenAI'ın yeni
web_search
tool'u, GPT-5'in araştırma yapmasını sağlıyor. Ama:
ToolFiyat
OpenAI web_search_preview$30 / 1.000 search
OpenAI web_search (full)$40 / 1.000 search
Anthropic web_search$10 / 1.000 search (preview)
Gemini Google Search groundingdahil (free)

Maliyet patlaması#

Agent kullanıcı sorusu başına ortalama 3-7 web search yapar.
5 search/istek × 100K istek = 500K search/ay 500K × $30/1K = $15.000/ay 🚨
Sadece web_search ucu için $180.000/yıl.

Strateji#

  • Web search'ü whitelist ile çalıştır — sadece gerektiğinde
  • Cache search results
  • Anthropic'in daha ucuz web_search'ünü değerlendir
  • Custom retrieval (RAG) ile değiştir

Gizli #6 — Vision
detail="high"
Default#

OpenAI image input'larda
detail="auto"
default değer. Çoğu zaman "high" seçilir.

Maliyet farkı#

DetailToken/image$/image @ GPT-5
low85$0.00085
high (1024×1024)765$0.00765
Fark
100K görsel/ay:
  • detail=low: $85/ay
  • detail=high (default): $765/ay

Strateji#

  • Her zaman explicitly
    detail="low"
    veya
    detail="high"
    belirt
  • Default'ta low, gerektiğinde high (örn: OCR, text reading)

Gizli #7 — Cache Miss Sebep Bilmiyorum#

OpenAI cached input %50 indirim için cache hit gerek. Ama niye miss olduğunu fatura sana söylemez:

Cache miss sebepleri (görünmez)#

  • Prompt'un bir tek token değişmesi (whitespace dahil)
  • Tools listesinin sırası değişmesi
  • system_fingerprint değişmesi (model otomatik upgrade)
  • Response format değişmesi
  • Temperature, top_p gibi sampling param değişmesi (bazen)

Strateji#

  • Sistem prompt'u deterministic üret (rastgele JSON ordering yok)
  • Tools listesini sırala (alfabetik)
  • Cache hit ratio'yu izle (Modül 7'de Langfuse ile)

Gizli #8 —
system_fingerprint
Değişikliği#

Anthropic ve OpenAI modelleri arka planda silent revisions yapıyor. system_fingerprint değişince:
  • Cache invalid olur (cache miss)
  • A/B test sonuçları reset olur (yeni model versiyonu)
  • Beklenmedik output tarzı değişimleri

Strateji#

  • system_fingerprint'i her response'tan logla
  • Değiştiğinde alert ver
  • Production'da model snapshot version'ı kullan (
    gpt-5-2026-02-01
    gibi explicit),
    gpt-5
    değil

Fatura Audit Checklist#

Aylık LLM faturanı bu liste ile kontrol et:
  • Tool definition'ları her isteğin input'unda kaç token kaplıyor?
  • Tool result token'ları cache'leniyor mu?
  • Thinking budget explicit set edilmiş mi? (default'ları öldür)
  • Web search tool kontrol altında mı? (whitelist, cache)
  • Vision detail mode default'u explicit? (low vs high)
  • Cache hit ratio izleniyor mu? (Langfuse / Helicone)
  • system_fingerprint değişiklikleri loglanıyor mu?
  • max_tokens her API çağrısında set ediliyor mu?
  • reasoning_effort
    /
    thinking_budget
    parametreleri override edilmiş mi?
  • Streaming kesintilerinin output cost'u izleniyor mu?
Bu 10 maddenin her birini geçmek = otomatik %20-40 tasarruf, çoğu ekipte.
🎉 Modül 2 Tamamlandı
Artık 2026'nın fiyatlandırma manzarasını sistematik biçimde biliyorsun: OpenAI 7 tier, Anthropic prompt cache, Gemini tier tuzakları, Open-weight inference, Enterprise cloud, self-host break-even, ve 8 gizli maliyet kalemi. Bu temel olmadan Modül 3'teki telemetry ölçümü anlamsız.
▶️ Sıradaki modül
Modül 3: Maliyet Telemetrisi — Önce Gör, Sonra Optimize Et. Şimdiye kadar 'maliyet nedir, nereden gelir' öğrendik. Şimdi 'maliyeti ölçüyor muyum' sorusuna geçiyoruz. Langfuse, Helicone, custom dashboard'lar, $/request gerçek izleme — production-grade observability.

Sık Sorulan Sorular

Langfuse'ta her trace'in input tokens / cached input tokens ayrımı var. Cache hit ratio aksini dashboard'da takip edebilirsin. Eğer cache hit oranın %30'un altındaysa bir şey ters demektir — Modül 7'de bunu nasıl debug edeceğimizi göstereceğiz.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

İlgili İçerikler