LangBot

安装 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
}

启动教程

  1. 修改基础设置 setting.json

   设置你自己的 adminKey 或留空随机,修改 mysqlredis 的连接地址、账户名、密码等信息;

  1. 修改管理员设置 owner.json

   添加你的 wxid,注意是 wxid,别填错了;

  1. docker compose up -d

  2. 获取全程操作的AuthKey:http://127.0.0.1:8848/v849/login/GenAuthKey2?key=ADMIN_KEY&count=1&days=365 (生成 count=1 个有效期为 days=365API 授权码);

   注意:服务 Owner (超级管理员)也可以在微信的文件管理助手生成 key

  1. 登录:

   1.获取二维码,传家附近的代理:socks5://用户名:密码@代理IP:代理端口

   2.获取二维码状态


详细教程

  1. 在本机或者局域网下访问 http://serveip:9090 进入 Swagger 即可。(这是简化版 docker-compose 中映射端口号)

  2. ADMIN_KEY 输入框中填值,只填值,其他的不要点。

/images/documents/LangBot/1.png
(图1)
  1. 获取 token
/images/documents/LangBot/2.png
(图2)
/images/documents/LangBot/3.png
(图3)

等待返回拿到里面的 token 回填入上面的 token

/images/documents/LangBot/4.png
(图4)
  1. 登录微信

try it out /login/GetLoginQrCodeNew 接口即可(和服务器是同市或者同省)

/images/documents/LangBot/5.png
(图5)

如果是云服务器,需要填入 Proxy

/images/documents/LangBot/6.png
(图6)

返回的参数中有登录二维码链接,打开扫码登录即可

/images/documents/LangBot/7.png
(图7)

手机登录后看是否有 iPad 在线,如果不在线就使用, 查看扫码状态

/images/documents/LangBot/8.png
(图8)
/images/documents/LangBot/9.png
(图9)
  1. 记录 adminKeyWeChatPadPro 地址WeChatPadPro 的 ws 地址wxidtoken

  2. langbot 的创建机器人中填写信息

/images/documents/LangBot/10.png
(图10)
  • wechatpad_key 填写 adminKey
  • wechatpad_url 填写 WeChatPadPro 的地址,例如:http://ip:9090
  • wechatpad_ws 填写 WeChatPadProws 地址,例如:http://ip:9090/ws
  • wxid 填写该登录账号的 wxid
  • wechatpad_token 填写 WeChatPadProtoken
  1. 添加模型后,在流水线中选中该模型,在机器人中选中该流水线,启用即可。

0%