Düşünce cevabı
yedi
Bir reasoning model tüm çıktı bütçesini düşünerek harcayabilir ve sana hiçbir şey vermeden bitirebilir. Çözüm daha büyük bir bütçe değil. Metni beklemeyi bırakmak.
Düşünce cevabı yedi
Çoğu sağlayıcıda reasoning token'ları, görünür cevapla aynı çıktı bütçesinden düşer. Model bütçenin hepsini düşünerek harcarsa karşına bir HTTP 200, boş bir content ve finish_reason: "length" çıkar; üstüne modelin düşündüğü her token için bir fatura.
co-maintainer'ı geliştirirken yakaladığım gerçek bir review isteği: 128.000 token üretildi, hiçbiri görünür değil, yaklaşık beş dakika sürdü ve tam faturalandı.
Metni beklemeyi bırak
Cevap content içinde yaşıyorsa akışın en sonuna kadar hayatta kalmak zorundadır ve akışın sonu tam olarak bütçenin tükendiği yerdir. Bu yüzden modele tek bir tool ver, resolve, ve cevabı o tool üzerinden döndürmesini iste. Cevap artık düz bir mesaj metni değil, resolve çağrısının argümanlarıdır.
Bu iki şeyi değiştirir. Çağrı, model hâlâ reasoning yaparken bile gelebilir ve her şeyi o çağrı bitirir: cevap artık elindedir ve akışı okumayı bırakırsın. Akışta sonradan gelen hiçbir şey onu geri alamaz.
Akışın ortasında al, ya da sonraki chunk'ta zorla
A · resolve, reasoning akarken gelir
Akışı senin kodun okur. Bir resolve çağrısı belirirse cevap tam orada alınır. Modelin düşüncesini hiçbir zaman bitirememiş olacak olması önemli değildir.
B · hiç gelmez
Reasoning akarken token'ları say. Yumuşak bir bütçeyi aştığında (co-maintainer'da 30.000 token) sağlayıcının kendi sınırına gelmeden bağlantıyı kes. Düşünce çöp değil, emektir; bu yüzden sonraki chunk onu yeniden gönderir: kesilen turun reasoning_details'i değiştirilmeden geri yollanır, yanında tek bir talimat vardır: “şimdi bitir, baştan başlama.” Bu talimat modeli bir tool çağrısı yapmaya zorlar.
Hangi yoldan gidilirse gidilsin cevabı bir resolve çağrısıyla almış olursun. Akış sonradan finish_reason: "length" ile kesilmiş olabilir; önemi yok, çünkü cevap çoktan resolve çağrısının argümanlarında kayıtlı.
- akış
- iptal
- devir
- tur 2
- resolve
Yeniden oynatılınca maliyeti
Yakaladığım kontrolsüz düşünce döngüsünü bu basamaklardan geçirerek yeniden oynattım; ilk bütçe 30.000 token, ikincisi 15.000 token:
finish_reason: "tool_calls"11 snYerine geçtiği kontrolsüz döngü $0.15 veya daha fazlaya ve beş dakikaya mal oluyordu, hem de hiç cevap vermeden. Aynı istek şimdi 157 saniye ve $0.01 tutuyor: yaklaşık 2× hızlı ve 15× ucuz, üstelik bir cevapla bitiyor.
Nerede işe yaramaz
- Reasoning'i kapatamayan modellerde son çare basamağı yoktur. İlk iki hamle yine geçerlidir.
- Kesilen bir akış son usage chunk'ını hiç almaz; bu yüzden iptal edilen bir segmentin maliyeti yanlış bir alt sınır olarak değil, bilinmiyor olarak raporlanır.
resolve çağrıldığı an bunun önemi kalmaz.