Koishi

官网:Koishi

Koishi 是一个跨平台、高性能的聊天机器人框架,灵感来自东方 Project 中的角色 古明地恋

Koishi 拥有庞大的插件生态,无论是日常娱乐还是实用功能,你都能在这里找到。

特点:

  • 开箱即用: 提供控制台,支持主流聊天平台(如 QQ、Telegram、Discord),用户可快速搭建聊天机器人。
  • 生态丰富: 拥有超过 1000 个插件,适合构建大型应用或轻量级辅助机器人。
  • 专为开发者打造: 提供 TypeScript 支持、单元测试和模块热重载等功能,简化插件开发过程。

部署 Koishi

Docker

bash
1
2
3
4
5
6
7
8
9
10
11
# 创建网络
docker network create koishi
docker run -d \
--name koishi \
-p 15140:5140 \
-v /data/koishi:/koishi \
-e TZ=Asia/Shanghai \
--restart always \
--network koishi \
--add-host host.docker.internal:host-gateway \
koishijs/koishi:latest

Docker Compose

yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
services:
koishi:
image: koishijs/koishi:latest
container_name: koishi
ports:
- "15140:5140"
volumes:
- /data/koishi:/koishi
environment:
- TZ=Asia/Shanghai
restart: always
networks:
- koishi
extra_hosts:
- host.docker.internal:host-gateway

networks:
koishi:
name: koishi

bash
1
docker compose up -d

https://minio.kl.do/picture/images/blog/39d93142641cea5fd32cfd0ce75bdec9.png

https://minio.kl.do/picture/images/blog/39d93142641cea5fd32cfd0ce75bdec9.png

登录 Koish 控制台

地址:你的IP:15140

https://minio.kl.do/picture/images/blog/00c1e710313e7400d103158960009e83.png

https://minio.kl.do/picture/images/blog/00c1e710313e7400d103158960009e83.png

更新依赖

先点击左侧边栏的 依赖管理,然后右上角先点 小火箭 在点 更新全部依赖

https://minio.kl.do/picture/images/blog/fdb5c186af0c5599522ba2d07e55969f.png

https://minio.kl.do/picture/images/blog/fdb5c186af0c5599522ba2d07e55969f.png

Lagrange.OneBot 消息平台

Lagrange 介绍

Lagrange 是一个 QQNT 协议逆向工程框架,比 Shamrock 或 Mirai 更加轻便,在目前也较为稳定。通过 OneBot 11 协议接入,需选择使用 aiocqhttp 作为适配器,填写配置时可参考 Shamrock 的方式。

可选平台(需要.NET 8 or 7 支持):

  • Mac OS 也可使用
  • Linux Ubuntu 22.04,Debian 12 应该都可以
  • Windows 10,11,Server2019 及以上

注意: 要使用 NT QQ 发信息,旧版 QQ 无法正常使用

项目地址:LagrangeDev/Lagrange.Core: An Implementation of NTQQ Protocol, with Pure C#, Derived from Konata.Core (github.com)

Docker 镜像地址:Package lagrange.onebot docker images

使用版本:2024-07-30 版本

容器启动

Docker

bash
1
2
3
4
5
6
7
docker run -d \
--name lagrange-onebot \
-e TZ=Asia/Shanghai \
-v /data/lagrange-onebot:/app/data \
--restart always \
--network koishi \
ghcr.io/lagrangedev/lagrange.onebot:sha-69c7b62

Docker Compose

yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
services:
lagrange-onebot:
image: ghcr.io/lagrangedev/lagrange.onebot:sha-69c7b62
container_name: lagrange-onebot
environment:
- TZ=Asia/Shanghai
volumes:
- /data/lagrange-onebot:/app/data
restart: always
networks:
- koishi

networks:
koishi:
external: true
name: koishi
bash
1
docker compose up -d

二进制文件启动

Releases 地址:Releases · LagrangeDev/Lagrange.Core (github.com)

请根据系统环境下载对应的不要带 musl 的压缩包

bash
1
2
3
4
5
6
7
8
9
10
11
wget https://github.com/LagrangeDev/Lagrange.Core/releases/download/nightly/Lagrange.OneBot_linux-x64_net8.0_SelfContained.tar.gz
tar zvxf Lagrange.OneBot_linux-x64_net8.0_SelfContained.tar.gz

# 解压缩
cd Lagrange.OneBot
mv ./bin/Release/net8.0/linux-x64/publish/Lagrange.OneBot ./
rm -r ./bin

# 启动
chmod +x Lagrange.OneBot
./Lagrange.OneBot

配置文件

首次运行时,程序会在同级目录下自动生成默认的 appsettings.json 配置文件。请正确修改该文件以设置 Lagrange。

完成配置文件修改后(建议使用扫码登录),在命令行中按任意键启动 Lagrange。随后,同一文件夹下会生成一张名为 qr-0.png 的登录二维码图片。请在二维码过期前,尽快使用手机 QQ 扫码连接。

需要配置 Lagrange 以让其连接上 Koishi,请编辑 Lagrange 的配置文件 appsettings.json,确保 Implementations 中的连接配置符合下图内容:

  • 端口可自定义
  • AccessToken 验证密钥
  • Host 如果是二进制部署且 Lagrange 和 Koishi 都在同一台服务器上则看填 127.0.0.1
json
1
2
3
4
5
6
7
8
9
{
"Type": "ForwardWebSocket",
"Host": "0.0.0.0",
"Port": 15141,
"HeartBeatInterval": 5000,
"Suffix": "/ws",
"HeartBeatEnable": true,
"AccessToken": "626s6uesGwCbQraXRsan"
}

修改后文件:

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
{
"Logging": {
"LogLevel": {
"Default": "Information", // 提 Issue 时请切换到 Trace
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information",
},
},
"SignServerUrl": "https://sign.lagrangecore.org/api/sign",
"Account": {
"Uin": 0, // Uin 填写 0 以使用扫码连接
"Password": "", // 不填写密码以使用扫码连接
"Protocol": "Linux", // 使用 Linux 协议
"AutoReconnect": true,
"GetOptimumServer": true,
},
"Message": {
"IgnoreSelf": true, // 忽略 Bot 自身的消息
"StringPost": false,
},
"QrCode": {
"ConsoleCompatibilityMode": false,
},
"Implementations": [ // 服务实现 支持多链接
{
"Type": "ForwardWebSocket",
"Host": "0.0.0.0",
"Port": 15141,
"HeartBeatInterval": 5000,
"Suffix": "/ws",
"HeartBeatEnable": true,
"AccessToken": "626s6uesGwCbQraXRsan"
}
],
}

QQ 登录

修改配置文件后需要重启 Lagrange.OneBot

  • 二进制启动直接可能看到二维码或在本目录下 qr-0.png 的登录二维码图片
  • 如果使用 docker 则
plaintext
1
docker logs lagrange-onebot

https://minio.kl.do/picture/images/blog/933ba4cc8b615ba3469c4a171a36c53a.png

https://minio.kl.do/picture/images/blog/933ba4cc8b615ba3469c4a171a36c53a.png

配置 QQ 机器人

echo 插件

进入插件市场搜索 echo 插件,安装

左侧边栏进入沙盒,添加一个用户,发送 帮助,测试一下功能

https://minio.kl.do/picture/images/blog/e3b74d2d1788e203d761cc11696588b6.png

https://minio.kl.do/picture/images/blog/e3b74d2d1788e203d761cc11696588b6.png

adapter-onebot 插件

安装

回到 koishi 的插件商店,搜索安装 adapter-onebot 插件
安装完成会自动进入插件管理页面,右键 adapter 分组,选择添加插件,找到刚刚安装的 adapter-onebot 插件,添加。

https://minio.kl.do/picture/images/blog/80632f5f1e06ff46547f89b9716d74eb.png

https://minio.kl.do/picture/images/blog/80632f5f1e06ff46547f89b9716d74eb.png

https://minio.kl.do/picture/images/blog/d2a93ebf5d561addc2cfc77eb3faa725.png

https://minio.kl.do/picture/images/blog/d2a93ebf5d561addc2cfc77eb3faa725.png

https://minio.kl.do/picture/images/blog/a32da96f40239daa3bad6572653adb81.png

https://minio.kl.do/picture/images/blog/a32da96f40239daa3bad6572653adb81.png

配置

  • 使用 Docker 部署 则 ws://lagrange-onebot:15141/ws
  • 本地部署则填写你的 ip: 端口 /ws

https://minio.kl.do/picture/images/blog/e7dbd6e78286cfea99389e78bb5edaa9.png

https://minio.kl.do/picture/images/blog/e7dbd6e78286cfea99389e78bb5edaa9.png

日志信息中出现以下内容及服务连接成功

https://minio.kl.do/picture/images/blog/123978934547e411bc3a50aecfe632a1.png

https://minio.kl.do/picture/images/blog/123978934547e411bc3a50aecfe632a1.png

chatluna 多平台模型

安装后,在插件管理中添加 chatluna 插件

https://minio.kl.do/picture/images/blog/3929c2a2390b075deb1b1c85ea299640.png

https://minio.kl.do/picture/images/blog/3929c2a2390b075deb1b1c85ea299640.png

cache 安装一项即可,后按你的需求添加对应的插件

https://minio.kl.do/picture/images/blog/daf5248ccc02048226d6d265fabf6ee1.png

https://minio.kl.do/picture/images/blog/daf5248ccc02048226d6d265fabf6ee1.png

安装 openai-like-adapter 插件

按要求填写你的 API 信息。 我的 API 平台是 https://api.kl.do 支 ChatGPT、Claude、Deespeek 等主流大模型,欢迎使用!

https://minio.kl.do/picture/images/blog/14111425b33de8b13bfb0c5d541cc633.png

https://minio.kl.do/picture/images/blog/14111425b33de8b13bfb0c5d541cc633.png

https://minio.kl.do/picture/images/blog/52aad8edc9aa2d6b9dcaefe7b9246e1a.png

https://minio.kl.do/picture/images/blog/52aad8edc9aa2d6b9dcaefe7b9246e1a.png

Koishi 控制台设置登录授权

https://minio.kl.do/picture/images/blog/b5ad7bae6c9ef6c494697bbbfb137a53.png

https://minio.kl.do/picture/images/blog/b5ad7bae6c9ef6c494697bbbfb137a53.png