Skip to content

聊天平台适配

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需要的数据样例格式如下:

idMsgSvrIDtype_nameis_sendertalkerroom_namemsgsrcCreateTime
17437267147299592543图片0wxid_12345iru2zsmo22wxid_6789z5qlxzfj22图片FileStorage\MsgAttach\dd0e62b6eb67d1953454354350301d6c\Image\2024-10\01c177d8ad90af8969b455b54eef.dat2024/10/4 11:42
2637529293739295664图片0wxid_12345iru2zsmo22wxid_6789z5qlxzfj22图片FileStorage\MsgAttach\dd0e62b6eb67d1953454354350301d6c\Image\2024-10\d8a8936ca622823452e80a53a6.dat2024/10/4 11:42
34073926741244663531文本1wxid_12345iru2zsmo22wxid_6789z5qlxzfj22小马尔代夫2024/10/4 11:43
4706358374822797422文本1wxid_12345iru2zsmo22wxid_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。