安装 NodeJS
从 Ubuntu 软件源安装 Node.js 和 npm
1
2
3
4
5
6
7
8
9
10
11
|
# 安装
sudo apt update
sudo apt install nodejs npm
# 验证安装过程
nodejs --version
v18.19.1
# 卸载
sudo apt remove nodejs npm
|
从 NodeSource 中安装 Node.js 和 npm
1
2
3
4
5
6
7
8
9
|
# 添加 NodeSource 的仓库并安装指定版本的 Node.js(例如 22.x 或更高版本)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
# 安装 Node.js
sudo apt install -y nodejs
# 验证安装,检查 Node.js 和 npm 的版本
node -v
npm -v
|
安装 LangBot
如果要接入个人微信,需要以 docker
的方式安装 LangBot
。
本地部署
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# 安装解压工具
sudo apt install unzip
# 解压
unzip langbot-v3.4.14.2-all.zip -d /langbot
# 进入到 web 目录
cd /langbot/web
# 构建前端,需要 NodeJS >= 22
npm install && npm run build
# 创建虚拟环境
conda create --name langbot python=3.10.3
# 激活虚拟环境
conda active langbot
# 使用 venv 创建虚拟环境
python -m venv venv
# 进入虚拟环境
source venv/bin/activate
# 进入主目录
cd /langbot
# 安装依赖
pip install -r requirements.txt
# 运行一次主程序,生成配置文件
python main.py
# 提示如下信息
_ ___ _
| | __ _ _ _ __ _| _ ) ___| |_
| |__/ _` | ' \/ _` | _ \/ _ \ _|
|____\__,_|_||_\__, |___/\___/\__|
|___/
⭐️开源地址: https://github.com/RockChinQ/LangBot
📖文档地址: https://docs.langbot.app
以下文件不存在,已自动生成,请按需修改配置文件后重启:
- plugins/__init__.py
- plugins/plugins.json
- data/config/command.json
- data/config/pipeline.json
- data/config/platform.json
- data/config/provider.json
- data/config/system.json
- data/config/sensitive-words.json
- data/scenario/default.json
# 使用 Ctrl+C 退出程序,配置其他文件
|
docker 部署
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# Git 克隆本项目
git clone https://github.com/RockChinQ/LangBot
cd LangBot
# 启动容器
docker compose up
# 创建网络
docker network create langbot-network
# 将 langbot 添加到 langbot-network 网络中
docker network connect langbot-network langbot
|
通过 wechatpadpro 接入个人微信
我使用的是 简化版
拉取 WeChatPad-Docker
1
2
3
4
5
6
7
8
9
|
git clone https://github.com/fdc310/WeChatPad-Docker.git
cd WeChatPad-Docke
# 启动
docker compose up -d
# 日志
docker logs wechatpad
|
更改(简化版)docker-compose 网络与 langbot 在同一个 Docker 网络中
如需修改数据库账号密码等,有能力的自行修改,此版本修改需要同时修改项目目录下 app/assets/setting.json
中的用户密码相关
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
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
|
软件配置
- assets/setting.json:全局配置
- assets/owner.json:
管理员/所有者
配置
1
2
3
4
5
6
7
8
9
10
11
|
能修改的字段如下,其他字段不用修改!不用修改!;
`debug`:是否开启 `debug` 日志;
`port`:当前服务端口号;
`apiVersion`:当前服务 `API` 版本,例如这里的 `/v849` 就是API版本,`http://127.0.0.1:8848/v849`;可以设为空简化 `URL`,此时服务 `BASE_URL` 为 `http://127.0.0.1:8848`;
`ghWxid`:要引流关注的微信公众号的 `wxid`;新用户登录时自动关注;默认为空,不关注任何公众号;
`adminKey`:管理相关接口(例如 `GenAuthKey` 等接口)的授权 `KEY`,若留空每次服务启动随机生成;
`redisConfig.Port`:`Redis` 服务端口号;
`redisConfig.Db`:要使用的 `Redis` 几号数据库;
`redisConfig.Pass`:`Redis` 服务密码;
`mySqlConnectStr`:`用户名:密码@tcp(127.0.0.1:3306)/数据库名?charset=utf8mb4&parseTime=true&loc=Local`;
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
{
"debug": false,
"host": "0.0.0.0",
"port": "8848",
"apiVersion": "/v849",
"ghWxid": "",
"adminKey": "",
"redisConfig": {
"Host": "127.0.0.1",
"Port": 6379,
"Db": 1,
"Pass": "12345678"
},
"mySqlConnectStr": "wechat_mmtls:12345678@tcp(127.0.0.1:3306)/wechat_mmtls?charset=utf8mb4&parseTime=true&loc=Local"
}
|
1
2
3
4
5
|
# 这里要设置管理员微信号的wxid,注意是wxid,不要设置错了;
# 这里设置管理员wxid后,管理员扫码登录后,可以使用微信的`文件传输助手使用部分命令管理;
{
"wxid_xxx": 1
}
|
启动教程
- 修改基础设置
setting.json
设置你自己的 adminKey
或留空随机,修改 mysql
与 redis
的连接地址、账户名、密码等信息;
- 修改管理员设置
owner.json
添加你的 wxid
,注意是 wxid
,别填错了;
-
docker compose up -d
-
获取全程操作的AuthKey:http://127.0.0.1:8848/v849/login/GenAuthKey2?key=ADMIN_KEY&count=1&days=365
(生成 count=1
个有效期为 days=365
的 API
授权码);
注意:服务 Owner
(超级管理员)也可以在微信的文件管理助手生成 key
;
- 登录:
1.获取二维码,传家附近的代理:socks5://用户名:密码@代理IP:代理端口
2.获取二维码状态
详细教程
-
在本机或者局域网下访问 http://serveip:9090
进入 Swagger
即可。(这是简化版 docker-compose
中映射端口号)
-
在 ADMIN_KEY
输入框中填值,只填值,其他的不要点。
(图1
)
- 获取
token
(图2
)
(图3
)
等待返回拿到里面的 token
回填入上面的 token
(图4
)
- 登录微信
try it out /login/GetLoginQrCodeNew
接口即可(和服务器是同市或者同省)
(图5
)
如果是云服务器,需要填入 Proxy
(图6
)
返回的参数中有登录二维码链接,打开扫码登录即可
(图7
)
手机登录后看是否有 iPad
在线,如果不在线就使用, 查看扫码状态
(图8
)
(图9
)
-
记录 adminKey
、WeChatPadPro 地址
、WeChatPadPro 的 ws 地址
、wxid
和 token
-
在 langbot
的创建机器人中填写信息
(图10
)
wechatpad_key
填写 adminKey
wechatpad_url
填写 WeChatPadPro
的地址,例如:http://ip:9090
wechatpad_ws
填写 WeChatPadPro
的 ws
地址,例如:http://ip:9090/ws
wxid
填写该登录账号的 wxid
wechatpad_token
填写 WeChatPadPro
的 token
- 添加模型后,在流水线中选中该模型,在机器人中选中该流水线,启用即可。