跳过正文

使用 Docker + Koishi 搭建一个属于自己的聊天机器人

·2425 字·5 分钟· loading ·
技术教程 QQ 机器人 Docker Koishi
褐瞳さん
作者
褐瞳さん
Everyone is mania in general
目录

开始之前
#

初中的时候看见有的群会有一个聊天机器人,当时 AI 还没发展起来,很多机器人都只是有几个小游戏功能,然后可以通过关键词进行回复。在大学闲暇时间终于有时间来研究这些东西了,刚好手头有一块开发板,很适合用来搭建聊天机器人,于是就有了这篇文章。

本教程主要使用 Koishi 机器人框架,利用 Docker 进行搭建(Docker 9.9 日国内恢复使用了🎉)。搭建平台是 Arm64 Linux,理论其他平台通用,Windows 更推荐直接使用官方直装版,Docker 在 Windows 上适配也不完全,没有必要使用 Docker 版。本文是适用于 Linux 的版本。

好的,接下来直接开始吧。

安装 Docker
#

首先进行一次软件包更新

sudo apt-get update && sudo apt-get upgrade -y

安装必须的软件包

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

添加 Docker 官方的 gpg 密钥

sudo mkdir -m 0755 -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

设置 Docker 密钥的储存库

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

配置新的 Docker 密钥后更新 apt list ,安装Dockerc Engine、containerd 和 Docker Compose

sudo chmod a+r /etc/apt/keyrings/docker.gpg
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装apparmor(强制访问控制系统)

sudo apt-get install apparmor

验证安装

sudo docker run hello-world

出现以下字样表示 Docker 安装成功

Docker安装成功

PS: 使用以下命令方便以后docker运行(需要重启才能生效)

sudo usermod -aG docker $USER
reboot

安装 Portainer (Docker 管理器)
#

拉取portainer并启动容器

docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer portainer/portainer

命令解释:

  • -d 后台运行容器,并返回容器ID
  • -p 指定端口映射,格式为:主机(宿主)端口:容器端口
  • –restart=always 主机重启后自动运行该容器
  • -v /var/run/.sock:/var/run/docker.sock:运行Docker的目录映射,必须要有才能用Portainer操作Docker命令
  • –name 自定义容器名称
  • portainer/portainer 容器所使用的镜像名称

打开portainer界面

<你的服务器ip>:9000

首先会让你设置密码,设置后进入就行,界面如下:

portainer开始

portainer主界面

首先会让你设置密码,设置后进入就行,界面如下

Q: 我看不懂 A: 请使用浏览器自带的翻译器

安装 Docker Koishi
#

拉取 Koishi 镜像

docker pull koishijs/koishi

启动 Koishi

#首先修改服务器时区以及时间
tzselect
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

容器数据本地化

mkdir /home/koishi

docker run -p 5140:5140 -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -v /home/koishi:/koishi --restart=always --name koishi koishijs/koishi

进入 Koishi 界面

<你的服务器ip>:5140

界面如下(我这里已经有过配置了)

Koishi控制面板

如果你想停止或重启 Koishi

停止或重启 Koishi

你也可以选择使用命令进行

# docker start 容器名字或者容器id
docker start koishi

# docker stop 容器名字或者容器id
docker stop koishi

# docker restart 容器名字或者容器id
docker restart koishi
请不要使用创建容器时的命令,那样将会报错(你改了容器名字当我没说,但是你的数据会“消失”)
也不要使用官网的命令[docker run -p 5140:5140 koishijs/koishi],这样你的数据也会“消失”
PS: “数据消失"并不是数据丢失,而是因为你创建了新的容器,你的数据在旧的容器中。

以上部分引用自 Koishi 论坛 - <docker系列>koishi 安装与docker全程指导(基于Ubuntu server 搭建24小时机器人 适合小白)

连接 QQ 前建议先更新好所有的插件,然后在「插件市场」搜索安装“echo”插件,安装好后进入「沙盒」,创建一个用户,使用echo 你好!查看 Koishi 是否正常工作。

连接 QQ
#

创建 QQ 开放平台帐号
#

前往QQ开放平台注册帐号并登录

创建机器人
#

在 QQ 开放平台主界面中选择「创建机器人」,依次配置好需要的信息,成功创建机器人后即可进入机器人后台。直接点击页面左侧的「开发设置」。

在这里,你可以得到:机器人 QQ 号、ID、Token 和 Secret。记下这些数据,千万不要泄漏它们。

数据

Koishi 连接 QQ 机器人
#

进入 Koishi 后台面板,左侧选择「插件配置」,选择“adapter-qq”,在 id, screct, token 上分别填入上一步获得的数据。在 机器人类型 (type)栏选择你的机器人对应的公域或者私域。

接下来,翻到下方的「intents」配置项。

  • 如果你准备在 QQ 群中使用,勾选USER_MESSAGE
  • 如果你准备在 QQ 频道的 频道私信 列表中使用,勾选DIRECT_MESSAGES
  • 如果你准备在 QQ 频道中使用,且你的机器人是公域机器人,勾选PUBLIC_GUILD_MESSAGES
  • 勾选MESSAGE_AUDIT

勾选

最后,点击右上角播放图标的「启动」按钮。插件会输出一条成功连接的日志,同时,Koishi 窗口的右下角已点亮绿灯。

绿灯亮

在 QQ 群中测试机器人
#

进入 QQ 机器人的网页管理后台,点击左侧的「沙箱配置」,翻到页面最下方,在「在 QQ 群配置」一栏选择你为管理员的群或者创建一个专门的测试群。

接着,在手 Q 中打开测试群,点击右上角的菜单图标,向下翻动找到「群机器人」选项,进入并添加刚刚创建的机器人。现在,你已可以在 QQ 使用自己的机器人。输入「@」并选择机器人,然后在后面输入「help」并发送。你可以看到机器人正常工作。

如果正常回复,恭喜,你刚刚创建了自己的机器人。

配置/指令
#

QQ 机器人的斜杠指令功能使你可以直接点选需要使用的指令,而无需手动输入。

首先,在 Koishi 中点击左侧栏的「插件配置」,接着选择插件列表中最上方的「全局配置」。

向下翻动到「prefix」配置项,并按照图中填写。第一项为「/」,第二项不填。 这使得你的机器人在带斜杠和不带斜杠的情况下都能正确触发指令。

添加斜杠

最后,点击右上角的「对勾」图标,重启 Koishi。

接下来,回到 QQ 机器人后台,点击左侧的「发布设置」,然后点击「功能配置」右侧的「配置」按钮。选择「指令」选项卡,点击右上角的「配置」,并在这里配置机器人的可用指令。配置完毕后,点击「保存」。现在,你已经可以使用斜杠指令。

配置指令

提测与上线
#

机器人准备完毕后,你可以开始进行提测与上线步骤。

在提测前,你应当完成上方的「配置斜杠指令」步骤,并确保你的机器人已经有可用的指令。

打开 QQ 机器人后台,点击左侧的「发布设置」,然后点击「自测报告」内的「下载模板」,下载一份自测报告模板。

提测

认真自测并填写此模板。自测完毕后,上传自测报告,并点击「上线机器人」。腾讯将会人工审核你的机器人,并准许上线。

以上内容主要来自 Koishi 论坛 - QQ/QQ 频道 登录指南

最后
#

非常推荐有什么疑问或者问题可以前往 Koishi 官方论坛寻找答案,没有的话可以自己提问。


本文作者: 褐瞳さん
本文链接: https://hetong-re4per.com/posts/use-docker-and-koishi-to-build-your-own-chatbot/
版权声明: 本文文字在未特别注明下默认使用 CC BY-NC-SA 4.0 许可协议。

相关文章

使用 Clooudflare R2 + Cloudreve 构建属于自己的云盘
·2455 字·5 分钟· loading
技术教程 Cloudflare Cloudreve 个人云盘 建站
如何使用 NEUTRINO 让歌姬为你而唱
·2477 字·5 分钟· loading
技术教程 NEUTRINO
使用 OrangePi Zero3 搭建 TS3AudioBot
·3107 字·7 分钟· loading
技术教程 Teamspeak3 OrangePi 开发板