这你们都能忍?转换ChatGPT导出对话为Markdown文件
记得半年前 ChatGPT 刚上线对话导出功能的时候,我就调侃过这功能设计可能没经过产品经理,工程味十足,信息齐全,就是用起来整理起来并不方便。当时就让 GPT-4 帮忙写了一段代码,把导出的 JSON 文件按对话拆开,转换成单独的 Markdown 文件。然后就都扔到 DEVONthink 里面,想怎么用就怎么用了。
刚好今天又一次整理对话,就把代码分享给大家。操作方法请看视频:
https://youtube.com/shorts/DRXNPSGafM8?feature=share
如何运行Python请看以上视频的相关视频。
代码如下,请注意此代码并不完善,仅供参考:
import json
import os
def create_markdown_files(json_file):
with open(json_file, 'r', encoding='utf-8') as file:
data = json.load(file)
for chat in data:
title = chat["title"]
title = title.replace('/', '-')
messages = chat["mapping"]
# Use title to create markdown file
with open(f'{title}.md', 'w', encoding='utf-8') as md_file:
md_file.write(f'# Title: {title}\\n')
# Write user and assistant messages in markdown file
for key in messages:
if messages[key]["message"] is not None:
role = messages[key]["message"]["author"]["role"]
try:
text = messages[key]["message"]["content"]["parts"][0]
# rename assistant to ChatGPT
role = 'ChatGPT' if role == 'assistant' else role.title()
md_file.write(f'### {role}:\\n{text}\\n')
except KeyError:
print(f"'parts' key not found in message: {key}")
continue
if __name__ == "__main__":
# 获取脚本所在的目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 将当 前工作目录改为脚本所在的目录
os.chdir(script_dir)
create_markdown_files('conversations.json')
感谢阅读!如果你喜欢这次分享的内容,请点个👍(或者点个👎)让我知道,同时请分享给你的一个朋友。也欢迎你去我的YouTube频道 『 回到Axton 』看我的视频内容,咱们一起好奇地看世界!
保持健康,保持快乐!
Axton
Twitter | YouTube | Newsletter | AI精英学院