跳过正文

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

·2425 字·5 分钟· ·
技术教程 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://www.hetong-re4per.com/posts/use-docker-and-koishi-to-build-your-own-chatbot/
版权声明: 本文文字在未特别注明下默认使用 CC BY-NC-SA 4.0 许可协议。

相关文章

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