پاسخ کوتاه
اگر Whizi واردات شما را رد کرد، ابتدا فایلی را که انتخاب کردهاید بررسی کنید: تنها فایلی که Whizi میخواند conversations.json داخل یک خروجی ChatGPT یا Claude است، پس خروجی را از حالت زیپ خارج کنید و همان فایل را انتخاب کنید، نه خود فایل زیپ را. پس از آن، یک واردات در یکی از دو نقطه شکست میخورد و متن پیام مشخص میکند کدام یک: پارسر مرورگر که فایل خروجی شما را میخواند، یا نقطهٔ پایانی واردات که گفتگوهای تولیدشده توسط پارسر را دریافت میکند. خطاهای فایل دربارهٔ فایلی هستند که انتخاب کردهاید. خطاهای آپلود دربارهٔ شبکه یا نشست هستند. هیچچیز در این میان مبهم نیست، چون هر پیام یک رشتهٔ ثابت مرتبط با یک شرط است.
دومین نکتهای که پیش از هر تلاش دوباره باید بدانید: اجرای دوبارهٔ واردات هرگز گفتگوها را تکراری نمیکند. هر گفتگوی واردشده بر اساس حساب، منبع و شناسهٔ منبع کلیدگذاری میشود، پس واردکردن یک خروجی دوبار، از سرگیری پس از قطع اتصال، یا کلیک دوباره روی Import، همگی همان گفتگوها را فقط یکبار ثبت میکنند.
| چه دیدید | کجا شکست خورد | چه باید کرد |
|---|---|---|
| پیامی دربارهٔ فرمت خروجی یا conversations.json | هنگام خواندن فایل شما، پیش از هر آپلودی | فایل دیگری از خروجی انتخاب کنید، به جدول زیر مراجعه کنید |
| پیامی دربارهٔ نشست یا اتصال شما | در میانهٔ آپلود | دوباره وارد شوید یا اتصال را برقرار کنید، سپس واردات را دوباره اجرا کنید |
| شماری از گفتگوها که وارد نشدند | برخی دستهها در هر تلاش دوباره شکست خوردند | واردات را دوباره اجرا کنید، فقط موارد جاافتاده را میگیرد |
| هیچچیز، اما زمان زیادی میبرد | محدودیت نرخ، دقیقاً طبق طراحی | صبر کنید، واردکننده خودش دوباره تلاش میکند |
خطاهای ناشی از خواندن فایل خروجی شما
این خطاها از مرورگر میآیند، پیش از آنکه حتی یک بایت از دستگاه شما خارج شود. خود فایل خروجی هرگز آپلود نمیشود: مرورگر آن را پارس میکند و فقط گفتگوهای نرمالشده را ارسال میکند، پس خطایی در این مرحله یعنی فایل هرگز آنقدر پیش نرفته که ارسال شود.
| پیام | علت | راهحل |
|---|---|---|
That file is not a ChatGPT or Claude export. Look for conversations.json inside the export zip. | پارسر نمیتواند هیچکدام از دو فرمت خروجی را شناسایی کند، یا فایل زیپ محتوایی ناشناخته میدهد | فایل آرشیو خروجی را باز کنید و مشخصاً conversations.json را انتخاب کنید |
There is no conversations.json inside that zip. Unzip it and pick the file directly. | فایل زیپی که انتخاب کردهاید هیچ ورودی منطبقی ندارد | خودتان آن را از حالت زیپ خارج کنید، conversations.json را پیدا کنید و همان فایل را انتخاب کنید |
That file is not valid JSON, so there was nothing to read. | فایل انتخابشده بهعنوان JSON پارس نمیشود | خروجی را دوباره از ChatGPT یا Claude دانلود کنید و conversations.json را از آن انتخاب کنید |
That export has no conversations with text in them. | خروجی پارس میشود اما هیچ گفتگویی تولید نمیکند | خروجی واقعاً از رونوشتهای متنی خالی است. چیزی برای اصلاح در سمت Whizi نیست |
That file is too large for the browser to open. Pick the export .zip instead, which is read one file at a time. | فایل خام .json انتخابشده از سقف خواندن مرورگر بیشتر است | بهجای آن .zip را انتخاب کنید. یک خروجی خام .json تا 300 MB پذیرفته میشود؛ مسیر .zip سقف خاص خودش را ندارد، چون فقط ورودی conversations.json از حالت فشرده خارج میشود |
Could not read that file. Please try again. | خواندن فایل به هر دلیل دیگری خطا داد | این واقعاً حالتی برای تلاش دوباره است. اگر روی همان فایل تکرار شد، فایل .zip خروجی را انتخاب کنید که یک ورودی در هر بار خوانده میشود |
اولین پیام، پیام کلیتر است، چون یک رشته دو شرط را پوشش میدهد: فرمت خروجیای که پارسر نمیتواند شناسایی کند، و فایل زیپی که محتوایی ناشناخته میدهد. هر دو به یک راهحل ختم میشوند، که همان خارج کردن خروجی از حالت زیپ و انتخاب مستقیم conversations.json است.
خطاهای ناشی از خود آپلود
بهمحض اینکه فایل پارس شود، واردکننده گفتگوها را بهصورت دستهای ارسال میکند. در این مرحله دو چیز ممکن است اشتباه پیش برود، و هر دو قابل جبران هستند.
| پیام | علت | راهحل |
|---|---|---|
Your session ended. Sign in again, then start the import. | دریافت توکن در میانهٔ واردات چیزی برنگرداند | دوباره وارد شوید، سپس واردات را از نو شروع کنید. هر آنچه از قبل ثبت شده باقی میماند و اجرای دوباره آن را نادیده میگیرد |
The import could not be finished. Check your connection and try again. | هر خطای دیگر آپلود در جریان اجرای واردات | اتصال را بررسی کنید و دوباره اجرا کنید |
یک نتیجهٔ سوم اصلاً خطا نیست بلکه یک خلاصه است: {count} could not be imported. Run the import again to pick them up. این شمار گفتگوهایی است که دستههایشان در هر تلاش دوباره شکست خوردهاند. دستورالعمل داخل پیام کل راهحل است، و کلید یکتاسازی که در پاسخ کوتاه توضیح داده شد دلیل آن است که اجرای دوم هیچ هزینهای برای شما ندارد.
خطاهایی که نقطهٔ پایانی واردات برمیگرداند
اینها کدها و رشتههایی هستند که خود مسیر واردات تولید میکند. وبسایت همان سقفها را بازتاب میدهد و پیش از ارسال اعتبارسنجی میکند، پس زمانی بیشترین اهمیت را دارند که چیزی مستقیماً به نقطهٔ پایانی ارسال میشود یا وقتی یک دسته ناقص است.
| کد | پیام | علت |
|---|---|---|
invalid_import | A JSON object body is required. | بدنهٔ واردات یک آبجکت نیست |
invalid_source | An import source of chatgpt or claude is required. | فیلد source وجود ندارد یا یکی از دو منبع پذیرفتهشده نیست |
empty_import | At least one conversation is required. | آرایهٔ گفتگوها وجود ندارد یا خالی است |
too_many_conversations | This batch has {count} conversations, over the 25 per request limit. | بیش از 25 گفتگو در یک درخواست |
too_many_messages | Conversation {n} carries {count} messages, over the 400 per request limit. Send the rest as an append. | بیش از 400 پیام در یک گفتگو در یک درخواست |
invalid_import | Conversation {n} is not an object. | یک ورودی از آرایهٔ گفتگوها آبجکت نیست |
invalid_import | Conversation {n} has no messages array. | یک گفتگو آرایهٔ پیامها را ندارد |
invalid_import | Conversation {n} has an invalid append target. | فیلد appendTo نه رشته است و نه null |
invalid_message | Conversation {n} message {m} is not an object. | یک ورودی پیام آبجکت نیست |
invalid_message | Conversation {n} message {m} needs a role of "user" or "assistant". | یک پیام نقشی خارج از این دو دارد |
invalid_message | Conversation {n} message {m} has no text. | محتوای پیام یک رشته نیست |
request_too_large | Request is too large. | بدنهٔ JSON از سقف بایت مسیر فراتر میرود، چه با Content-Length اعلامشده و چه با بایتهای واقعاً خواندهشده |
سقفهای پشت این پیامها: 25 گفتگو در هر درخواست، 400 پیام در هر گفتگو در هر درخواست، و بدنهٔ درخواستی حداکثر 2,000,000 بایت. واردکنندهٔ وبسایت دقیقاً روی 25 و 400 تقسیم میکند و هر درخواست را زیر 1,200,000 بایت نگه میدارد، عمداً پایینتر از سقف 2,000,000 بایت تا جایی برای پوشش درخواست باقی بماند. گفتگویی طولانیتر از 400 پیام رد نمیشود، بلکه برش میخورد: باقیماندهٔ آن بهصورت برشهای append روی همان چتی ارسال میشود که برش اول ایجاد کرده است.
یک واردات بزرگ هر بار برای 20 ثانیه مکث میکند
واردکردن گفتگوها به 20 درخواست در دقیقه برای هر کاربر محدود شده است. یک خروجی بزرگ به این سقف میرسد، و این امری مورد انتظار است، نه یک خرابی.
وقتی این اتفاق میافتد خطایی نمیبینید. وارداتی که به HTTP 429 برخورد میکند نمایش داده نمیشود: کلاینت 20 ثانیه صبر میکند و دوباره تلاش میکند، تا 4 تلاش برای هر دسته. پس وارداتی که روی یک خروجی بزرگ هر بار به مدت بیست ثانیه متوقف بهنظر میرسد، دقیقاً همان کاری را میکند که باید. بگذارید اجرا شود.
اگر دستهها پس از آن 4 تلاش همچنان شکست بخورند، در خلاصهٔ {count} could not be imported. Run the import again to pick them up. قرار میگیرند، و اجرای دوبارهٔ واردات راهحل است، نه پشتیبانی.
چیزهایی که واردات عمداً کنار میگذارد
برخی محتوا عمداً کنار گذاشته میشوند، و وارداتی که موفق میشود همچنان میتواند در کنار نسخهٔ اصلی ناقص بهنظر برسد.
برای یک خروجی ChatGPT، فقط شاخهای که روی صفحه بوده وارد میشود. پاسخهای بازتولیدشده و پیشنویسهای کنارگذاشتهشده بهعنوان پیام دوباره پخش نمیشوند. محتوای غیرِرونوشتی هم نادیده گرفته میشود: استدلال پنهان، کد و خروجی ابزار تحلیل، پیشنویسهای مرور وب، بلوکهای دستورالعمل سفارشی، و فراخوانیهای تابع.
برای یک خروجی Claude، بلوکهای thinking، فراخوانیهای ابزار، و پیوستها کنار گذاشته میشوند. فقط بلوکهای متنی وارد میشوند.
گفتگوهایی در فایل که هیچ متن خوانا ندارند، شمرده و بهعنوان نادیدهگرفتهشده گزارش میشوند نه اینکه بیسروصدا کنار گذاشته شوند، پس یک شمار نادیدهگرفتهشده اطلاعات است، نه شکست.
یک گفتگو بدون عنوان قابلاستفاده به Imported chat تبدیل میشود، و عنوانی طولانیتر از 120 نویسه کوتاه میشود. پیام واردشدهای که طولانیتر از سقف محتواست بهجای رد شدن کوتاه میشود، پس یک پیام بیشازحد بزرگ باقی آن گفتگو را از شما نمیگیرد.
در آخر، برچسبهای زمانی: پیام واردشدهای که تاریخش پیش از 2015-01-01 باشد، یا در آینده باشد، بهعنوان برچسب زمانی کنار گذاشته میشود و ردیف به زمان واردات بازمیگردد. چتی که با تاریخ اجرای واردات، بهجای تاریخ اصلیاش قرار میگیرد، به همین قاعده برخورده است.
چرا اجرای دوبارهٔ واردات امن است
کلید یکتاسازی در پاسخ کوتاه یک راه جایگزین دارد. وقتی یک خروجی هیچ شناسهٔ گفتگوی پایداری نمیدهد، کلید به هش خود رونوشت گفتگو تبدیل میشود، پس اجرای دوباره همچنان با همان گفتگوها مطابقت پیدا میکند، نه اینکه نسخهٔ دومی اضافه کند.
یک نتیجهٔ جانبی که باید بدانید: حذف یک چت واردشده و سپس واردکردن دوبارهٔ همان خروجی، آن چت را برمیگرداند نه اینکه یک مورد تکراری گزارش کند. اگر عمداً یک گفتگوی واردشده را حذف کردهاید، آن خروجی را دوباره اجرا نکنید مگر اینکه بخواهید برگردد.
- conversations.json را از داخل خروجی انتخاب کنید، نه خود فایل زیپ خروجی را
- یک خروجی خام .json تا 300 MB پذیرفته میشود، فراتر از آن از .zip استفاده کنید
- خطاهای نشست و اتصال یعنی وارد شوید یا دوباره متصل شوید، سپس دوباره اجرا کنید
- شماری که وارد نشده یعنی واردات را دوباره اجرا کنید
- حذف یک چت واردشده و واردکردن دوباره، آن را برمیگرداند
- توقف یک واردات بزرگ هر بار برای 20 ثانیه، محدودیت نرخ است، نه یک خرابی
- شاخههای بازتولیدشدهٔ ChatGPT، و بلوکهای thinking و پیوستهای Claude، عمداً کنار گذاشته میشوند
پرسشهای متداول
Whizi میگوید خروجی ChatGPT من یک خروجی ChatGPT نیست. چرا؟
پیام این است: That file is not a ChatGPT or Claude export. Look for conversations.json inside the export zip. و زمانی نمایش داده میشود که پارسر نتواند هیچکدام از دو فرمت را در فایلی که انتخاب کردهاید شناسایی کند، یا وقتی یک فایل زیپ محتوایی ناشناخته بدهد. فایلی که Whizi میخواند conversations.json است، پس خروجی را از حالت زیپ خارج کنید و همان فایل را مستقیماً انتخاب کنید. اگر فایل زیپ را انتخاب کردهاید و بهجای آن There is no conversations.json inside that zip. Unzip it and pick the file directly. دریافت کردهاید، فایل زیپ اصلاً هیچ ورودی منطبقی ندارد و خروجی باید دوباره دانلود شود.
واردات من در میانه متوقف شد. آیا اجرای دوباره چتهایم را تکراری میکند؟
خیر. اجرای دوباره روش موردنظر برای بازیابی پس از یک اتصال قطعشده، یک نشست پایانیافته، یا یک دستهٔ ناموفق است: اجرای دوم همان چتها را فقط یکبار ثبت میکند و فقط موارد جاافتاده را میگیرد. هیچ مرحلهٔ پاکسازیای برای انجامدادن پیش از آن وجود ندارد.
چرا فقط بخشی از گفتگوهای من وارد شد؟
دو شمار متفاوت میتوانند نمایش داده شوند، و فقط یکی از آنها شکست است. {count} could not be imported. Run the import again to pick them up. دستههایی را میشمارد که در هر تلاش دوباره شکست خوردهاند، و اجرای دوبارهٔ واردات راهحل آن است. یک شمار نادیدهگرفتهشده آن دیگری است، و گفتگوهایی در فایل را گزارش میکند که هیچ متن خوانایی ندارند، نه گفتگوهایی که مشکلی داشتهاند.
واردات مدتی است همانجا مانده. آیا خراب شده؟
به این توجه کنید که آیا دوباره حرکت میکند، نه اینکه چهقدر طول کشیده است. یک مکث حدود 20 ثانیه که پیشرفت بیشتری پس از آن میآید، همان محدودکنندهٔ نرخ است، چون کلاینت 20 ثانیه صبر میکند و دوباره تلاش میکند بهجای اینکه چیزی به شما نشان دهد. وارداتی که واقعاً تمام شده این را میگوید، یا با یکی از رشتههای خطای این صفحه یا با خلاصهٔ {count} could not be imported. Run the import again to pick them up. سکوت بههمراه پیشرفت دورهای یعنی آن را رها کنید.
آیا فایل خروجی ChatGPT یا Claude من به Whizi آپلود میشود؟
خیر. خود فایل خروجی هرگز به سرور نمیرسد. مرورگر شما آن را میخواند، پارس میکند، و فقط گفتگوهای نرمالشده را ارسال میکند، که همین دلیل آن است که هر خطای فرمتی در این صفحه پیش از ارسال هر چیزی رخ میدهد. جزئیات کامل نحوهٔ برخورد با داده در کاری که Whizi با دادهٔ شما انجام میدهد آمده است.