Hidden Costs That Inflate Your Bill: Tool Use, Structured Output, Thinking, Web Search and More
Items not on the pricing page but real on the LLM bill: tool definitions added to input, structured output prefill, reasoning thinking hidden output, web search tool $30/1K, vision detail mode 9× zam. We open the invisible corners of the bill.
Şükrü Yusuf KAYA
18 min read
Intermediate🕵️ 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.
Frequently Asked Questions
Langfuse separates input tokens vs cached input tokens per trace. You can track cache hit ratio in the dashboard. If your cache hit rate is under 30%, something's wrong — we'll cover debugging this in Module 7.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
Related Content
Module 0: Why Cost, Why Now?
The AI Cost Explosion: Why Token Prices Fell 96% from 2022 to 2026 — Yet Bills Grew 40×
Start LearningModule 0: Why Cost, Why Now?
Unit Economics Vocabulary: COGS, Gross Margin, $/User, Contribution Margin — 9 Financial Concepts Every AI Engineer Must Know
Start LearningModule 0: Why Cost, Why Now?