La risposta breve
Se Whizi ha rifiutato la tua importazione, controlla prima il file che hai scelto: l'unico file che Whizi legge è conversations.json all'interno di un export di ChatGPT o Claude, quindi estrai l'export e scegli quel file invece dello zip stesso. A parte questo, un'importazione fallisce in uno di due punti e la formulazione del messaggio indica quale: il parser del browser che legge il file di esportazione, oppure l'endpoint di importazione che riceve le conversazioni prodotte dal parser. Gli errori di file riguardano il file che hai scelto. Gli errori di caricamento riguardano la rete o la sessione. Niente nel mezzo è ambiguo, perché ogni messaggio è una stringa fissa legata a una singola condizione.
La seconda cosa da sapere prima di riprovare qualsiasi cosa: rieseguire un'importazione non duplica mai le chat. Ogni conversazione importata è identificata da account, sorgente e id sorgente, quindi importare lo stesso export due volte, riprendere dopo una connessione interrotta, o cliccare Importa due volte fanno atterrare le stesse chat una sola volta.
| Cosa hai visto | Dove ha fallito | Cosa fare |
|---|---|---|
| Un messaggio sul formato dell'export o su conversations.json | Lettura del file, prima di qualsiasi caricamento | Scegli un file diverso dall'export, vedi la tabella sotto |
| Un messaggio sulla sessione o sulla connessione | Caricamento, a metà percorso | Accedi di nuovo o riconnettiti, poi esegui di nuovo l'importazione |
| Un conteggio di conversazioni che non è stato possibile importare | Alcuni batch hanno fallito ogni tentativo | Esegui di nuovo l'importazione, recupera solo ciò che manca |
| Niente, ma ci sta mettendo molto tempo | Rate limiting, funziona come previsto | Attendi, l'importatore riprova da solo |
Errori nella lettura del file di export
Questi arrivano dal browser, prima che un solo byte lasci la tua macchina. Il file di export in sé non viene mai caricato: il browser lo analizza e invia solo le conversazioni normalizzate, quindi un errore qui significa che il file non è arrivato abbastanza lontano da essere inviato.
| Messaggio | Causa | Soluzione |
|---|---|---|
That file is not a ChatGPT or Claude export. Look for conversations.json inside the export zip. | Il parser non riconosce nessuno dei due formati di export, oppure lo zip produce un contenuto non riconosciuto | Apri l'archivio dell'export e scegli specificamente conversations.json |
There is no conversations.json inside that zip. Unzip it and pick the file directly. | Lo zip scelto non contiene una voce corrispondente | Estrai lo zip tu stesso, trova conversations.json e scegli quel file |
That file is not valid JSON, so there was nothing to read. | Il file scelto non viene analizzato correttamente come JSON | Scarica di nuovo l'export da ChatGPT o Claude e scegli conversations.json da lì |
That export has no conversations with text in them. | L'export viene analizzato ma produce zero conversazioni | L'export è genuinamente privo di trascrizioni testuali. Niente da correggere lato Whizi |
That file is too large for the browser to open. Pick the export .zip instead, which is read one file at a time. | Il file .json grezzo scelto supera il limite di lettura del browser | Scegli invece il file .zip. Un export .json grezzo è accettato fino a 300 MB; il percorso .zip non ha un proprio limite, perché viene decompressa solo la voce conversations.json |
Could not read that file. Please try again. | La lettura del file ha generato un errore per qualsiasi altro motivo | Un vero caso da riprovare. Se si ripete sullo stesso file, scegli l'export .zip, che viene letto una voce alla volta |
Il primo messaggio è quello generico, perché una singola stringa copre due condizioni: un formato di export che il parser non riconosce, e uno zip che produce un contenuto non riconosciuto. Entrambi portano alla stessa soluzione, che è estrarre l'export e scegliere direttamente conversations.json.
Errori dal caricamento stesso
Una volta analizzato il file, l'importatore invia le conversazioni a lotti. In questa fase possono andare storte due cose, ed entrambe sono recuperabili.
| Messaggio | Causa | Soluzione |
|---|---|---|
Your session ended. Sign in again, then start the import. | Il recupero del token non ha restituito nulla a metà dell'importazione | Accedi di nuovo, poi ricomincia l'importazione. Ciò che è già arrivato resta, e la nuova esecuzione lo salta |
The import could not be finished. Check your connection and try again. | Qualsiasi altro errore di caricamento durante l'esecuzione dell'importazione | Controlla la connessione ed esegui di nuovo |
Un terzo esito non è affatto un errore ma un riepilogo: {count} could not be imported. Run the import again to pick them up. Quello è il conteggio delle conversazioni i cui lotti hanno fallito ogni tentativo. L'istruzione nel messaggio è l'intera soluzione, e la chiave di deduplicazione descritta nella risposta breve è il motivo per cui la seconda esecuzione non ti costa nulla.
Errori restituiti dall'endpoint di importazione
Questi sono i codici e le stringhe che la rotta di importazione stessa produce. Il sito web rispecchia gli stessi limiti e valida prima di inviare, quindi contano soprattutto quando qualcosa invia direttamente all'endpoint o quando un lotto è malformato.
| Codice | Messaggio | Causa |
|---|---|---|
invalid_import | A JSON object body is required. | Il corpo dell'importazione non è un oggetto |
invalid_source | An import source of chatgpt or claude is required. | Il campo source manca o non è una delle due sorgenti accettate |
empty_import | At least one conversation is required. | L'array delle conversazioni manca o è vuoto |
too_many_conversations | This batch has {count} conversations, over the 25 per request limit. | Più di 25 conversazioni in una richiesta |
too_many_messages | Conversation {n} carries {count} messages, over the 400 per request limit. Send the rest as an append. | Più di 400 messaggi in una conversazione in una richiesta |
invalid_import | Conversation {n} is not an object. | Una voce dell'array delle conversazioni non è un oggetto |
invalid_import | Conversation {n} has no messages array. | Una conversazione non contiene un array di messaggi |
invalid_import | Conversation {n} has an invalid append target. | Il campo appendTo non è né una stringa né null |
invalid_message | Conversation {n} message {m} is not an object. | Una voce di messaggio non è un oggetto |
invalid_message | Conversation {n} message {m} needs a role of "user" or "assistant". | Un messaggio ha un ruolo diverso da questi due |
invalid_message | Conversation {n} message {m} has no text. | Il contenuto del messaggio non è una stringa |
request_too_large | Request is too large. | Il corpo JSON supera il limite di byte della rotta, sia per Content-Length dichiarato sia per i byte effettivamente letti |
I limiti dietro questi messaggi: 25 conversazioni per richiesta, 400 messaggi per conversazione per richiesta, e un corpo di richiesta di al massimo 2,000,000 byte. L'importatore del sito web divide esattamente a 25 e 400 e mantiene ogni richiesta sotto 1,200,000 byte, deliberatamente sotto il limite di 2,000,000 byte per lasciare spazio all'involucro della richiesta. Una conversazione più lunga di 400 messaggi non viene rifiutata, viene divisa: il resto viene inviato come sezioni di append sulla chat creata dalla prima sezione.
Un'importazione grande si mette in pausa per 20 secondi alla volta
L'importazione delle conversazioni è limitata a 20 richieste al minuto per utente. Un export grande raggiungerà quel limite, ed è previsto, non un guasto.
Non vedrai un errore quando succede. Un'importazione che raggiunge l'HTTP 429 non viene mostrata: il client attende 20 secondi e riprova, fino a 4 tentativi per lotto. Quindi un'importazione che sembra bloccata per venti secondi alla volta su un export grande sta facendo esattamente ciò che dovrebbe. Lasciala andare.
Se i lotti falliscono ancora dopo quei 4 tentativi, finiscono nel riepilogo {count} could not be imported. Run the import again to pick them up., ed eseguire di nuovo l'importazione è la soluzione, non il supporto.
Cosa scarta l'importazione di proposito
Alcuni contenuti vengono scartati di proposito, e un'importazione riuscita può comunque sembrare incompleta rispetto all'originale.
Per un export di ChatGPT, viene importato solo il ramo che era a schermo. Le risposte rigenerate e le bozze scartate non vengono riprodotte come messaggi. Anche i contenuti non di trascrizione vengono saltati: ragionamento nascosto, codice e output degli strumenti di analisi, appunti di navigazione, blocchi di istruzioni personalizzate e chiamate di funzione.
Per un export di Claude, i blocchi di pensiero, le chiamate agli strumenti e gli allegati vengono scartati. Vengono importati solo i blocchi di testo.
Le conversazioni nel file che non contengono testo leggibile vengono conteggiate e segnalate come saltate anziché scartate silenziosamente, quindi un conteggio di elementi saltati è un'informazione, non un fallimento.
Una conversazione senza un titolo utilizzabile diventa Imported chat, e un titolo più lungo di 120 caratteri viene troncato. Un messaggio importato più lungo del limite di contenuto viene troncato invece che rifiutato, quindi un messaggio troppo grande non ti costa il resto di quella conversazione.
Infine, i timestamp: un messaggio importato datato prima del 2015-01-01, o datato nel futuro, viene scartato come timestamp e la riga ricade sull'orario di importazione. Una chat che arriva con la data in cui hai eseguito l'importazione, invece della sua data originale, ha incontrato questa regola.
Perché rieseguire l'importazione è sicuro
La chiave di deduplicazione nella risposta breve ha un fallback. Quando un export non fornisce un id di conversazione stabile, la chiave diventa un hash della trascrizione stessa, quindi una nuova esecuzione corrisponde comunque a quelle conversazioni invece di aggiungere copie duplicate.
Una conseguenza da conoscere: eliminare una chat importata e poi importare di nuovo lo stesso export riporta indietro la chat invece di segnalare un duplicato. Se hai eliminato deliberatamente una conversazione importata, non rieseguire quell'export a meno che tu non voglia che ritorni.
- Scegli conversations.json dall'export, non lo zip dell'export stesso
- Un export .json grezzo è accettato fino a 300 MB, oltre usa lo .zip
- Errori di sessione e connessione significano accedere di nuovo o riconnettersi, poi rieseguire
- Un conteggio non importato significa eseguire di nuovo l'importazione
- Eliminare una chat importata e reimportarla la riporta indietro
- Un'importazione grande in pausa per 20 secondi alla volta è rate limiting, non un guasto
- I rami rigenerati di ChatGPT, e i blocchi di pensiero e gli allegati di Claude, vengono scartati di proposito
Domande frequenti
Whizi dice che il mio export di ChatGPT non è un export di ChatGPT. Perché?
Il messaggio è That file is not a ChatGPT or Claude export. Look for conversations.json inside the export zip. e scatta quando il parser non riesce a riconoscere nessuno dei due formati nel file scelto, oppure quando uno zip produce un contenuto non riconosciuto. Il file che Whizi legge è conversations.json, quindi estrai l'export e scegli direttamente quel file. Se hai scelto lo zip e hai ricevuto There is no conversations.json inside that zip. Unzip it and pick the file directly. invece, lo zip non contiene affatto una voce corrispondente e l'export va scaricato di nuovo.
La mia importazione si è interrotta a metà. Rieseguirla duplicherà le mie chat?
No. Rieseguire è il recupero previsto per una connessione interrotta, una sessione terminata o un lotto fallito: la seconda esecuzione fa atterrare le stesse chat una sola volta e recupera solo ciò che manca. Non c'è nessun passaggio di pulizia da fare prima.
Perché sono state importate solo alcune delle mie conversazioni?
Possono comparire due conteggi diversi, e solo uno dei due è un fallimento. {count} could not be imported. Run the import again to pick them up. conta i lotti che hanno fallito ogni tentativo, ed eseguire di nuovo l'importazione è la soluzione. Un conteggio di elementi saltati è l'altro, e segnala conversazioni nel file che non contengono testo leggibile anziché conversazioni andate storte.
L'importazione è ferma da un po'. È rotta?
Osserva se riprende a muoversi, non da quanto tempo va avanti. Una pausa di circa 20 secondi seguita da altri progressi è il limitatore di frequenza, perché il client attende 20 secondi e riprova invece di mostrarti qualcosa. Un'importazione realmente terminata lo dice, con una delle stringhe di errore di questa pagina oppure con il riepilogo {count} could not be imported. Run the import again to pick them up.. Silenzio più progressi periodici significa lasciarla stare.
Il file di export ChatGPT o Claude viene caricato su Whizi?
No. Il file di export in sé non raggiunge mai il server. Il tuo browser lo legge, lo analizza e invia solo le conversazioni normalizzate, il che è anche il motivo per cui ogni errore di formato in questa pagina avviene prima che qualcosa venga inviato. Il dettaglio completo sulla gestione dei dati è in cosa fa Whizi con i tuoi dati.