IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    诺多发表于 2025-05-17 23:10:47
    love 0

    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: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文件。
    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佬很快就会解决!


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

    高等精灵实验室



沪ICP备19023445号-2号
友情链接