聊天平台适配
WeClone 目前支持以下平台聊天记录作为数据源,同时欢迎贡献者适配更多平台。
平台 | 文字 | 图片 | 语音 | 视频 | 动画表情 | 链接(分享) | 引用 | 转发 | 位置 | 文件 |
---|---|---|---|---|---|---|---|---|---|---|
微信 | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Telegram | ✅ | ✅ | ❌ | ❌ | ⚠️转为Emjoy | ❌ | ❌ | ✅ | ✅ | ❌ |
聊天记录导出
Telegram
- 请使用 Telegram Desktop 导出聊天记录。
- 消息类型选择“照片”,格式选择“JSON”。
- 可以导出多个联系人(不建议导出群聊记录),然后将导出的
ChatExport_*
文件夹放入./dataset/telegram
目录中,即把不同人的聊天记录文件夹一起放在./dataset/telegram
下。 - 请在配置文件中将
telegram_args.my_id
修改为您自己的 Telegram 用户 ID,result.json中的from_id
为您的用户ID。
目录结构
dataset/
└── telegram/
├── ChatExport_2025-01-01/
│ ├── result.json
│ └── photos/
└── ChatExport_2025-01-02/
├── result.json
└── photos/
微信
- 使用PyWxDump(不支持4.0版本微信),或其他开源工具导出微信聊天记录。其他工具需要格式转换为PyWxDump的导出格式。
- 可以先将手机的聊天记录迁移(备份)到电脑,数据量更多一些。
- 导出类型为CSV,可以导出多个联系人(不建议使用人多的群聊记录)
- 和一个聊天对象的聊天记录存放在一个单独的文件夹中,文件夹下可以有多个CSV文件。
- 将同多个人聊天的多个文件夹复制到WeClone项目的
./dataset/csv
文件夹下
媒体文件准备(可选)
在能进入微信个人文件夹的环境执行,如果没有环境创建环境并安装基础依赖即可(uv pip install -e .
),然后执行以下命令,会将训练用到的图片数据保存到./dataset/wechat/dat
目录下。
bash
python weclone/data/chat_parsers/wechat_parser.py --wechat-data-dir "微信个人文件夹路径 例如 C:\Users\user\Documents\WeChat Files\wxid_d68wiru2zseo22"
之后使用微信图片解密工具或其他工具解密媒体文件,解密后的文件保存到dataset/media/images
目录下。
推荐的目录结构
dataset/
├── csv/ (PyWxDump默认导出结构)
│ ├── person1-personal_chat-1234567890/
│ │ ├── person1_0_5000.csv
│ │ └── person1_5000_10000.csv
│ └── person2-personal_chat-2345678901/
│ ├── person2_0_5000.csv
│ └── person2_5000_10000.csv
└── media/ (手动解密后的媒体文件)
└── images/
├── 01c177d8ad98969ba048455b54eef.jpg
└── 13d6d8a81fa7d09238c81fe314e85.png
说明:
- 每个人的聊天记录存放在独立的文件夹中
- CSV文件可按消息数量分片:
person_起始序号_结束序号.csv
WeClone需要的数据样例格式如下:
id | MsgSvrID | type_name | is_sender | talker | room_name | msg | src | CreateTime |
---|---|---|---|---|---|---|---|---|
1 | 7437267147299592543 | 图片 | 0 | wxid_12345iru2zsmo22 | wxid_6789z5qlxzfj22 | 图片 | FileStorage\MsgAttach\dd0e62b6eb67d1953454354350301d6c\Image\2024-10\01c177d8ad90af8969b455b54eef.dat | 2024/10/4 11:42 |
2 | 637529293739295664 | 图片 | 0 | wxid_12345iru2zsmo22 | wxid_6789z5qlxzfj22 | 图片 | FileStorage\MsgAttach\dd0e62b6eb67d1953454354350301d6c\Image\2024-10\d8a8936ca622823452e80a53a6.dat | 2024/10/4 11:42 |
3 | 4073926741244663531 | 文本 | 1 | wxid_12345iru2zsmo22 | wxid_6789z5qlxzfj22 | 小马尔代夫 | 2024/10/4 11:43 | |
4 | 706358374822797422 | 文本 | 1 | wxid_12345iru2zsmo22 | wxid_6789z5qlxzfj22 | 名不虚传 | 2024/10/4 11:43 |
python
class ChatMessage:
id: int # 顺序id
MsgSvrID: str # 消息平台原始id
type_name: str # 消息类型 参考cut_type_data和skip_type_data
is_sender: int # 0: 对方发送 1: 自己发送
talker: str # 消息发送者id
msg: str # 消息内容
src: str # 媒体文件路径、额外信息字段
CreateTime: Timestamp # 消息发送时间
room_name: Optional[str] = None # 消息接收者或群聊id
is_forward: bool = False # 是否是转发消息
其他聊天软件数据导出
可以参考ChatMessage
类进行适配,适配后欢迎向WeClone提交PR。