这你们都能忍?转换ChatGPT导出对话为Markdown文件

掌握「AI 提示工程」与「AI 自动化」,就掌握了AI未来的两大核心能力 👇

记得半年前 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')

这是你离 AI 核心技能最近的一次机会!AI 实战派」不仅仅是一门课程,更是Prompt Engineering领域的真实实践与深度挖掘。我为你准备了超过8小时的视频,全心全意为你展示如何真正应用AI技术。这不仅仅是学习,更是一场关于未来技术的探索之旅。你准备好加入我们,一起探索Prompt Engineering的无限可能了吗?马上点击报名,未来等你开启!
扫码进入Axton的AI精英学院

感谢阅读!如果你喜欢这次分享的内容,请点个👍(或者点个👎)让我知道,同时请分享给你的一个朋友。也欢迎你去我的YouTube频道 『 回到Axton 』看我的视频内容,咱们一起好奇地看世界!

保持健康,保持快乐!

Axton

Twitter | YouTube | Newsletter | AI精英学院

Read more