引言

NapCat通过魔法的手段获得了 QQ 的发送消息、接收消息等接口并把他们以OneBot的规范开放,允许其他组件按照规范进行通信。(官网传送门)(Github仓库

Koishi 是一个跨平台、可扩展、高性能的聊天机器人框架。(官网传送门)(Github仓库

准备好了吗?这篇教程将会带你一起动手,用这两个超酷的开源组件搭建一个能和AI聊天的QQ机器人。让我们一起开启这段旅程吧!

安装NapCat和Koishi

本教程将使用Docker容器的方法安装和管理各个组件,因此你需要预先安装Docker,Docker-Compose等相关组件,如果你的服务器在国内,你可能还需要使用代理或者镜像源,保证服务器可以正常从DockerHub拉取镜像。

安装NapCat

选择或新建一个空目录,这个目录将用于安装NapCat。

新建一个名为 docker-compose.yml 的文件,在其中写入以下代码,这是Docker容器的配置文件:

# docker-compose.yml
version: "3"
services:
    napcat:
        environment:
            - NAPCAT_UID=${NAPCAT_UID}
            - NAPCAT_GID=${NAPCAT_GID}
        ports:
            - 3000:3000
            - 3001:3001
            - 6099:6099
        container_name: napcat
        network_mode: bridge
        restart: always
        image: mlikiowa/napcat-docker:latest

在该目录下执行 sudo docker-compose up -d ,如果网络条件良好,过一会就能看到容器启动成功的提示。

选择另外一个空目录用于安装,新建一个 docker-compose.yml 文件,输入以下内容:

# docker-compose.yml
services:
  koishi:
    image: koishijs/koishi:latest
    container_name: koishi
    ports:
      - "15140:5140"
    volumes:
      - /opt/koishi:/koishi
    environment:
      - TZ=Asia/Shanghai
    restart: always
    network_mode: bridge
    extra_hosts:
      - host.docker.internal:host-gateway

同样在该目录下执行 sudo docker-compose up -d ,如果网络条件良好,过一会就能看到容器启动成功的提示。

配置NapCat

查看容器日志,应该能看到类似于以下的内容:

[info] [NapCat] [WebUi] WebUi Local Panel Url: http://127.0.0.1:6099/webui?token=xxxxxxxx

将其中的 127.0.0.1 修改为服务器的实际IP,然后访问该地址,你应该就能进入NapCat的控制台了。

警告

千万不要泄露后面的token字段,这是登录控制台的唯一凭证! 访问前记得开放对应端口

容器日志中应该还有类似于如下内容:

12-19 13:16:35 [warn] 请扫描下面的二维码,然后在手Q上授权登录:
12-19 13:16:36 [warn] 

这里是二维码

二维码解码URL: https://txz.qq.com/p?k=xxxxxxxxxxxxxxxxxxx&f=xxxxxxxxxxxx
如果控制台二维码无法扫码,可以复制解码url到二维码生成网站生成二维码再扫码,也可以打开下方的二维码路径图片进行扫码。
12-19 13:16:36 [warn] 二维码已保存到 /app/napcat/cache/qrcode.png

按照日志中的提示扫码进行登录。

登录成功后回到NapCat控制台,点击左侧的网络配置,再点击右上角的添加配置

1735197418 Napcatconfig

应该会有如下弹窗:

1735197472 Napcatadd

其他设置项按图中所示即可,Token项强烈建议自行设置一个后妥善保存。

配置Koishi

访问 <服务器IP>:5140 即可进入Koishi控制台,同意协议后就能使用Koishi这一强大的机器人框架了。

提示

记得开放对应端口

首先先更新所有依赖组件,点击左侧的依赖管理,然后通过右上角的刷新和更新全部按钮更新依赖。

1735197914 Koishiupdateall

注意

最好不要删除Koishi自带的软件包和依赖,很可能会影响Koishi的正常工作!

将Koishi连接到NapCat

从之前的介绍中就可以看出,NapCat采用了OneBot的兼容协议,因此对接时我们使用OneBot适配器。

在插件市场中搜索并安装 adapter-onebot ,安装后会自动跳转到插件配置页面,但此时应该找不到OneBot适配器的配置页面,因此我们回到插件市场,在已安装插件列表里找到 adapter-onebot ,点击修改,在弹窗中点击配置:

1735198399 Onebotaddin

在配置页面着重修改标记的部分:

1735198570 Onebotconf

这些字段按如下要求填写:

  • sefid(机器人账号):填写登陆在NapCat上的QQ号
  • token:输入配置NapCat中添加网络配置时填写的token(不是登录NapCat控制台用的那个token)
  • protocol(协议):选择ws协议(WebSocket)
  • endpoint(服务器地址):输入从面板等处取得的NapCat容器地址和3000端口号

重要

注意一定要填写NapCat的容器IP地址,不能填写127.0.0.1(这会指向Koishi容器自己),此处容易踩坑!

填写完成后依次点击右上角的保存配置和启用插件。如果一切顺利,你应该能在右下角的状态指示那里看到你QQ的昵称和头像等信息。

1735199077 Onebotok

接下来尝试给那个QQ号发送 statushelp 等内置命令,没问题的话Koishi已经能向你返回内容了。

配置ChatLuna和大模型

ChatLuna是一个多平台模型接入,可扩展,多种输出格式,提供大语言模型聊天服务的机器人插件。官网传送门)(Github仓库

在插件市场里搜索安装ChatLuna,然后进入ChatLuna的配置页面。

官网文档上有详细的解释,此处不一一解释,按照自己的需求修改配置然后启用插件。

以阿里的通义千问为例,在插件市场中安装 chatluna-qwen-adapter ,进入其配置页面,根据这篇教程你可以获取到通义千问的APIKey,将APIKey写入插件配置的相关选项,然后点击右上角的保存配置,接着启用插件。

然后回到ChatLuna的配置页面,这次应该就可以在 模板房间选项 - defaultModel 列表里看到刚配置的模型了,根据需要选取合适的模型,然后点击右上角的重载配置即可。

结语

好啦,朋友们,到这里我们的教程就告一段落了。跟着这些步骤,你的QQ机器人应该已经打扮得漂漂亮亮,还可以与大模型对接了。如果你已经成功把它们俩牵上线,那就太棒了!现在,你的机器人不仅能够聊天,还能展现出大模型的聪明才智。希望这篇文章能成为你技术探险中的小助手,带你一起飞。如果还有什么问题,或者想要分享你的机器人趣事,记得来找我们哦!继续享受编程的乐趣吧!

除非注明,否则均为天远日记原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.tqhyg.net/post350.html