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🕵️ 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ı#
functionstoolsÖrnek#
5 tool var:
search_databasecall_apisend_emailschedule_meetingquery_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: 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#
| Model | Default thinking budget |
|---|---|
| OpenAI o3 | medium (~3K tokens) |
| OpenAI o3-mini | medium (~2K tokens) |
| Claude 4.x extended thinking | disabled (default) ✅ |
| Gemini 2.5 Pro | 8.192 tokens! ⚠️ |
| Gemini 2.5 Flash | 1.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 veya disabled (gereksizse)
thinking_budget=0 - 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 set et.
thinking_budget=0Gizli #5 — Web Search Tool#
OpenAI'ın yeni tool'u, GPT-5'in araştırma yapmasını sağlıyor. Ama:
web_search| Tool | Fiyat |
|---|---|
| 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 grounding | dahil (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#
detail="high"OpenAI image input'larda default değer. Çoğu zaman "high" seçilir.
detail="auto"Maliyet farkı#
| Detail | Token/image | $/image @ GPT-5 |
|---|---|---|
| low | 85 | $0.00085 |
| high (1024×1024) | 765 | $0.00765 |
| Fark | 9× | 9× |
100K görsel/ay:
- detail=low: $85/ay
- detail=high (default): $765/ay
Strateji#
- Her zaman explicitly veya
detail="low"belirtdetail="high" - 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#
system_fingerprintAnthropic 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 (gibi explicit),
gpt-5-2026-02-01değilgpt-5
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_effortparametreleri override edilmiş mi?thinking_budget - 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
Modül 0: Neden Maliyet, Neden Şimdi?
AI Maliyet Patlaması: 2022'den 2026'ya Token Fiyatları Neden %96 Düştü Ama Faturalar Neden 40 Kat Arttı?
Öğrenmeye BaşlaModül 0: Neden Maliyet, Neden Şimdi?
Birim Ekonomisi Sözlüğü: COGS, Gross Margin, $/User, Contribution Margin — Mühendisin Bilmesi Gereken 9 Finansal Kavram
Öğrenmeye BaşlaModül 0: Neden Maliyet, Neden Şimdi?