Ana sayfa → Yardım

Model boş bir dize döndürüyor ama yine de ücret alınıyor

Bir reasoning modelinde max_tokens, düşünme token'larını ve görünür çıktıyı birlikte sınırlar. Düşünme zinciri tüm bütçeyi kullanırsa, content alanı boş geçerli bir 200 alırsınız – ve her düşünme token'ı için ücret ödersiniz.

Gördüğünüz hata

Neden oluyor

Reasoning modelleri iki tür çıktı token'ı üretir: iç zincir ve sizin gördüğünüz cevap. Faturalama ikisini de sayar. max_tokens ikisini de sınırlar. Reasoning olmayan bir model için cömert olan bir değer, ilk görünür karakterden önce tamamen tükenebilir.

Hata tasarım gereği sessizdir. API kendisine söyleneni yaptı: sınıra kadar üretti, sonra durdu. Tek ipucu finish_reason: "length"'tir ve kodunuz choices[0].message.content değerini okuyup zararsız bir boş dize bulduğunda gözden kaçması kolaydır.

Bunu dahili bir belge puanlama aracında yaşadık. max_tokens 2500'e ayarlıydı – önceki model için yeterliydi, model önce düşünmeye başlayınca yetmekten çok uzaktı. Bir süre bozuk bir proxy gibi göründü, çünkü istekler başarılıydı, gecikme normaldi ve maliyet gerçekti. Ele veren fatura oldu: karşılığında hiç metin olmayan ücretler.

Sebebin bu olduğunu doğrulayın

Yalnızca içeriğe değil, finish_reason'a ve token sayılarına bakın:

curl -s 'YOUR_BASE_URL/chat/completions' \
  -H 'Authorization: Bearer YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"model":"YOUR_MODEL","max_tokens":64,
       "messages":[{"role":"user","content":"What is 17 * 23? Answer with the number only."}]}' \
  | python3 -m json.tool

Boş bir content ve sıfırdan büyük çıktı token sayısıyla birlikte "finish_reason": "length" bu durumun imzasıdır. max_tokens 4000 olacak şekilde tekrar çalıştırın, aynı istem cevap verecektir.

Nasıl düzeltilir

  1. Yalnızca cevap için değil, düşünme için de bütçe ayırınBir reasoning modelinin ikisi için de alana ihtiyacı vardır. 200 token'lık bir cevap istiyorsanız 2000 token pay bırakmak abartı değildir — zincir çoğu zaman cevabın birkaç katıdır.
  2. Kodunuzda finish_reason: length'i hata sayınBoş bir dizenin sessizce geçmesine izin vermeyin. Buna göre dallanın ve ya daha büyük bir bütçeyle yeniden deneyin ya da açıkça hata verin. Bu tek kontrol bir gizemi bir kayıt satırına çevirir.
  3. Modelin ayrı bir düşünme bütçesini destekleyip desteklemediğine bakınBazıları, görünür cevabın kendi payını alması için özel bir parametre sunar. Varsa, tek bir birleşik sayı tahmin etmek yerine onu kullanın.
  4. Ağı suçlamadan önce reasoning olmayan bir modelle karşılaştırınAynı istek reasoning olmayan bir modelden metin döndürüyorsa, iletim sağlamdır ve sorun bütçededir.
APICLAN'daki her istek, kullanım kaydında girdi, çıktı ve düşünme token sayılarını gösterir; böylece gerçek bir faturası olan boş bir cevap gizemli değil görünür olur. Her modelin davranışı fiyat sayfalarında belgelenmiştir.

İlgili konular

OpenAI uyumlu bir API'yi çağırırken Unexpected token '<' hatası401 invalid API key – anahtar doğru göründüğü halde hata veriyorsa

Son kontrol: 2026-10-01. Canlı bir OpenAI uyumlu ağ geçidinde teşhis edilen sorunlardan yazılmıştır, başka sitelerden derlenmemiştir.