ChatGPT导出查看器

conversations.json(或者ChatGPT邮件里发来的整个压缩包)拖到这里,就能按照屏幕上原来的样子阅读你的聊天记录:标题、日期、运行过的代码,一样不少。文件始终留在你自己的电脑上。

ChatGPT导出查看器

直接在浏览器里打开ChatGPT数据导出中的conversations.json。浏览每一条对话,跨对话搜索,把任意一条保存为Markdown。文件不会上传到任何地方。

将文件拖放到此处或点击浏览

conversations.json 或 .zip

您的数据永远不会离开浏览器。所有处理都在本地进行。

ChatGPT导出包里到底有什么

向ChatGPT申请导出数据后,OpenAI会给你发一封邮件,里面是一个压缩包的下载链接,24小时后失效。解压之后你会看到:一个chat.html,它试图把你所有的对话塞进一个页面(五十条还行,五千条直接卡死);一个user.json,存的是账户信息;一个message_feedback.json,记录了你点过的每一个赞和踩;还有一堆名字像file-abc123.png的图片。真正的内容都在conversations.json里,这个查看器就是为它而做的。

用文本编辑器打开这个文件,你马上就明白为什么没人直接读它。每一条对话不是消息列表,而是一棵树。每次你编辑提问或者点击重新生成,ChatGPT都会保留旧分支,再开一条新分支。这些全部存在一个叫mapping的对象里,带着父子指针,另外有一个current_node指向你最后看到的那条分支。一场一小时的对话,如果你改过三次提问,里面的消息数很可能是你记忆中的两倍。

这个查看器怎么处理它

它沿着ChatGPT当时展示给你的那条分支,从current_node一路回溯到根节点,把对话还原成你最后看到的样子。只存在于废弃分支上的消息会被统计出来,在对话上方用一行小字提示,既不打扰阅读,也不会被悄悄吞掉。回复以Markdown渲染,代码块带语法高亮。代码解释器的运行会显示为可折叠的代码块并标明语言,运行结果紧跟在下面。网页浏览结果、o系列模型的推理摘要、你的自定义指令、记忆更新,各自有一个默认折叠的区块。每条回复都会标出是哪个模型写的。图片会显示为[图片]标记,因为文件里只有指向图片文件的指针,没有图片本身。

搜索会扫描标题和每条消息的全文,把列表缩小到匹配的对话,打开后高亮命中位置。你可以把一条对话过滤成只看自己的话或只看ChatGPT的回复,复制任意一条消息,或者把整条对话下载为Markdown或纯文本。

大文件也只在你的电脑上处理

重度用户的导出包动辄几百MB,算上图片有的超过1GB。普通网页没办法把这么大的文件一次性交给JSON解析器。这个页面根本不这么做:它按4MB分片读取,跨分片正确解码UTF-8,所以中文字符或表情符号被切在中间也不会出错,每条对话的右花括号一到就立刻解析。内存里只保留精简后的对话,不保留原始文本,因此2GB的文件在普通笔记本的Chrome或Firefox里也能打开。整个过程不经过任何服务器:不上传,不需要账号,页面加载完成后断网照样能用。如果你拖进来的是压缩包而不是JSON,查看器会在浏览器里打开压缩包,找到conversations.json,忽略其余文件。超过1GB的压缩包请先解压。

怎样获取导出包

  1. 打开ChatGPT,点击你的名字或头像,进入设置。
  2. 进入数据控制,点击导出数据并确认。
  3. 等待OpenAI的邮件。对话少的账号几分钟就到,多的可能要几个小时。
  4. 在24小时内下载压缩包,过期链接就失效了。
  5. 把压缩包拖到这里,或者解压后只拖入conversations.json

它不能做什么,先说清楚

导出前已删除的对话不在文件里,任何查看器都找不回来。分享链接也不包含在内。自定义GPT和项目里的对话是有的,但文件里没有记录GPT的名字,所以它们看起来和普通对话一样。语音对话以文字转录的形式出现。查看器一次导出一条对话;要把整个导出包一次性转成Markdown,那是另一种工具该干的活。

谁会用得上

准备取消订阅、想把一年的对话留成可读格式的人。记得ChatGPT三月份给自己写过一段代码、却怎么翻都找不到的开发者。需要向人事或律师证明当时问了什么、答了什么、日期是哪天的人。还有单纯好奇自己到底聊过多少次的人。顶部的计数器会告诉你,而且这个数字通常比你猜的要大。

关于ChatGPT导出查看器的常见问题