~/Library/Messages/chat.db 的 sqlite 数据库中(至少对于 macOS Ventura 13.4)。IMessageChatLoader 从此数据库文件加载。- 使用指向要处理的
chat.db数据库的文件路径创建IMessageChatLoader。 - 调用
loader.load()(或loader.lazy_load())执行转换。可以选择使用merge_chat_runs合并同一发件人按顺序发送的消息,和/或使用map_ai_messages将指定发件人的消息转换为“AIMessage”类。
1. 访问聊天数据库
您的终端可能被拒绝访问~/Library/Messages。要使用此类,您可以将数据库复制到可访问的目录(例如,Documents)并从那里加载。或者(不推荐),您可以在“系统设置”>“安全与隐私”>“完全磁盘访问”中授予终端模拟器完全磁盘访问权限。 我们创建了一个示例数据库,您可以在此链接的云端硬盘文件中使用。2. 创建聊天加载器
向加载器提供 zip 目录的文件路径。您可以选择指定映射到 AI 消息的用户 ID,并配置是否合并消息运行。3. 加载消息
load()(或 lazy_load)方法返回一个“ChatSessions”列表,目前只包含每个加载对话的消息列表。所有消息最初都映射到“HumanMessage”对象。 您可以选择合并消息“运行”(来自同一发件人的连续消息)并选择一个发件人代表“AI”。微调后的 LLM 将学会生成这些 AI 消息。3. 准备微调
现在是时候将我们的聊天消息转换为 OpenAI 字典了。我们可以使用convert_messages_for_finetuning 工具来完成此操作。
4. 微调模型
是时候微调模型了。确保您已安装openai 并已正确设置 OPENAI_API_KEY
5. 在 LangChain 中使用
您可以直接在ChatOpenAI 模型类中使用生成的模型 ID。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。