Files
LangBot/docs/zh/usage/platforms/wechat/wechatpad.mdx
T
RockChinQ 9d2042478a Add 'docs/' from commit '51dddcb3f891d60bc38645e88b2dbd515344da81'
git-subtree-dir: docs
git-subtree-mainline: 0582d1b3d4
git-subtree-split: 51dddcb3f8
2026-10-27 08:04:35 +00:00

405 lines
10 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "个人微信(WeChatPadPro)"
description: "通过 WeChatPad 将个人微信接入 LangBot,运行大模型驱动的 AI 机器人。"
---
> 异地警告,没有 Socks5 代理或者本地服务器慎用!!!!!!
**本教程仅说明 Docker 部署教程,如果可以尽量将 WeChatPadPro 部署到同一网络**
## 拉取 WeChatPad-Docker
1. 原项目
```bash
git clone https://github.com/WeChatPadPro/WeChatPadPro.git
cd WeChatPadPro/deploy
```
2. 简化
```bash
git clone https://github.com/fdc310/WeChatPad-Docker.git
```
### 一、如果不更改 Redis、MySQL、AdminKey 和相关端口及其网络的情况下可以直接运行
```bash
docker compose up -d
```
* 查看日志是否启动成功
```bash
# 简化
docker logs wechatpad
# or 原版
docker logs wechatpadpro
```
启动成功实例如下输出:
查看并记录自己的日志生成的 `adminKey`,后面登录会用到。
```bash
版本号: v20240818.00
======== ADMIN_KEY === adminKey ========
connect MySQL success
auto create MySQL tables success
connect Redis success
GET Connection locfree Failed by ee4c9a06-cf5e-4451-9e81-5290d0217625 abandon the conntection get !
updateApiVersion success
启动GIN服务成功! http://0.0.0.0:8849
```
* 然后在本机或者局域网下访问 `http://serveip:9090` 进入 Swagger 即可。(这是简化版 docker-compose 中映射端口号)
* 然后在本机或者局域网下访问 `http://serveip:1239` 进入 Swagger 即可。(这是原版 docker-compose 中映射端口号)
### 二、如果要更改(简化版)docker-compose 网络与 langbot 在同一个 Docker 网络中,以及数据库密码和端口更改
参考修改 YAML 文件,以下是 WeChatPad 的 YAML 文件,容器连接方式可以参考 [文档](/zh/workshop/network-details.html)。
* 如需修改数据库账号密码等,有能力的自行修改,此版本修改需要同时修改项目目录下 ``app/assets/setting.json`` 中的用户密码相关
```yaml
version: "3.3"
services:
mysql_wx:
container_name: mysql_wxpad
image: mysql:8.0
ports:
- "3306:3306"
restart: always
logging:
driver: "json-file"
options:
max-size: "5g"
environment:
MYSQL_ROOT_PASSWORD: test_mysql
MYSQL_ROOT_HOST: '%'
MYSQL_DATABASE: wechatpadpro
volumes:
- "./mysql/data:/var/lib/mysql"
- "./mysql/config:/etc/mysql/conf.d"
networks:
- langbot-network
healthcheck:
test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ]
interval: 5s
timeout: 3s
retries: 5
redis_wx:
image: redis:alpine
container_name: redis_wxpad
restart: unless-stopped
command: redis-server --requirepass test_redis
environment:
- REDIS_PASSWORD=test_redis
volumes:
- ./redis/data:/data
ports:
- "6381:6379"
networks:
- langbot-network
healthcheck:
test: ["CMD", "redis-cli", "-a", "test_redis", "ping"]
interval: 5s
timeout: 3s
retries: 5
wechatpad:
container_name: wechatpad
image: alpine:latest
ports:
- "9090:8849"
restart: always
depends_on:
mysql_wx:
condition: service_healthy
redis_wx:
condition: service_healthy
links:
- mysql_wx
- redis_wx
volumes:
- ./app:/app # 映射数据目录,宿主机:容器
working_dir: /app
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
networks:
- langbot-network
networks:
langbot-network:
external: true
```
### 三、原版 docker-compose 需要修改与 langbot 同一 Docker 网络中,以及数据库用户密码,都那口映射修改可参考以下:
* 如需修改数据库账号密码等,有能力的自行修改,此版本修改需要同时修改项目目录下 ``deploy/.env`` 中的用户密码相关
```yaml
version: '3.8'
services:
wechatpadpro:
image: registry.cn-hangzhou.aliyuncs.com/wechatpad/wechatpadpro:v0.11
container_name: wechatpadpro
restart: always
ports:
- "1239:1239"
volumes:
- wechatpadpro_data:/app/data
- wechatpadpro_logs:/app/logs
environment:
- TZ=Asia/Shanghai
- DEBUG=false
- ADMIN_KEY=12345
- HOST=0.0.0.0
- PORT=1239
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_DB=1
- REDIS_PASS=123456
- MYSQL_CONNECT_STR=wechatpadpro:123456@tcp(mysql:3306)/wechatpadpro?charset=utf8mb4&parseTime=true&loc=Local
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
networks:
- langbot-network
redis:
image: registry.cn-hangzhou.aliyuncs.com/wechatpad/wechatpadpro-redis:v0.1
container_name: wechatpadpro_redis
restart: always
command: redis-server --requirepass 123456
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 3
networks:
- langbot-network
mysql:
image: registry.cn-hangzhou.aliyuncs.com/wechatpad/wechatpadpro-mysql:v0.11
container_name: wechatpadpro_mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=wechatpadpro
- MYSQL_USER=wechatpadpro
- MYSQL_PASSWORD=123456
- TZ=Asia/Shanghai
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "wechatpadpro", "-p123456"]
interval: 5s
timeout: 3s
retries: 3
networks:
- langbot-network
networks:
langbot-network:
driver: bridge
volumes:
wechatpadpro_data:
wechatpadpro_logs:
redis_data:
mysql_data:
```
#### `.env` 环境变量说明
| 变量名 | 说明 | 默认值 | 是否必填 |
|--------------------|----------------|------------|----------|
| DEBUG | 调试模式 | false | 否 |
| ADMIN_KEY | 管理员密钥 | 12345 | 是 |
| PORT | 服务端口 | 1239 | 否 |
| REDIS_PASS | Redis 密码 | 123456 | 是 |
| MYSQL_CONNECT_STR | MySQL 连接串 | 见配置文件 | 是 |
## 如果要手动部署
* 手动部署或者 Win 上使用 Docker 部署参考以下官方文档
请查看 [WeChatPadPro 文档](https://github.com/luolin-ai/WeChatPadPro)
## 登录微信
1. 成功启动 WeChatPadPro 后根据你的 serverip:port 访问 WeChatPadPro 的 Swagger
![img.png](../../../../images/zh/deploy/platforms/wechat/Snipaste_2025-06-09_22-30-49.png)
2. 填入 adminKey
![img.png](../../../../images/zh/deploy/platforms/wechat/Snipaste_2025-06-09_22-30-49.png)
3. 获取 token
** try it out `/admin/GanAuthKey1` 接口 body 中的 days 改为 365 即可
![img.png](../../../../images/zh/deploy/platforms/wechat/Snipaste_2025-06-09_22-33-18.png)
等待返回拿到里面的 token 回填入上面的 token
![img.png](../../../../images/zh/deploy/platforms/wechat/Snipaste_2025-06-09_22-36-41.png)
5. 登录微信
** try it out `/login/GetLoginQrCodeNew` 接口即可(和服务器是同市或者同省)
![img.png](../../../../images/zh/deploy/platforms/wechat/Snipaste_2025-06-09_22-37-40.png)
** 如果是云服务器,需要填入 Proxy
![img.png](../../../../images/zh/deploy/platforms/wechat/login2.png)
** 返回的参数中有登录二维码链接,打开扫码登录即可
![img.png](../../../../images/zh/deploy/platforms/wechat/login3.png)
** 手机登录后看是否有 iPad 在线,如果不在线就使用, 查看扫码状态
![img.png](../../../../images/zh/deploy/platforms/wechat/ipadlogin.jpg)
> 没有在线的话是因为什么(这是我已经成功登录,扫码状态过期了)
![img.png](../../../../images/zh/deploy/platforms/wechat/Snipaste_2025-06-09_22-41-05.png)
6. 记录你的 adminkey、token、wx 地址和访问地址(wxid 可以不管)
## 在 langbot 的创建机器人中填写信息
- `wechatpad_key` 填写 adminKey
- `wechatpad_url` 填写 WeChatPadPro 的地址
- `wechatpad_ws` 填写 WeChatPadPro 的 ws 地址
- `wxid` 填写该登录账号的 wxid
- `wechatpad_token` 填写 WeChatPadPro 的 token
![img.png](../../../../images/zh/deploy/platforms/wechat/langbotset.png)
## 详细的 API 接口文档
如果有想要为该适配器做贡献,或者制作微信相关插件请查看 [WeChatPadPro API 文档](https://doc.apipost.net/docs/460ada21e884000?locale=zh-cn)
里面有相关接口及其参数说明
## 常见问题
### 1. 服务无法启动
检查步骤:
```bash
# 查看服务日志
docker-compose logs
# 查看具体服务日志
docker-compose logs wechatpadpro
docker-compose logs mysql
docker-compose logs redis
```
### 2. 数据持久化
数据默认保存在以下 Docker volumes 中:
- `wechatpadpro_data`:应用数据
- `wechatpadpro_logs`:应用日志
- `redis_data`:Redis 数据
- `mysql_data`:MySQL 数据
查看数据卷:
```bash
docker volume ls | grep wechatpadpro
```
### 3. 服务重启
```bash
# 重启所有服务
docker-compose restart
# 重启单个服务
docker-compose restart wechatpadpro
```
## 维护指南
### 日常维护
1. 查看服务状态:
```bash
docker-compose ps
```
2. 查看服务日志:
```bash
docker-compose logs -f --tail=100
```
3. 备份数据:
```bash
# 备份 MySQL 数据
docker exec wechatpadpro_mysql mysqldump -u root -p123456 wechatpadpro > backup.sql
```
### 官方版本升级
1. 拉取最新镜像:
```bash
docker-compose pull
```
2. 重新部署服务:
```bash
docker-compose up -d
```
### 简化版升级
* 需要重新拉取 GitHub
```bash
git clone
cd WeCahtPad_Docker
docker compose down
docker compose up -d
```
## 安全建议
1. 修改默认密码
- 修改 `ADMIN_KEY`
- 修改 MySQL 密码
- 修改 Redis 密码
2. 限制端口访问
- 只对必要端口开放外部访问
- 使用防火墙限制 IP 访问
3. 定期备份
- 备份 MySQL 数据
- 备份应用数据