news 2026/9/9 18:20:29

用 3 个环节搭一个微信 AI 助手:WeClone 部署与微调实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用 3 个环节搭一个微信 AI 助手:WeClone 部署与微调实战

用 3 个环节搭一个微信 AI 助手:WeClone 部署与微调实战

【免费下载链接】WeClone🚀 One-stop solution for creating your AI twin from chat history 💡 Fine-tune LLMs with your chat logs to capture your unique style, then bind to a chatbot to bring your digital self to life.项目地址: https://gitcode.com/GitHub_Trending/we/WeClone

想象一个画面:你发出去一条"在忙吗",隔几秒跳回一条"在的,刚开完会"——语气、用词、连标点习惯都像你自己。回复这条消息的不是你,而是你的数字分身。WeClone 就是做这件事的开源项目:它拿你的微信聊天记录去微调(也就是用你自己的语料继续训练,让模型学会你的说话方式)ChatGLM 大模型,再把这个"克隆的你"接到微信里,当你的私人 AI 助手。

部署前需要准备什么

前置条件一句话:有 Python 3.10 环境,GPU 显存 16GB 起步(LoRA 方式微调 6B 模型的估算值;显存不足可换 8 位量化方案)。后面所有改动都发生在你自己本地克隆的项目里,仓库本身不需要动。

环节操作 / 命令或说明
1. 前置条件Python 3.8+(推荐 3.10)、CUDA 11.6+;准备一个已导出为 CSV 的微信聊天记录;下载 ChatGLM3-6B 基础模型到本地
2. 准备环境克隆代码并装依赖:

bash<br>git clone https://gitcode.com/GitHub_Trending/we/WeClone && cd WeClone<br>pip install -r requirements.txt<br>
3. 配置模型在本地克隆的 settings.json 中,把common_args里的model_name_or_path指到你下载 ChatGLM3-6B 的目录,adapter_name_or_path保持为训练产出的model_output
4. 跑通验证启动浏览器 demo,发几句日常消息,确认回复口吻接近你本人:

bash<br>python ./src/web_demo.py<br>

数字分身能接到微信里干几件事

像本人一样回消息

它能接住"你好""在吗"这类高频短句,并且用你的口吻回应,而不是客服腔。例:

你:今天加班到十点 分身:我懂,我昨天也是。

回复长度和语气都被infer_args里的max_lengthtemperature约束着,默认配置下就是短句、低随机性的"熟人风格"。

多轮对话不失忆

它能记住上下文,连续追问也不会突然岔开话题。例:

你:好累啊今天 分身:哈哈哈哈 你:你哈哈哈哈 分身:? 你:困死我了 分身:我也是 你:那晚安喽 分身:安安安安安安

听懂网络梗和表情包

它不只会答正经问题,"瘦成狗了""[doge]"这类口语和表情它接得住、还会接梗。例:

你:最近瘦了没 分身:瘦成狗了 你:真的假的 分身:[doge],真的,饿的

在真实微信里被 @ 出来

在微信里私聊它,或在群聊中 @ 它,都会走和浏览器 demo 相同的推理链路。注意它只"像你",不会替你做决定,回复内容仍需你自己把关。

想让数字分身更像你:数据、调参与人设三步走

第一步:整理数据

用 PyWxDump 把聊天导出为 CSV,放到./data/csv目录,然后在本地克隆的项目里运行 make_dataset/csv_to_json.py 转成训练 JSON。脚本会默认滤掉手机号、邮箱等隐私字段;make_dataset/blocked_words.json 是禁用词库,整句命中即删除,可按需补充。同一个连发多句的回答有三种处理脚本可选(逗号拼接、取最长句、放进 history),按你语料的对话密度挑一个。

第二步:调参微调

在你本地的 settings.json 中改train_sft_argsper_device_train_batch_sizegradient_accumulation_steps控制单卡显存;num_train_epochslora_ranklora_dropout控制学习强度。改完运行python src/train_sft.py(入口 src/train_sft.py),产出model_output里的 LoRA 权重;显存富余可加 ds_config.json 走 deepspeed 多卡。也可以先用 src/train_pt.py 做预训练阶段,但提升通常不明显,可以跳过。

第三步:设定人设

回复模板由 src/template.py 定义(chatglm3-weclone),分身"开口前"的角色设定写在这里。想让它自称什么、怎么接话,在本地克隆的这份模板里调整即可——这一步决定了同一个模型是"你"还是"陌生人"。

避坑与调优:问题→解法

  • 显存不够怎么办?在本地克隆的 settings.json 中调低per_device_train_batch_size、用gradient_accumulation_steps补偿,或整体切到 8 位量化(QLoRA),6B 模型显存可从约 16GB 降到 10GB 上下。
  • 回复太慢怎么提速?infer_argsmax_length默认 50,是速度和长度的平衡点;追求更快就再压小,追求流畅长回复则调temperaturetop_p,别一味放大。
  • 回复开始复读怎么办?repetition_penalty从默认 1.2 再抬高一点,复读通常就能压下去。
  • loss 降得很低就一定是好事吗?不一定。数据只有两万条时,loss 降到 3.5 以下往往已接近过拟合,此时应减小num_train_epochslora_rank,而不是继续训。
  • 训练效果差找谁?先查数据。项目方自己说了:最终效果很大程度取决于聊天数据的数量和质量,再花哨的参数也救不了脏数据。
  • 微信会封号吗?有封号风险,且机器人账号必须已绑定银行卡。建议用小号,并遵守微信平台使用规范。

上线前自检:对照这张表逐项过一遍

检查项达标标准对应文件
基础模型就位ChatGLM3-6B 已下载到本地,路径与配置一致settings.json
微调权重就位model_output中已产出 LoRA 适配器src/train_sft.py
对话可用浏览器 demo 能连续对话且口吻接近本人src/web_demo.py
接口与机器人API 服务与微信机器人启动后终端出现登录二维码src/api_service.py、src/wechat_bot/main.py
数据链路通./data/csv下有 CSV,且转换脚本可跑通make_dataset/
敏感词过滤禁用词库已按需更新make_dataset/blocked_words.json

以上都通过后,你的微信 AI 助手才算真正"上线"。提醒一句:个人微信跑机器人存在封号风险,务必用小号并遵守平台规范。现在可以回到终端,把 make_dataset/ 里的脚本跑一遍,开始给你的数字分身备料。

【免费下载链接】WeClone🚀 One-stop solution for creating your AI twin from chat history 💡 Fine-tune LLMs with your chat logs to capture your unique style, then bind to a chatbot to bring your digital self to life.项目地址: https://gitcode.com/GitHub_Trending/we/WeClone

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 18:18:28

储能参与现货-调频市场的双层交易决策与Matlab实现

储能参与现货电能量-调频辅助服务市场的双层交易决策研究(Matlab代码实现)最近在复盘储能参与电力市场的项目&#xff0c;发现不少同学一上来就盯住“现货价差套利”不放&#xff0c;却忽略了调频辅助服务这条同样重要的收益路径。现在很多省份已经允许储能同时参与现货电能量市…

作者头像 李华
网站建设 2026/9/9 18:17:36

Android投屏Demo实战:MediaProjection与MediaCodec编码传输全解

简介&#xff1a;Android端投屏demo是一份面向Android开发者的示例工程&#xff0c;其核心是演示基于MediaProjection API的手机屏幕镜像到电视、电脑或投影仪等设备的完整流程。压缩包大小33.55MB&#xff0c;共2000个文件&#xff0c;以class、png、xml、json、jar、java等为…

作者头像 李华
网站建设 2026/9/9 18:16:54

Gemini 模型 JSON 输出截断排障指南:参数、协议、架构三层修复

Gemini 模型 JSON 输出截断排障指南&#xff1a;参数、协议、架构三层修复 【免费下载链接】generative-ai Sample code and notebooks for Generative AI on Google Cloud, with Gemini Enterprise Agent Platform 项目地址: https://gitcode.com/GitHub_Trending/ge/genera…

作者头像 李华
网站建设 2026/9/9 18:15:43

diagram-design:前端图表的工程化实践指南

1. “diagram-design”不是工具名&#xff0c;而是一类工程实践的统称 很多人第一次看到“diagram-design”这个词&#xff0c;下意识以为是个新出的软件、插件或 npm 包——比如像 create-react-app 那样带连字符的 CLI 工具。但其实它根本不是某个具体产品&#xff0c;而是…

作者头像 李华