Strona główna → Pomoc

socket hang up w środku odpowiedzi strumieniowej

Połączenie TCP zostało zamknięte, zanim strumień się skończył. Nic w treści nie mówi, kto je zamknął, więc kluczowe jest, czy w ogóle przyszło finish_reason – jeśli nie, traktuj odpowiedź jako niepełną i nie zapisuj jej w cache.

Co widzisz

Dlaczego tak się dzieje

Długie strumienie przechodzą przez więcej infrastruktury niż krótkie żądania: twoją sieć, ewentualne proxy, brzeg sieci dostawcy i host modelu. Limit bezczynności gdziekolwiek w tym łańcuchu zamyka połączenie, a klient zgłasza to jako reset, a nie błąd HTTP, bo odpowiedź HTTP zaczęła się już od 200.

Sieci komórkowe i usypianie laptopa dają ten sam podpis. Tak samo load balancer z krótszym limitem bezczynności niż czas myślenia modelu – dlatego modele rozumujące trafiają na to częściej niż szybkie.

Strumień, który kończy się poprawnym finish_reason, a dopiero potem zgłasza błąd, to coś innego: odpowiedź jest kompletna, zawiodło tylko zamykanie połączenia. Taką odpowiedź można bezpiecznie wykorzystać.

Jak to naprawić

  1. Traktuj finish_reason jako sygnał zakończeniaNie uznawaj „strumień się skończył” za sukces. Oznacz odpowiedź jako kompletną tylko wtedy, gdy przyszło finish_reason; w przeciwnym razie ponów albo pokaż ją jako uciętą.
  2. Ponawiaj żądanie, nie strumieńW strumieniowanej odpowiedzi nie ma punktu wznowienia. Ponów od początku, najlepiej z niższym max_tokens, żeby kolejna próba skończyła się szybciej.
  3. Podnoś limity czasu klienta i proxy razemPodniesienie tylko limitu klienta nic nie daje, jeśli proxy przed nim zamyka połączenie wcześniej. Oba muszą przekraczać czas najwolniejszej odpowiedzi, jakiej się spodziewasz.
Strumień, który padł w połowie, i tak jest naliczany za wygenerowane tokeny – praca została wykonana. Log użycia APICLAN pokazuje dokładnie ile, i po tym odróżnisz odpowiedź dokończoną w połowie od takiej, która nigdy się nie zaczęła.

Powiązane

Unexpected token '<' przy wywołaniu API zgodnego z OpenAI401 invalid API key – gdy klucz wygląda dobrze, a i tak nie działa

Ostatnio sprawdzono 2026-10-01. Napisane na podstawie problemów zdiagnozowanych na działającej bramce zgodnej z OpenAI, a nie zebrane z innych stron.