🤖 Gewechat已凉凉,换Wechatpadpro接入Astrbot让机器人继续续命!

wechatpadpro

简单说下背景,笔者是在今年3月份开始玩Astrbot,分别接了WX、QQ和TG,QQ刚玩没几天就喜提警告大礼包,TG用的很少(魔法质量太低,不稳定),就剩下WX是实打实的玩了2个月,日常各种插件装装装,群里各种撩骚侃侃侃。然而,好日子没过几天,五一之后就喜闻噩耗:Gewechat因不可抗力,凉了!

所以,WX的机器人也就挂了!

但是,爱折腾的大拿会就此接受现实吗?不会,绝对不会!额...我说的大佬是指Astrbot开发者S佬😂,大佬给我们又带来了新选择,那就是Wechatpadpro!又可以愉快玩耍啦!

🏷️ 前情提要

关于如何部署Astrbot,笔者就不絮叨了,可以直接去官网学习,或搜搜笔者的历史文章,都有!本文就简单介绍下如何在NAS上部署Wechatpadpro。

Wechatpadpro需要依赖Mysql和Redis,支持源码部署和Docker部署,我肯定是不会选择源码的方式,就不提了。所以还是老样子,Docker跑起呗。

🏷️ 部署Mysql和Redis

官方给的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,当然密码随你心意,这里只是给个例子,这个密码后面会用到。

Redis密码

分别启动Mysql和Redis容器,至于怎么启动,我只能说就是下面一行命令,如果你不理解,那么你需要学习下Docker和Docker Compose的基本常识啦,现在AI大模型这么五花八门,查一查也不是太难的事儿。

docker compose up -d

🏷️ 部署Wechatpadpro

下面就开始进入正题了,主角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目录中。重要的事情再说一遍哈,是复制或上传文件夹内的全部文件,而不是文件夹。
wechatpadpro

还没完,看到那个859_service_linux.zip文件了吗,继续把它解压,注意也是直接解压zip包中的内容,而不要解压到文件夹。解压出来的就是一个stay可执行文件。
wechatpadpro

3、配置文件

重点来了,将下面的json内容复制到一个setting.json文件内,然后开始做一些修改。

  • "adminKey": "adminKey",冒号后面的愿意改就改,后面会用到
  • redisConfig下面的"Host": "192.168.31.91",把192.168.31.91改成你自己部署Redis机器的IP
  • redisConfig下面的"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:[email protected]: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文件。
wechatpadpro

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

以上就完成Wechatpadpro的部署了,下面就简单了,在AstrBot上添加适配器就行了。

1、在【消息平台】菜单中,点击【新增适配器】,选择【wechatpadpro(微信)】
Astrbot

2、分别填入admin_key、你机器的IP和Wechatpadpro(在Wechatpadpro的compose.yml文件里设置的映射端口,冒号左边的)。记得点一下启用哦!

Astrbot
3、打开AstrBot的日志,找到WX二维码链接,在浏览器中打开,拿起你的手机,使用WX扫描二维码,登录即可。这一步忘截图了,所以没有图😂。

4、然后呢?然后就没有然后了。就跟之前使用Gewechat一样,正常在微信上调戏你的机器人即可。

Astrbot

但是!笔者实测发现,目前私聊机器人一切正常,可以正常回复。但是群聊就不行了,后台也正常调用大模型生成回复,但是消息不会发到群里面,也就是群里@机器人后没反应。各位玩家稍安勿躁,毕竟这个框架刚刚接入,相信S佬很快就会解决!


原创不易,如果觉得此文对你有帮助,不妨点赞+收藏+关注,你的鼓励是我持续创作的动力!

高等精灵实验室

原创文章,作者:诺多,如若转载,请注明出处:https://www.huluohu.com/posts/1542/

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
🆕 Anx Reader电子书阅读器v1.5.2更新
上一篇 2025年5月18日 07:10
🆕 VutronMusic音乐播放器v1.9.0更新
下一篇 2025年6月1日 16:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注