~/Library/Messages/chat.db 的 sqlite 数据库中(至少在 macOS Ventura 13.4 版本如此)。
IMessageChatLoader 从该数据库文件加载数据。
- 创建
IMessageChatLoader,将文件路径指向您想处理的chat.db数据库。 - 调用
loader.load()(或loader.lazy_load())执行转换。可选地使用merge_chat_runs合并同一发送者连续发送的消息,和/或使用map_ai_messages将指定发送者的消息转换为”AIMessage”类。
1. 访问聊天数据库
您的终端可能被拒绝访问~/Library/Messages。要使用该类,您可以将数据库复制到可访问的目录(如文档目录)后再加载。或者(不推荐),您可以在系统设置 > 安全性与隐私 > 完全磁盘访问权限中为您的终端模拟器授予完全磁盘访问权限。
我们创建了一个示例数据库供您使用,链接地址为 此 Google Drive 文件。
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。
通过 MCP 将这些文档连接到 Claude、VSCode 等以获得实时解答。

