开始之前#
初中的时候看见有的群会有一个聊天机器人,当时 AI 还没发展起来,很多机器人都只是有几个小游戏功能,然后可以通过关键词进行回复。在大学闲暇时间终于有时间来研究这些东西了,刚好手头有一块开发板,很适合用来搭建聊天机器人,于是就有了这篇文章。
好的,接下来直接开始吧。
安装 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 安装成功
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
首先会让你设置密码,设置后进入就行,界面如下:
首先会让你设置密码,设置后进入就行,界面如下
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
你也可以选择使用命令进行
# 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 开放平台主界面中选择「创建机器人」,依次配置好需要的信息,成功创建机器人后即可进入机器人后台。直接点击页面左侧的「开发设置」。
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 许可协议。