Ana sayfa → Yardım

Stream'li bir yanıt cümlenin ortasında duruyor

Sağlıklı bir stream açık bir sonlandırıcıyla biter – finish_reason taşıyan bir parça, ardından data: [DONE]. Son parçanızda ikisi de yoksa bağlantı kesilmiştir ve elinizdeki cevap eksiktir. HTTP durum kodu bunu söylemez, çünkü durum gövde başlamadan gönderilmiştir.

Gördüğünüz hata

Neden oluyor

Stream'li yanıtlar, ilk bayt çıktığı anda 200 OK'e bağlanır. Sonrası gövdedir. Bağlantı 1200 token'ın 900'üncüsünde koparsa istemci zaten başarılı bir durum satırı görmüştür ve stream'in kendi bitiş işaretini kontrol etmiyorsa hata vermez.

Hatanın rastgele hissettirmesinin sebebi bu. Kısa cevaplar, en zayıf halkanın izin verdiği pencere içinde biter; uzunlar bitmez. Kesilme noktası değişir, çünkü içeriğe değil zamanlamaya bağlıdır.

Genellikle sebep proxy'lerin boşta kalma zaman aşımlarıdır ve bunlar reasoning modelleriyle kötü etkileşir: Uzun bir düşünme aşamasında hiç token gönderilmez, bu yüzden toplam süre yerine sessizliği ölçen bir ara katman, model hâlâ düşünürken bağlantının öldüğüne karar verebilir.

Sebebin bu olduğunu doğrulayın

SDK'nın ayrıştırılmış nesnesi yerine ham stream'i okuyun ve sonuna bakın:

curl -N -s 'YOUR_BASE_URL/chat/completions' \
  -H 'Authorization: Bearer YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"model":"YOUR_MODEL","stream":true,
       "messages":[{"role":"user","content":"Count slowly from 1 to 400."}]}' \
  | tail -5

Tamamlanmış bir stream, "finish_reason":"stop" içeren bir parça ve ardından data: [DONE] ile biter. Son satır sıradan bir içerik parçasıysa stream kesilmiştir.

Nasıl düzeltilir

  1. Sonlandırıcıyı kontrol edin[DONE] ya da boş olmayan finish_reason içeren bir parça görüp görmediğinizi takip edin. İkisi de yoksa sonucu kısa değil başarısız sayın. Sorunu görünür kılan tek değişiklik budur.
  2. Uzun duraklamalarda bağlantıyı canlı tutunBir ara katman boşta kalınca kapatıyorsa, SSE stream'indeki heartbeat yorumları bunu önler. Bunları gönderen sağlayıcılar, aynı ağ yolu üzerinden reasoning modellerini çok daha güvenilir kılar.
  3. Körü körüne baştan yeniden denemeyinKopan bir stream, ürettiği token'ları zaten ücretlendirmiştir. Tüm istemi yeniden denemek maliyeti ikiye katlar. Cevap parçalanabiliyorsa kaldığınız yerden devam edin; parçalanamıyorsa en azından eksik kısmı kaydedin ki harcama hesaplanabilsin.
  4. Kasıtlı olarak yavaş ve uzun bir üretimle test edinKısa istemler bunu tamamen gizler. Üretilmesi bir dakika süren bir şey isteyin; yolunuzun kararlı olup olmadığını tek denemede anlarsınız.
APICLAN, üst sağlayıcının stream'ini tamponlamadan aktarır; böylece finish_reason ve [DONE] tam olarak sağlayıcının gönderdiği gibi gelir. Her istemcinin kurulumu hızlı başlangıç sayfasında.

İ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.