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
Error: socket hang upECONNRESET / read ECONNRESETaiohttp.ClientPayloadError: Response payload is not completedThe text stops mid-sentence with no finish_reason
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ć
- 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ą.
- 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.
- 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
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.