MaxKB+Koishi:构建全平台的问答聊天机器人

Koishi 是一个支持钉钉、discord、kook、line、qq、satori、微信、whatsapp等众多平台的跨平台机器人框架。通过将 MaxKB 接入 Koishi,我们可以轻松将 MaxKB 的问答能力接入各大聊天平台和软件。

安装并配置 Koishi

这里以 Ubuntu 上的 1Panel 安装 Koishi 作为演示。读者也可以参考 Koishi 官方文档查看其他平台的安装方法。

打开 1Panel,进入应用商店,搜索并安装 Koishi。

之后,进入 Koishi 面板(默认是 5140 端口),点击左侧的插件市场,搜索并安装 maxkb 插件。

然后点击左侧的插件配置,找到 maxkb 插件,在其中输入 maxkb 应用的 baseUrl 和 apikey。

为了方便等一下在沙盒中进行测试,我们可以在配置中启用关键词触发,这里我们填写“请问”,代表只要消息中带有“请问”二字就会触发。

写完记得要点击右上角的启用插件和重载配置。

在沙盒中发送带有“请问”的消息,可以看到机器人返回了对应的内容。

部署到多平台

Koishi 自身支持众多聊天平台和软件,我们只需要安装配置对应的 adapter 即可实现部署到相应的平台。

以 OneBot 为例,我们安装并配置好 adapter-onebot 插件

然后在相应的触发对话,就可以收到相应的回复啦!

1 个赞

这个非常好,感谢了。

知识库里如果带图片和表格的话,无法正常显示,有什么解决办法吗

无法正常显示是指没有显示还是显示有问题?

因为大部分聊天平台只支持普通消息,目前插件发送的是 MaxKB API 直接返回的内容。请问可以提供一下返回表格和图片的情况是怎么样的吗?我后面更新可以特殊处理一下图片的情况


图片直接显示地址,表格没有样式
图片里是koishi沙盒的测试效果


图片直接显示地址,没有表格的样式
图片里是koishi沙盒的测试效果

这是知识库 Markdown 原文的样子,因为主要对接的聊天平台,不一定支持渲染 Markdown,所以不太好处理。我之后可以更新加个选择开关,如果启用的话就返回渲染后的全文图片。也可以如果检测到图片和表格就断开文本,分开渲染,不过这种会连续发送多条信息刷屏。目前临时解决方法推荐可以通过利用提示词尽量让机器人不要返回表格,而是使用分点的方式输出内容,或者尽量简短回复

0.0.4 版本已更新,现在可以解析 Markdown 并返回正确的内容了

:+1:

我现在配置了adapter-qq,但是沙盒发消息没有反应了,把qq插件停了也不行

PS:(现在找到问题了,插件没更新)

这个是要让ai来进行调整吗,我这边接了钉钉机器人,返回的还是原文本的,没有md格式

是的,机器人返回的内容里如果有 markdown 才会被转换。表格没法被转换。有些机器人会用代码块包起来,此时会被解析成代码而不是其他元素


还是没有转成md的效果
我这边是直接查询知识库,不走ai模型

沙盒里可以吗,可能是钉钉不支持标题

检查一下插件是否更新到了 0.0.4 版本,然后在数据库-maxkb 里把对应的记录删除试试看,这样会删除历史记录并重启一个新对话

沙盒中也不行

请问下这个不能用于内网吗?测试沙盒报错了

@user-geolrayozyn 可以截图一下报错信息吗