Răspunsul scurt
Un mesaj Whizi care nu se trimite se datorează unuia dintre cinci lucruri: un alt răspuns se generează încă, ai trimis același text de două ori, ai depășit o limită de rată pe minut sau pe oră, mesajul în sine a eșuat validarea, sau tokenul sesiunii a expirat. Whizi indică motivul în textul de eroare, așa că textul pe care îl vezi decide soluția.
| Ce vezi | Cod | De ce | Ce faci |
|---|---|---|---|
Generation already in progress. Please stop it or wait for it to finish. | 409 | Un alt răspuns rulează pe contul tău | Oprește-l, sau așteaptă |
Duplicate message ignored. Please wait for the current response to finish. | 409 | Același text (și imagine) a fost deja trimis recent în acest chat | Așteaptă răspunsul deja în curs |
Too many requests. Please wait and try again. | 429 | O fereastră pe minut a refuzat cererea | Așteaptă, apoi retrimite |
Hourly message limit reached. Please try again later. | 429 | Plafonul orar de chat a refuzat-o | Așteaptă, apoi retrimite |
A non-empty message is required. | 400 | Mesajul lipsește sau conține doar spații | Scrie ceva |
This message is {count} characters, over the 100,000 character limit. Attach a shorter file, or ask about one section at a time. | 400 | Un mesaj a depășit 100.000 de caractere | Împarte-l, sau întreabă despre o secțiune pe rând |
The model is temporarily rate-limited. Please retry shortly. | 429 | Furnizorul modelului a răspuns la conectare cu un 429 | Reîncearcă, sau schimbă modelul |
Failed to send message. | fără, un toast pe site | Trimiterea a eșuat și backendul nu a furnizat niciun mesaj | Verifică-ți conexiunea și retrimite |
Something went wrong. Please retry. | 500 | Orice eroare netratată pe backend | Retrimite, apoi raportează dacă se repetă |
Invalid or expired session token. | 401 | Verificarea tokenului a eșuat | Reîmprospătează pagina și autentifică-te din nou |
Refuzurile din cauza limitei de rată sunt anulate, așa că o cerere refuzată nu cheltuiește niciodată un mesaj din alocația ta.
Nu se întâmplă nimic când apeși Enter
Dacă Enter nu face absolut nimic, un răspuns se generează încă. Câmpul de scriere ignoră intenționat Enter cât timp un răspuns este în desfășurare, deci nu este vorba de o apăsare de tastă pierdută. Shift și Enter tot inserează un rând nou.
Whizi rulează o singură generare per cont la un moment dat, impusă printr-un blocaj per utilizator, așa că două dispozitive nu pot genera niciodată simultan pentru același cont. O a doua încercare este refuzată cu Generation already in progress. Please stop it or wait for it to finish., HTTP 409, cod generation_in_progress. Același text este returnat când coordonatorul de generare semnalează un conflict la momentul conectării.
Trimiterea aceluiași text de două ori returnează Duplicate message ignored. Please wait for the current response to finish., HTTP 409, cod duplicate_message. Acest lucru apare când același text de mesaj (și imagine) a fost deja trimis recent în această conversație, ceea ce produce exact un dublu clic sau un al doilea Enter nerăbdător.
Soluția pentru ambele este aceeași: oprește răspunsul în curs, sau lasă-l să se termine. Oprirea este gestionată pe server. Coordonatorul anulează citirea de la furnizor, salvează orice text a ajuns, eliberează blocajul și rambursează o rundă nelivrată. Dacă un blocaj rămâne cumva blocat, se recuperează singur: un blocaj devine preluabil odată ce deținătorul lui este considerat orfan sau blocat, iar blocajele expirate sunt măturate periodic.
Dacă o oprire lasă un gol, bula asistentului afișează Generation stopped., textul păstrat când o generare este oprită și nu s-a captat niciun text parțial. Generation stopped, but it could not be saved. înseamnă că oprirea a funcționat, dar salvarea răspunsului parțial nu.
Mesajul este refuzat înainte ca vreun model să îl vadă
Acestea sunt refuzuri de validare HTTP 400 ridicate înainte ca ceva să ajungă la un model. Nimic nu a fost trimis mai departe.
| Mesaj | Cod | Cauză |
|---|---|---|
A non-empty message is required. | empty_message | content lipsește sau conține doar spații |
A model is required. | invalid_model | model lipsește sau este gol |
That model is not available for text chat. | unsupported_model | Id-ul modelului nu corespunde unui model de text din catalog |
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 | Un singur mesaj a depășit 100.000 de caractere |
That system prompt is missing or over the 32,000 character limit. | invalid_system_prompt | Promptul de sistem lipsește sau depășește 32.000 de caractere |
That image reference is not valid. | invalid_image_url | Referința imaginii nu este un șir de caractere, sau depășește 2.048 de caractere |
This conversation has {count} messages, over the 100 message limit. | too_many_messages | Ruta de chat a aplicației a refuzat un transcript cu peste 100 de mesaje într-o singură cerere |
Plafonul de 100.000 de caractere include tot mesajul, inclusiv orice text extras dintr-un fișier atașat. Pentru ce face Whizi când textul extras dintr-un atașament nu se încadrează în bugetul de mesaj, vezi încărcarea fișierului a eșuat.
Limite de rată, și un refuz care nu ține de viteză
Ambele texte de limită de rată 429 sunt în tabelul de mai sus, și ambele poartă codul rate_limit_reached. O cerere refuzată este anulată, așa că un 429 nu cheltuiește niciodată un mesaj din alocația ta: așteaptă să treacă fereastra și retrimite. Cifrele ferestrei și alocațiile planurilor din spatele lor sunt pe limite de rată și fără credite.
Un refuz din aceeași familie nu ține deloc de viteză: Account sharing limit reached. Please use your own Whizi account., HTTP 403, cod account_sharing_limit, apare când mai mult de 3 chei distincte de dispozitiv sau sesiune au fost văzute pe un cont în ultimele 24 de ore. Așteptarea unui minut nu îl elimină.
Răspunsul începe, apoi se oprește sau nu se afișează niciodată
Odată ce conexiunea este deschisă, un eșec provine fie de la furnizorul modelului, fie de la mecanismul care transportă fluxul. Textele diferă în funcție de locul în care a apărut eșecul.
| Mesaj | De unde provine |
|---|---|
The model is temporarily rate-limited. Please retry shortly. | HTTP 429 provider_rate_limited, când furnizorul răspunde la conectare cu un 429 |
The model provider rejected the request. | Folosit când corpul erorii furnizorului nu poate fi parsat, sau se parsează la un mesaj gol |
The model provider returned an empty stream. | HTTP 502, sursa a răspuns OK dar nu a trimis niciun conținut |
The model provider returned an error. | Eveniment de eroare în flux când furnizorul trimite un cadru de eroare fără mesaj propriu |
The model stream was interrupted. | Eveniment de eroare în flux pentru orice alt eșec la mijlocul fluxului |
Generation failed mid-stream. | Generarea s-a încheiat cu eșec după ce octeți fuseseră deja trimiși |
Generation failed to start. | Textul intern de rezervă la un eșec de pornire al coordonatorului care nu poartă mesaj propriu |
The generation stream is unavailable. | Ridicat când coordonatorul nu poate returna un flux la care să te reconectezi |
Generation aborted before it started. | Ridicat ca AbortError când clientul se deconectează înainte de finalizarea conectării la sursă |
Something went wrong. Please retry. | HTTP 500 internal_error, corpul pentru orice eroare netratată de backend |
Sorry, there was an error generating the response. | Scris în bula asistentului când un flux se încheie fără mesaj final și fără conținut acumulat |
Orice eșec din amonte, altul decât un 429, este HTTP 502 provider_error care poartă mesajul furnizorului, trunchiat la 300 de caractere. Pe calea de mijloc a fluxului nu există niciun eveniment de eroare în bandă: conexiunea pur și simplu se întrerupe.
Unul dintre aceste texte este mai degrabă o înregistrare decât un mesaj. Generation aborted before it started. este ridicat ca AbortError când clientul se deconectează înainte de finalizarea conectării la sursă, iar ruta răspunde în acest caz cu HTTP 408 și un corp gol, așa că textul este ceea ce serverul consemnează, nu ceea ce afișează browserul. Într-o urmărire de rețea, un 408 gol pe ruta de generare înseamnă că cererea a dispărut înainte ca vreun model să fie atins.
Sub toate acestea se află plasa de siguranță: tot ce backendul nu recunoaște se termină ca HTTP 500 internal_error cu corpul Something went wrong. Please retry. HTTP 500 nu identifică o cauză. Retrimite o dată, apoi contactează suportul dacă se repetă.
Ce ai de făcut: retrimite, iar dacă se repetă, schimbă la un alt model în aceeași conversație. Aceste erori provin din amonte de Whizi, nu din contul sau setările tale.
Un lucru pe care nu trebuie să îl faci este să ții tab-ul deschis. Generarea rulează într-un Durable Object per conversație, așa că închiderea tab-ului la mijlocul fluxului nu ucide răspunsul, iar acesta rămâne salvat. Un tab redeschis sau un al doilea dispozitiv se pot reconecta la o generare deja în desfășurare. The generation stream is unavailable. este ridicat când coordonatorul nu poate returna un flux la care să te reconectezi. Reîncarcă conversația și citește ce a fost salvat, în loc să aștepți fluxul.
În vizualizarea de comparare alăturată, textele pe fiecare parte sunt din nou diferite: The model did not respond. Please try again. când un răspuns de generare nu este OK și nu poartă o eroare lizibilă, Could not start a comparison chat. când chatul de bază nu poate fi creat, și Something went wrong. ca ultimă soluție. Acesta din urmă este forma scurtă, fără propoziția de reîncercare după el, ceea ce îl diferențiază de corpul Something went wrong. Please retry. al unui 500.
Sesiunea ta a expirat
Eșecurile de autentificare seamănă cu eșecurile de trimitere pentru că apar chiar la momentul trimiterii. Authentication required. este HTTP 401 unauthorized și apare când cererea nu poartă niciun token de tip bearer. Invalid or expired session token. are același status și cod când verificarea tokenului eșuează din orice motiv: token expirat, semnătură greșită, emitent greșit.
Pe site s-ar putea să vezi în schimb Failed to retrieve session token., pe care site-ul îl declanșează ori de câte ori preluarea tokenului nu returnează nimic înainte de o listă de chat-uri, încărcarea unui chat, ștergere, redenumire sau apel de încărcare. Vizualizarea de comparare are propria formulare: Your session expired. Please refresh and try again.
Soluția este o reîmprospătare a paginii, apoi autentificarea din nou dacă reîmprospătarea nu restabilește sesiunea. Nimic din cont nu se pierde, și niciun mesaj nu a fost trimis.
Nu este un eșec, este o limită
Un refuz de alocație și un refuz de nivel nu sunt eșecuri de trimitere. Cererea a fost formată corect, iar Whizi a refuzat-o intenționat, așa că nu este nimic de reparat în câmpul de scriere: refuzurile de alocație sunt tratate în fără credite, iar un model care apare blocat este tratat în depanare.
Un prompt refuzat de filtrarea de conținut nu este de asemenea un eșec de trimitere. Filtrarea rulează înainte ca vreo cotă să fie rezervată și înainte ca furnizorul să fie apelat, așa că un prompt refuzat nu costă nicio alocație, iar refuzul ajunge ca HTTP 400 cu motivul afișat în chat.
Editarea unui mesaj trimis eșuează în schimb
Editarea unui prompt și retrimiterea este modul în care rerulezi o rundă, întrucât Whizi nu are un control de regenerare. Acea cale are propriile două eșecuri.
That message is no longer part of this conversation. Reload and try again. este HTTP 404 replace_anchor_not_found, returnat când editarea numește un id de mesaj care nu mai există în conversație. Reîncarcă conversația. Clientul deține un id de mesaj pe care serverul nu îl mai are.
Conversation not found. este HTTP 404 not_found, returnat când id-ul conversației nu există sau nu aparține apelantului. Apare pe ruta de generare și pe rutele de citire, ștergere, redenumire, adăugare de mesaj, schimbare de versiune și partajare.
- Enter care nu face nimic înseamnă că un răspuns se generează încă, nu o apăsare de tastă pierdută
- O singură generare rulează per cont la un moment dat, pe toate dispozitivele tale
- O trimitere duplicată este ignorată intenționat, cu un 409 și un mesaj care spune asta
- Chatul are un plafon pe minut și unul pe oră pe care niciun plan nu îl ridică
- O cerere limitată de rată nu costă nimic din alocația ta
- Un mesaj este plafonat la 100.000 de caractere
- Erorile de furnizor se rezolvă retrimițând sau schimbând modelul, nu din setări
- Închiderea tab-ului la mijlocul răspunsului nu ucide răspunsul
- Erorile de autentificare se rezolvă reîmprospătând și autentificându-te din nou
Întrebări frecvente
Ce înseamnă "Generation already in progress. Please stop it or wait for it to finish."?
Oprește răspunsul în curs, sau așteaptă să se termine, apoi trimite din nou. Refuzul este HTTP 409 cu codul generation_in_progress, și apare de asemenea când un alt dispozitiv generează pe același cont. Oprirea este gestionată pe server: răspunsul parțial este salvat, blocajul este eliberat, iar o rundă nelivrată este rambursată.
Răspunsul meu s-a oprit la jumătate. Am fost taxat?
Un eșec la mijlocul fluxului întrerupe conexiunea fără niciun eveniment de eroare în bandă, iar orice text a ajuns înainte de întrerupere este păstrat. Dacă oprești tu însuți o generare, serverul anulează citirea de la furnizor, salvează răspunsul parțial și rambursează o rundă nelivrată. Pentru un eșec repetat al furnizorului, schimbă la un alt model în aceeași conversație, întrucât eroarea provine din amonte de Whizi. Dacă primești HTTP 500 cu "Something went wrong. Please retry.", acesta este corpul generic pentru o eroare netratată de backend mai degrabă decât o problemă a modelului, așa că retrimite o dată și raportează dacă persistă.
Închiderea tab-ului anulează răspunsul meu?
Nu, cu o singură fereastră îngustă chiar la început. Dacă clientul se deconectează înainte de finalizarea conectării la sursă, serverul consemnează "Generation aborted before it started." și răspunde cu HTTP 408 și un corp gol, motiv pentru care acea cerere pare să nu fi returnat absolut nimic. Dincolo de acel punct, răspunsul supraviețuiește clientului, deoarece generarea rulează într-un Durable Object per conversație, iar răspunsul rămâne salvat. "The generation stream is unavailable." este ridicat când coordonatorul nu poate returna un flux la care să te reconectezi, iar reîncărcarea conversației arată ce a fost salvat.
Whizi spune că mesajul meu depășește limita de 100.000 de caractere. Ce fac acum?
Un singur mesaj este plafonat la 100.000 de caractere, iar refuzul este HTTP 400, cod message_too_long. Numărătoarea include tot mesajul, inclusiv textul extras dintr-un atașament. Întreabă despre o secțiune pe rând, sau atașează un fișier mai scurt. Când textul extras dintr-un atașament nu se încadrează în bugetul de mesaj, Whizi trunchiază în loc să refuze și te avertizează că doar prima parte a fost trimisă.