Błędy importu czatów Whizi: dlaczego import z ChatGPT lub Claude zostaje odrzucony

Krótka odpowiedź

Import w Whizi zawodzi w jednym z dwóch miejsc, a komunikat mówi, w którym: parser w przeglądarce odczytujący twój plik eksportu, albo przesyłanie, które wysyła konwersacje na serwer. Plik, który czyta Whizi, to conversations.json wewnątrz eksportu z ChatGPT lub Claude. Ponowne uruchomienie importu nigdy nie duplikuje czatów, więc najpierw spróbuj ponownie.

Krótka odpowiedź

Jeśli Whizi odrzuciło twój import, najpierw sprawdź wybrany plik: jedynym plikiem, który czyta Whizi, jest conversations.json wewnątrz eksportu z ChatGPT lub Claude, więc rozpakuj eksport i wybierz ten plik zamiast samego zipa. Poza tym import zawodzi w jednym z dwóch miejsc, a treść komunikatu mówi, w którym: parser w przeglądarce, który czyta twój plik eksportu, albo endpoint importu, który odbiera konwersacje wygenerowane przez parser. Błędy pliku dotyczą wybranego pliku. Błędy przesyłania dotyczą sieci lub sesji. Nic pomiędzy nie jest niejednoznaczne, bo każdy komunikat to stały ciąg znaków przypisany do jednego warunku.

Druga rzecz, którą warto wiedzieć przed ponowną próbą: ponowne uruchomienie importu nigdy nie duplikuje czatów. Każda zaimportowana konwersacja jest identyfikowana przez konto, źródło i identyfikator źródłowy, więc zaimportowanie tego samego eksportu dwa razy, wznowienie po zerwanym połączeniu, albo dwukrotne kliknięcie Import zawsze daje te same czaty raz.

Co widziałeśGdzie zawiodłoCo zrobić
Komunikat o formacie eksportu lub conversations.jsonOdczyt twojego pliku, zanim cokolwiek zostało przesłaneWybierz inny plik z eksportu, patrz tabela poniżej
Komunikat o sesji lub połączeniuPrzesyłanie, w połowie drogiZaloguj się ponownie lub połącz się na nowo, a potem uruchom import jeszcze raz
Liczba konwersacji, których nie udało się zaimportowaćNiektóre partie nie powiodły się mimo wszystkich próbUruchom import ponownie, uzupełni tylko to, czego brakuje
Nic, ale trwa to długoOgraniczenie liczby żądań, działa zgodnie z zamierzeniemPoczekaj, importer sam ponawia próby

Błędy podczas odczytu twojego pliku eksportu

Pochodzą z przeglądarki, zanim choćby jeden bajt opuści twoje urządzenie. Sam plik eksportu nigdy nie jest przesyłany: przeglądarka go analizuje i wysyła tylko znormalizowane konwersacje, więc błąd na tym etapie oznacza, że plik nigdy nie zaszedł na tyle daleko, by zostać wysłany.

KomunikatPrzyczynaNaprawa
That file is not a ChatGPT or Claude export. Look for conversations.json inside the export zip.Parser nie potrafi rozpoznać żadnego z formatów eksportu, albo zip zwraca nierozpoznaną zawartośćOtwórz archiwum eksportu i wybierz konkretnie conversations.json
There is no conversations.json inside that zip. Unzip it and pick the file directly.Wybrany zip nie zawiera pasującego wpisuRozpakuj go samodzielnie, znajdź conversations.json i wybierz ten plik
That file is not valid JSON, so there was nothing to read.Wybrany plik nie daje się sparsować jako JSONPobierz eksport ponownie z ChatGPT lub Claude i wybierz z niego conversations.json
That export has no conversations with text in them.Eksport parsuje się poprawnie, ale zwraca zero konwersacjiEksport jest po prostu pusty pod względem transkryptów tekstowych. Po stronie Whizi nie ma nic do naprawienia
That file is too large for the browser to open. Pick the export .zip instead, which is read one file at a time.Wybrany surowy plik .json przekracza limit odczytu przeglądarkiWybierz zamiast tego plik .zip. Surowy eksport .json jest akceptowany do 300 MB; ścieżka .zip nie ma własnego limitu, bo dekompresowany jest tylko wpis conversations.json
Could not read that file. Please try again.Odczyt pliku zawiódł z innego powoduTo rzeczywiście przypadek do ponowienia. Jeśli powtarza się przy tym samym pliku, wybierz eksport .zip, który jest czytany po jednym wpisie naraz

Pierwszy komunikat jest tym szerokim, bo jeden ciąg znaków obejmuje dwa warunki: format eksportu, którego parser nie rozpoznaje, i zip, który zwraca nierozpoznaną zawartość. Oba prowadzą do tej samej naprawy, czyli rozpakowania eksportu i wybrania bezpośrednio conversations.json.

Błędy samego przesyłania

Gdy plik zostanie już sparsowany, importer wysyła konwersacje partiami. Na tym etapie mogą pójść źle dwie rzeczy, i obie da się naprawić.

KomunikatPrzyczynaNaprawa
Your session ended. Sign in again, then start the import.Pobranie tokenu nic nie zwróciło w połowie importuZaloguj się ponownie, a potem uruchom import od nowa. To, co już się zaimportowało, zostaje, a ponowne uruchomienie to pomija
The import could not be finished. Check your connection and try again.Dowolna inna awaria przesyłania podczas trwania importuSprawdź połączenie i uruchom import ponownie

Trzeci wynik wcale nie jest błędem, tylko podsumowaniem: {count} could not be imported. Run the import again to pick them up. To liczba konwersacji, których partie nie powiodły się mimo wszystkich prób. Instrukcja w komunikacie jest całą naprawą, a klucz deduplikacji opisany w krótkiej odpowiedzi to powód, dla którego druga próba nic cię nie kosztuje.

Błędy zwracane przez endpoint importu

To kody i ciągi znaków, które generuje sama trasa importu. Strona internetowa odzwierciedla te same limity i waliduje dane przed wysłaniem, więc mają znaczenie głównie wtedy, gdy coś wysyła bezpośrednio do endpointu, albo gdy partia jest wadliwie sformatowana.

KodKomunikatPrzyczyna
invalid_importA JSON object body is required.Treść importu nie jest obiektem
invalid_sourceAn import source of chatgpt or claude is required.Pole source brakuje albo nie jest jednym z dwóch akceptowanych źródeł
empty_importAt least one conversation is required.Tablica conversations brakuje albo jest pusta
too_many_conversationsThis batch has {count} conversations, over the 25 per request limit.Więcej niż 25 konwersacji w jednym żądaniu
too_many_messagesConversation {n} carries {count} messages, over the 400 per request limit. Send the rest as an append.Więcej niż 400 wiadomości w jednej konwersacji w jednym żądaniu
invalid_importConversation {n} is not an object.Wpis w tablicy conversations nie jest obiektem
invalid_importConversation {n} has no messages array.Konwersacja nie zawiera tablicy messages
invalid_importConversation {n} has an invalid append target.Pole appendTo nie jest ani ciągiem znaków, ani null
invalid_messageConversation {n} message {m} is not an object.Wpis wiadomości nie jest obiektem
invalid_messageConversation {n} message {m} needs a role of "user" or "assistant".Wiadomość ma rolę inną niż te dwie
invalid_messageConversation {n} message {m} has no text.Treść wiadomości nie jest ciągiem znaków
request_too_largeRequest is too large.Treść JSON przekracza limit bajtów trasy, według zadeklarowanego Content-Length albo faktycznie odczytanych bajtów

Limity stojące za tymi komunikatami: 25 konwersacji na żądanie, 400 wiadomości na konwersację na żądanie oraz treść żądania o wielkości maksymalnie 2 000 000 bajtów. Importer na stronie dzieli dane dokładnie po 25 i 400 i utrzymuje każde żądanie poniżej 1 200 000 bajtów, celowo poniżej limitu 2 000 000 bajtów, by zostawić miejsce na kopertę żądania. Konwersacja dłuższa niż 400 wiadomości nie jest odrzucana, tylko dzielona na plastry: reszta jest wysyłana jako fragmenty dołączane do czatu utworzonego przez pierwszy fragment.

Duży import pauzuje na 20 sekund naraz

Import konwersacji jest ograniczony do 20 żądań na minutę na użytkownika. Duży eksport osiągnie ten pułap, i to jest oczekiwane, a nie zepsute.

Kiedy to się dzieje, nie zobaczysz błędu. Import, który trafia na HTTP 429, nie jest sygnalizowany: klient czeka 20 sekund i ponawia próbę, do 4 prób na partię. Więc import, który wygląda na zawieszony na dwadzieścia sekund naraz przy dużym eksporcie, robi dokładnie to, co powinien. Zostaw go działającego.

Jeśli partie nadal zawodzą po tych 4 próbach, trafiają do podsumowania {count} could not be imported. Run the import again to pick them up., a ponowne uruchomienie importu jest naprawą, a nie sprawą do wsparcia.

Co import celowo pomija

Część treści jest pomijana celowo, a import, który się powiedzie, wciąż może wyglądać na niekompletny w porównaniu z oryginałem.

Dla eksportu z ChatGPT importowana jest tylko gałąź, która była widoczna na ekranie. Regenerowane odpowiedzi i odrzucone wersje robocze nie są odtwarzane jako wiadomości. Treści niebędące transkryptem są pomijane również: ukryte rozumowanie, kod i wynik narzędzia analitycznego, brudnopisy przeglądania, bloki niestandardowych instrukcji oraz wywołania funkcji.

Dla eksportu z Claude pomijane są bloki myślenia, wywołania narzędzi i załączniki. Importowane są tylko bloki tekstowe.

Konwersacje w pliku, które nie zawierają czytelnego tekstu, są liczone i zgłaszane jako pominięte, a nie po cichu odrzucane, więc liczba pominiętych to informacja, a nie porażka.

Konwersacja bez użytecznego tytułu staje się Imported chat, a tytuł dłuższy niż 120 znaków zostaje skrócony. Zaimportowana wiadomość dłuższa niż limit treści zostaje obcięta, a nie odrzucona, więc jedna zbyt duża wiadomość nie kosztuje cię reszty tej konwersacji.

Na koniec znaczniki czasu: zaimportowana wiadomość datowana przed 2015-01-01, albo datowana w przyszłości, jest odrzucana jako znacznik czasu, a wiersz wraca do czasu importu. Czat, który trafia do systemu z datą, w której uruchomiłeś import, zamiast swojej oryginalnej daty, trafił na tę zasadę.

Dlaczego ponowne uruchomienie importu jest bezpieczne

Klucz deduplikacji z krótkiej odpowiedzi ma zapasowe rozwiązanie. Gdy eksport nie podaje stabilnego identyfikatora konwersacji, kluczem staje się hasz samego transkryptu, więc ponowne uruchomienie nadal dopasowuje te konwersacje, zamiast dodawać drugie kopie.

Jedna konsekwencja, o której warto wiedzieć: usunięcie zaimportowanego czatu, a następnie ponowne zaimportowanie tego samego eksportu przywraca czat zamiast zgłosić duplikat. Jeśli celowo usunąłeś zaimportowaną konwersację, nie uruchamiaj ponownie tego eksportu, chyba że chcesz, by wróciła.

Lista kontrolna
  • Wybierz conversations.json z eksportu, a nie sam zip eksportu
  • Surowy eksport .json jest akceptowany do 300 MB, powyżej tego użyj .zip
  • Błędy sesji i połączenia oznaczają: zaloguj się ponownie lub połącz się na nowo, a potem uruchom ponownie
  • Liczba, której nie udało się zaimportować, oznacza: uruchom import ponownie
  • Usunięcie zaimportowanego czatu i ponowny import przywraca go z powrotem
  • Duży import pauzujący na 20 sekund naraz to ograniczenie liczby żądań, nie usterka
  • Regenerowane gałęzie z ChatGPT oraz bloki myślenia i załączniki z Claude są pomijane celowo

Najczęstsze pytania

Whizi twierdzi, że mój eksport z ChatGPT to nie eksport z ChatGPT. Dlaczego?

Komunikat brzmi That file is not a ChatGPT or Claude export. Look for conversations.json inside the export zip. i pojawia się, gdy parser nie potrafi rozpoznać żadnego z formatów w wybranym pliku, albo gdy zip zwraca nierozpoznaną zawartość. Plikiem, który czyta Whizi, jest conversations.json, więc rozpakuj eksport i wybierz ten plik bezpośrednio. Jeśli wybrałeś zip i pojawił się komunikat There is no conversations.json inside that zip. Unzip it and pick the file directly., oznacza to, że zip w ogóle nie zawiera pasującego wpisu, a eksport trzeba pobrać ponownie.

Mój import zatrzymał się w połowie. Czy ponowne uruchomienie zduplikuje moje czaty?

Nie. Ponowne uruchomienie to zamierzony sposób odzyskania po zerwanym połączeniu, zakończonej sesji lub nieudanej partii: druga próba zawsze daje te same czaty raz i uzupełnia tylko to, czego brakuje. Nie ma żadnego kroku porządkowego do wykonania wcześniej.

Dlaczego zaimportowała się tylko część moich konwersacji?

Mogą pojawić się dwie różne liczby, i tylko jedna z nich oznacza porażkę. {count} could not be imported. Run the import again to pick them up. liczy partie, które nie powiodły się mimo wszystkich prób, a naprawą jest ponowne uruchomienie importu. Liczba pominiętych to ta druga, i zgłasza konwersacje w pliku, które nie zawierają czytelnego tekstu, a nie konwersacje, z którymi coś poszło nie tak.

Import stoi w miejscu od dłuższego czasu. Czy jest zepsuty?

Obserwuj, czy znów rusza, a nie jak długo trwa. Pauza trwająca mniej więcej 20 sekund, po której następuje dalszy postęp, to działanie ogranicznika liczby żądań, bo klient czeka 20 sekund i ponawia próbę, zamiast cokolwiek ci pokazywać. Import, który rzeczywiście się zakończył, mówi o tym wprost, albo jednym z komunikatów błędu z tej strony, albo podsumowaniem {count} could not be imported. Run the import again to pick them up.. Cisza plus okresowy postęp oznaczają: zostaw go w spokoju.

Czy plik eksportu z ChatGPT lub Claude jest przesyłany do Whizi?

Nie. Sam plik eksportu nigdy nie dociera do serwera. Twoja przeglądarka go czyta, parsuje i wysyła tylko znormalizowane konwersacje, co też jest powodem, dla którego każdy błąd formatu na tej stronie pojawia się, zanim cokolwiek zostanie wysłane. Pełny opis obsługi danych znajduje się w co Whizi robi z twoimi danymi.