简单说下背景,笔者是在今年3月份开始玩Astrbot,分别接了WX、QQ和TG,QQ刚玩没几天就喜提警告大礼包,TG用的很少(魔法质量太低,不稳定),就剩下WX是实打实的玩了2个月,日常各种插件装装装,群里各种撩骚侃侃侃。然而,好日子没过几天,五一之后就喜闻噩耗:Gewechat因不可抗力,凉了!
所以,WX的机器人也就挂了!
但是,爱折腾的大拿会就此接受现实吗?不会,绝对不会!额...我说的大佬是指Astrbot开发者S佬
😂,大佬给我们又带来了新选择,那就是Wechatpadpro!又可以愉快玩耍啦!
关于如何部署Astrbot,笔者就不絮叨了,可以直接去官网学习,或搜搜笔者的历史文章,都有!本文就简单介绍下如何在NAS上部署Wechatpadpro。
Wechatpadpro需要依赖Mysql和Redis,支持源码部署和Docker部署,我肯定是不会选择源码的方式,就不提了。所以还是老样子,Docker跑起呗。
官方给的compose是把Wechatpadpro与Mysql、Redis放在一起部署的,这两个货是通用的中间件,也许你别的应用也会用到,真的建议单独部署,没必要跟应用绑定。所以,直接上这俩货的compose.yml。
Mysql
services:
mysql:
image: mysql:8.4.4
container_name: mysql
restart: unless-stopped
network_mode: bridge
environment:
# - --character-set-server=utf8mb4
# - --collation-server=utf8mb4_unicode_ci
MYSQL_ROOT_HOST: '%'
MYSQL_DATABASE: wechatpadpro #默认库
MYSQL_ROOT_PASSWORD: 123456 #root账号密码
TZ: Asia/Shanghai
ports:
- '3306:3306'
- '33060:33060'
volumes:
- /share/Container/mysql/data:/var/lib/mysql #冒号左边改成你想改的目录
- /share/Container/mysql/config:/etc/mysql/conf.d #冒号左边改成你想改的目录
🔔提示:建议直接把默认库设置为wechatpadpro
,这样你就不用连接到数据库手工创建了,另外上面把数据库的root密码设置为了123456
,你也可以改成你想改的,后面会用到。
Redis
services:
redis:
image: redis:latest
container_name: redis
restart: unless-stopped
tty: true
network_mode: bridge
command: redis-server /etc/redis/redis.conf --appendonly yes
ports:
- 6379:6379
volumes:
- /share/Container/redis/data:/data #冒号左边改成你想改的目录
- /share/Container/redis/redis.conf:/etc/redis/redis.conf #冒号左边改成你想改的目录
🔔提示:记得到/share/Container/redis/redis.conf
文件中找到requirepass
,并设置密码为123456
,当然密码随你心意,这里只是给个例子,这个密码后面会用到。
分别启动Mysql和Redis容器,至于怎么启动,我只能说就是下面一行命令,如果你不理解,那么你需要学习下Docker和Docker Compose的基本常识啦,现在AI大模型这么五花八门,查一查也不是太难的事儿。
docker compose up -d
下面就开始进入正题了,主角Wechatpadpro终于要登场啦。实际上,并没有Wechatpadpro的Docker镜像,所以我想说,所谓Docker部署方式实际上还是源码的套壳方式,因为在这里,我们还得下载Wechatpadpro的源码,并利用一个Linux基础镜像提供环境来运行源码。
1、准备工作
现在机器上创建好Wechatpadpro工作目录,例如:
/share/Container/wechatpadpro/main
2、下载和部署源码
可以直接到Github上下载源码zip包,也可以使用Git克隆源码,都一样。官方仓库地址如下:
https://github.com/luolin-ai/WeChatPadPro
将下载的源码解压(git clone不需要解压)后的文件夹内的全部文件复制或上传到【1】中创建好的/share/Container/wechatpadpro/main
目录中。重要的事情再说一遍哈,是复制或上传文件夹内的全部文件,而不是文件夹。
还没完,看到那个859_service_linux.zip
文件了吗,继续把它解压,注意也是直接解压zip包中的内容,而不要解压到文件夹。解压出来的就是一个stay
可执行文件。
3、配置文件
重点来了,将下面的json内容复制到一个setting.json
文件内,然后开始做一些修改。
"adminKey": "adminKey"
,冒号后面的愿意改就改,后面会用到"Host": "192.168.31.91"
,把192.168.31.91改成你自己部署Redis机器的IP"Pass": "123456"
,把123456改成你自己部署的Redis的密码,上文提到过,你如果改了密码就写你改过的密码。"mySqlConnectStr": "root:123456@tcp(192.168.31.91:3306)/wechatpadpro?charset=utf8mb4&parseTime=true&loc=Local"
,其中的123456是Mysql的密码,上文也提到过,如果改了,就写你改过的密码;同样,192.168.31.91也改成你自己部署Mysql机器的IP。{
"debug": false,
"host": "0.0.0.0",
"port": "8849",
"apiVersion": "",
"ghWxid": "",
"adminKey": "adminKey",
"workerpoolsize": 500,
"maxworkertasklen": 1000,
"redisConfig": {
"Host": "192.168.31.91",
"Port": 6379,
"Db": 1,
"User": "",
"Pass": "123456",
"MaxIdle": 10,
"MaxActive": 20,
"IdleTimeout": 5000,
"MaxConnLifetime": 30,
"ConnectTimeout": 0
},
"mySqlConnectStr": "root:123456@tcp(192.168.31.91:3306)/wechatpadpro?charset=utf8mb4&parseTime=true&loc=Local",
"disabledCmdList": [
"A000"
],
"newsSynWxId": false,
"rocketMq": false,
"rocketMqHost": "127.0.0.1:9876",
"rocketAccessKey": "123",
"rocketSecretKey": "123!#@13$",
"rabbitMq": false,
"topic": "wx_sync_msg_topic",
"rabbitMqUrl": "amqp://yunkong:123456@127.0.0.1:5672/",
"kafka": false,
"kafkaUrl": "192.168.10.40:9093,192.168.10.41:9093,192.168.10.42:9093",
"kafkaUsername": "yunkongkafka",
"kafkaPassword": "iSPmfJmtBgcvcTJZ123456",
"dt": true,
"cluster": {
"clusterName": "",
"zkAddr": "",
"ectdAddr": ""
}
}
然后,把这个setting.json
文件复制或上传到上面提到的/share/Container/wechatpadpro/main
文件夹下面的assets
文件夹下面,覆盖里面的setting.json
文件。
3、启动Wechatpadpro
以上都准备完以后,就可以下面一哆嗦了。复制下面的compose.yml,直接在你的机器启动就行。
services:
wechatpadpro:
container_name: wechatpadpro
image: alpine:latest
restart: unless-stopped
network_mode: bridge
ports:
- "38849:8849" #冒号左边可以改,后面会用到
volumes:
- /share/Container/wechatpadpro/main:/main
working_dir: /main
command: [ "/bin/sh", "-c", "chmod +x ./stay && ./stay" ]
logging:
driver: "json-file"
options:
max-size: "5g"
environment:
- TZ=Asia/Shanghai
- LANG=zh_CN.UTF-8
- LC_ALL=zh_CN.UTF-8
至于怎么启动,还是老样子,一行命令:
docker compose up -d
一哆嗦完成,这时候可以看一下Docker容器的日志,看看有没有正常启动。
docker logs -ft wechatpadpro
以上就完成Wechatpadpro的部署了,下面就简单了,在AstrBot上添加适配器就行了。
1、在【消息平台】菜单中,点击【新增适配器】,选择【wechatpadpro(微信)】
2、分别填入admin_key、你机器的IP和Wechatpadpro(在Wechatpadpro的compose.yml文件里设置的映射端口,冒号左边的)。记得点一下启用哦!
3、打开AstrBot的日志,找到WX二维码链接,在浏览器中打开,拿起你的手机,使用WX扫描二维码,登录即可。这一步忘截图了,所以没有图😂。
4、然后呢?然后就没有然后了。就跟之前使用Gewechat一样,正常在微信上调戏你的机器人即可。
但是!笔者实测发现,目前私聊机器人一切正常,可以正常回复。但是群聊就不行了,后台也正常调用大模型生成回复,但是消息不会发到群里面,也就是群里@机器人后没反应。各位玩家稍安勿躁,毕竟这个框架刚刚接入,相信S佬很快就会解决!
原创不易,如果觉得此文对你有帮助,不妨点赞+收藏+关注,你的鼓励是我持续创作的动力!