Krótka odpowiedź
Wiadomość w Whizi, która się nie wysyła, to jedna z pięciu sytuacji: inna odpowiedź wciąż się generuje, wysłano ten sam tekst dwa razy, przekroczono limit na minutę lub na godzinę, sama wiadomość nie przeszła walidacji, albo wygasł token sesji. Whizi podaje przyczynę wprost w treści błędu, więc to właśnie ten komunikat wskazuje sposób naprawy.
| Co widzisz | Kod | Przyczyna | Co zrobić |
|---|---|---|---|
Generation already in progress. Please stop it or wait for it to finish. | 409 | Na twoim koncie trwa już inna odpowiedź | Zatrzymaj ją albo poczekaj |
Duplicate message ignored. Please wait for the current response to finish. | 409 | Ten sam tekst (i obraz) został niedawno wysłany do tego czatu | Poczekaj na już trwającą odpowiedź |
Too many requests. Please wait and try again. | 429 | Okno limitu na minutę odrzuciło żądanie | Poczekaj, potem wyślij ponownie |
Hourly message limit reached. Please try again later. | 429 | Godzinowy pułap czatu odrzucił żądanie | Poczekaj, potem wyślij ponownie |
A non-empty message is required. | 400 | Wiadomość jest pusta albo zawiera same białe znaki | Wpisz coś |
This message is {count} characters, over the 100,000 character limit. Attach a shorter file, or ask about one section at a time. | 400 | Jedna wiadomość przekroczyła 100 000 znaków | Podziel ją albo pytaj o jedną sekcję naraz |
The model is temporarily rate-limited. Please retry shortly. | 429 | Dostawca modelu odpowiedział na połączenie kodem 429 | Spróbuj ponownie albo zmień model |
Failed to send message. | brak, komunikat na stronie | Wysyłka się nie powiodła, a backend nie podał komunikatu | Sprawdź połączenie i wyślij ponownie |
Something went wrong. Please retry. | 500 | Dowolny nieobsłużony błąd po stronie backendu | Wyślij ponownie, a jeśli się powtarza, zgłoś to |
Invalid or expired session token. | 401 | Weryfikacja tokenu nie powiodła się | Odśwież stronę i zaloguj się ponownie |
Odrzucenia z powodu limitu szybkości są cofane, więc odrzucone żądanie nigdy nie zużywa wiadomości z twojego limitu.
Nic się nie dzieje po naciśnięciu Enter
Jeśli Enter nic nie robi, oznacza to, że odpowiedź wciąż się generuje. Pole wpisywania celowo ignoruje Enter w trakcie trwającej odpowiedzi, więc to nie jest zgubione naciśnięcie klawisza. Shift i Enter wciąż wstawia nową linię.
Whizi uruchamia jedno generowanie na konto naraz, wymuszane przez blokadę per użytkownik, więc dwa urządzenia nigdy nie mogą generować jednocześnie na tym samym koncie. Druga próba jest odrzucana komunikatem Generation already in progress. Please stop it or wait for it to finish., HTTP 409, kod generation_in_progress. Ten sam komunikat pojawia się, gdy koordynator generowania zgłasza konflikt w momencie połączenia.
Wysłanie identycznego tekstu dwa razy zwraca Duplicate message ignored. Please wait for the current response to finish., HTTP 409, kod duplicate_message. Uruchamia się to, gdy ten sam tekst wiadomości (i obraz) został już niedawno wysłany do tej rozmowy, co jest właśnie tym, co powoduje podwójne kliknięcie albo niecierpliwe drugie Enter.
Naprawa jest w obu przypadkach taka sama: zatrzymaj trwającą odpowiedź albo pozwól jej się dokończyć. Zatrzymywanie jest obsługiwane po stronie serwera. Koordynator anuluje odczyt od dostawcy, zapisuje tekst, który zdążył dotrzeć, zwalnia blokadę i zwraca niedostarczoną turę. Jeśli blokada zostanie gdzieś porzucona, sama się naprawia: blokadę można przejąć, gdy jej posiadacz zostanie uznany za osieroconego albo zawieszonego, a wygasłe blokady są sprzątane według harmonogramu.
Jeśli po zatrzymaniu powstaje luka, w dymku asystenta pojawia się Generation stopped., czyli tekst zapisywany, gdy generowanie zostaje zatrzymane, a żaden częściowy tekst nie został przechwycony. Generation stopped, but it could not be saved. oznacza, że zatrzymanie się udało, ale zapisanie częściowej odpowiedzi już nie.
Wiadomość jest odrzucana, zanim zobaczy ją jakikolwiek model
To są odrzucenia walidacyjne HTTP 400 zgłaszane, zanim cokolwiek trafi do modelu. Nic nie zostało wysłane w górę.
| Wiadomość | Kod | Wyzwalacz |
|---|---|---|
A non-empty message is required. | empty_message | content jest puste albo zawiera same białe znaki |
A model is required. | invalid_model | model jest puste albo brakuje go |
That model is not available for text chat. | unsupported_model | Identyfikator modelu nie odpowiada modelowi tekstowemu w katalogu |
This message is {count} characters, over the 100,000 character limit. Attach a shorter file, or ask about one section at a time. | message_too_long | Pojedyncza wiadomość przekroczyła 100 000 znaków |
That system prompt is missing or over the 32,000 character limit. | invalid_system_prompt | Prompt systemowy jest pusty albo przekracza 32 000 znaków |
That image reference is not valid. | invalid_image_url | Odwołanie do obrazu nie jest ciągiem znaków albo przekracza 2 048 znaków |
This conversation has {count} messages, over the 100 message limit. | too_many_messages | Trasa czatu aplikacji odrzuciła transkrypcję zawierającą ponad 100 wiadomości w jednym żądaniu |
Pułap 100 000 znaków liczy całą wiadomość, wliczając w to tekst wyodrębniony z załącznika. To, co Whizi robi, gdy wyodrębniony tekst załącznika nie mieści się w budżecie wiadomości, opisano w problem z przesyłaniem pliku.
Limity szybkości i jedno odrzucenie, które nie dotyczy prędkości
Oba komunikaty limitu szybkości 429 znajdują się w tabeli powyżej i oba noszą kod rate_limit_reached. Odrzucone żądanie jest cofane, więc 429 nigdy nie zużywa wiadomości z twojego limitu: poczekaj, aż okno minie, i wyślij ponownie. Wartości okien i stojące za nimi limity planu znajdują się w limitach szybkości i w braku kredytów.
Jedno odrzucenie z tej samej rodziny w ogóle nie dotyczy prędkości: Account sharing limit reached. Please use your own Whizi account., HTTP 403, kod account_sharing_limit, pojawia się, gdy w ciągu ostatnich 24 godzin na jednym koncie zauważono więcej niż 3 odrębne klucze urządzenia lub sesji. Odczekanie minuty tego nie usuwa.
Odpowiedź zaczyna się, a potem się zatrzymuje albo w ogóle się nie wyświetla
Gdy połączenie jest już otwarte, awaria pochodzi albo od dostawcy modelu, albo od mechanizmu przenoszącego strumień. Komunikaty różnią się w zależności od tego, gdzie doszło do awarii.
| Wiadomość | Skąd pochodzi |
|---|---|
The model is temporarily rate-limited. Please retry shortly. | HTTP 429 provider_rate_limited, gdy dostawca odpowiada na połączenie kodem 429 |
The model provider rejected the request. | Używane, gdy treści błędu dostawcy nie da się sparsować albo parsuje się ona do pustej wiadomości |
The model provider returned an empty stream. | HTTP 502, serwer nadrzędny odpowiedział OK, ale nie wysłał żadnej treści |
The model provider returned an error. | Zdarzenie błędu w strumieniu, gdy dostawca wysyła ramkę błędu bez własnej wiadomości |
The model stream was interrupted. | Zdarzenie błędu w strumieniu dla każdej innej awarii w trakcie strumienia |
Generation failed mid-stream. | Generowanie zakończyło się niepowodzeniem po tym, jak część danych już wysłano |
Generation failed to start. | Wewnętrzny tekst zastępczy przy awarii startu koordynatora, który nie niesie własnej wiadomości |
The generation stream is unavailable. | Zgłaszane, gdy koordynator nie może przekazać strumienia do podłączenia |
Generation aborted before it started. | Zgłaszane jako AbortError, gdy klient rozłącza się, zanim połączenie nadrzędne zostanie ukończone |
Something went wrong. Please retry. | HTTP 500 internal_error, treść dla dowolnego nieobsłużonego błędu backendu |
Sorry, there was an error generating the response. | Wpisywane w dymek asystenta, gdy strumień kończy się bez ostatecznej wiadomości i bez zgromadzonej treści |
Każda awaria nadrzędna inna niż 429 to HTTP 502 provider_error niosące komunikat dostawcy, skrócony do 300 znaków. Na ścieżce w trakcie strumienia nie ma zdarzenia błędu w paśmie: połączenie po prostu się zrywa.
Jeden z tych komunikatów jest raczej zapisem niż wiadomością. Generation aborted before it started. jest zgłaszany jako AbortError, gdy klient rozłącza się, zanim połączenie nadrzędne zostanie ukończone, a trasa odpowiada w tym przypadku kodem HTTP 408 z pustym ciałem, więc ten tekst jest tym, co zapisuje serwer, a nie tym, co wyświetla przeglądarka. W śladzie sieciowym pusty 408 na trasie generate oznacza, że żądanie zniknęło, zanim dotarło do jakiegokolwiek modelu.
Pod tym wszystkim leży ogólny mechanizm zastępczy: wszystko, czego backend nie rozpoznaje, kończy się jako HTTP 500 internal_error z treścią Something went wrong. Please retry. HTTP 500 nie wskazuje przyczyny. Wyślij ponownie raz, a jeśli się powtarza, skontaktuj się z pomocą techniczną.
Co zrobić: wyślij ponownie, a jeśli się powtarza, przełącz się na inny model w tej samej rozmowie. Te błędy powstają po stronie dostawcy, poza Whizi, a nie w twoim koncie ani ustawieniach.
Jednej rzeczy nie musisz robić: trzymać karty otwartej. Generowanie działa w Durable Object przypisanym do rozmowy, więc zamknięcie karty w trakcie strumienia nie zabija odpowiedzi, a odpowiedź nadal jest zapisywana. Ponownie otwarta karta albo drugie urządzenie może podłączyć się do generowania już trwającego. The generation stream is unavailable. jest zgłaszane, gdy koordynator nie może przekazać strumienia do podłączenia. Przeładuj rozmowę i przeczytaj to, co zostało zapisane, zamiast czekać na strumień.
W widoku porównania obok siebie komunikaty po każdej stronie są znowu inne: The model did not respond. Please try again., gdy odpowiedź generate nie jest OK i nie niesie czytelnego błędu, Could not start a comparison chat., gdy nie da się utworzyć zaplecza czatu, i Something went wrong. jako ostateczność. Ta ostatnia jest krótszą formą, bez zdania o ponowieniu po niej, po czym odróżnisz ją od treści Something went wrong. Please retry. z błędu 500.
Twoja sesja wygasła
Błędy uwierzytelniania wyglądają jak błędy wysyłki, bo pojawiają się w momencie wysyłania. Authentication required. to HTTP 401 unauthorized, pojawia się, gdy żądanie nie niesie tokenu bearer. Invalid or expired session token. to ten sam status i kod, gdy weryfikacja tokenu zawodzi z dowolnego powodu: wygasły token, zły podpis, zły wystawca.
Po stronie witryny możesz zamiast tego zobaczyć Failed to retrieve session token., który strona zgłasza za każdym razem, gdy pobranie tokenu nie zwraca niczego przed wywołaniem listy czatów, wczytaniem czatu, usunięciem, zmianą nazwy albo przesłaniem pliku. Widok porównania ma własne sformułowanie: Your session expired. Please refresh and try again.
Naprawą jest odświeżenie strony, a jeśli to nie przywraca sesji, ponowne zalogowanie. Nic na koncie nie ginie i żadna wiadomość nie została wysłana.
To nie jest awaria, to limit
Odrzucenie z powodu limitu i odrzucenie z powodu poziomu planu to nie są błędy wysyłki. Żądanie zostało poprawnie zbudowane, a Whizi celowo je odrzuciło, więc w polu wpisywania nie ma nic do naprawienia: odrzucenia z powodu limitu opisano w braku kredytów, a model pokazywany jako zablokowany omówiono w rozwiązywaniu problemów.
Prompt odrzucony przez filtrowanie treści też nie jest błędem wysyłki. Filtrowanie działa, zanim jakikolwiek limit zostanie zarezerwowany i zanim wywołany zostanie dostawca, więc odrzucony prompt nic nie kosztuje z limitu, a odrzucenie przychodzi jako HTTP 400 z przyczyną pokazaną w czacie.
Zamiast tego zawodzi edycja wysłanej wiadomości
Edytowanie promptu i ponowne wysłanie to sposób na ponowne uruchomienie tury, bo Whizi nie ma przycisku regeneracji. Ta ścieżka ma własne dwa rodzaje awarii.
That message is no longer part of this conversation. Reload and try again. to HTTP 404 replace_anchor_not_found, zwracane, gdy edycja wskazuje identyfikator wiadomości, którego nie ma już w rozmowie. Przeładuj rozmowę. Klient trzyma identyfikator wiadomości, którego serwer już nie ma.
Conversation not found. to HTTP 404 not_found, zwracane, gdy identyfikator rozmowy nie istnieje albo nie należy do wywołującego. Pojawia się na trasie generate oraz na trasach odczytu, usuwania, zmiany nazwy, dopisywania wiadomości, przełączania wersji i udostępniania.
- Enter nic nie robiący oznacza, że odpowiedź wciąż się generuje, a nie zgubione naciśnięcie klawisza
- Jedno generowanie działa na konto naraz, na wszystkich twoich urządzeniach
- Zduplikowana wysyłka jest celowo ignorowana, z kodem 409 i komunikatem o tym mówiącym
- Czat ma limit na minutę i na godzinę, którego nie znosi żaden plan
- Żądanie odrzucone przez limit szybkości nic nie kosztuje z twojego limitu
- Jedna wiadomość jest ograniczona do 100 000 znaków
- Błędy dostawcy naprawia się przez ponowne wysłanie albo zmianę modelu, nie przez ustawienia
- Zamknięcie karty w trakcie odpowiedzi nie zabija odpowiedzi
- Błędy uwierzytelniania naprawia się przez odświeżenie i ponowne zalogowanie
Najczęstsze pytania
Co oznacza "Generation already in progress. Please stop it or wait for it to finish."?
Zatrzymaj trwającą odpowiedź albo poczekaj na jej zakończenie, a potem wyślij ponownie. Odrzucenie to HTTP 409 z kodem generation_in_progress, i pojawia się też, gdy inne urządzenie generuje na tym samym koncie. Zatrzymywanie jest obsługiwane po stronie serwera: częściowa odpowiedź jest zapisywana, blokada zwalniana, a niedostarczona tura zwracana.
Moja odpowiedź zatrzymała się w połowie. Czy zostałem obciążony?
Awaria w trakcie strumienia zrywa połączenie bez zdarzenia błędu w paśmie, a tekst, który zdążył dotrzeć przed zerwaniem, zostaje zachowany. Jeśli sam zatrzymasz generowanie, serwer anuluje odczyt od dostawcy, zapisuje częściową odpowiedź i zwraca niedostarczoną turę. Przy powtarzającej się awarii dostawcy przełącz się na inny model w tej samej rozmowie, bo błąd powstaje poza Whizi. Jeśli dostajesz HTTP 500 z "Something went wrong. Please retry.", to jest ogólna treść dla nieobsłużonego błędu backendu, a nie problem z modelem, więc wyślij ponownie raz i zgłoś, jeśli się powtarza.
Czy zamknięcie karty anuluje moją odpowiedź?
Nie, z jednym wąskim wyjątkiem na samym początku. Jeśli klient rozłącza się, zanim połączenie nadrzędne zostanie ukończone, serwer zapisuje "Generation aborted before it started." i odpowiada HTTP 408 z pustym ciałem, dlatego to żądanie wygląda tak, jakby w ogóle nic nie zwróciło. Po tym momencie odpowiedź przetrwa zamknięcie klienta, bo generowanie działa w Durable Object przypisanym do rozmowy, a odpowiedź nadal jest zapisywana. "The generation stream is unavailable." jest zgłaszane, gdy koordynator nie może przekazać strumienia do podłączenia, a przeładowanie rozmowy pokazuje to, co zostało zapisane.
Whizi mówi, że moja wiadomość przekracza limit 100 000 znaków. Co teraz?
Pojedyncza wiadomość jest ograniczona do 100 000 znaków, a odrzucenie to HTTP 400, kod message_too_long. Liczba obejmuje całą wiadomość, w tym tekst wyodrębniony z załącznika. Pytaj o jedną sekcję naraz albo dołącz krótszy plik. Gdy wyodrębniony tekst załącznika nie mieści się w budżecie wiadomości, Whizi go skraca zamiast odrzucać i ostrzega, że wysłano tylko pierwszą część.