Koishi基本用法

Koishi是一个跨平台、可扩展、高性能的聊天机器人框架

跨平台:支持各种聊天平台
可扩展:koishi的功能都是以插件形式存在,且koishi支持热重载,修改插件后无需重启机器人,只会刷新插件
高性能:基于事件循环和异步

沙盒

沙盒是koishi为我们提供的模拟聊天环节,可以在不连接任何真实聊天平台的情况下,快速测试和调试我们的插件代码

指令系统

  1. 参数

尖括号< >:必选参数
在这里插入图片描述

方括号[ ]: 可选参数
在这里插入图片描述

  1. 选项
    选项可以控制指令的行为,通常以-或- -开头

选项:
在这里插入图片描述

  1. 触发前缀
    在群聊的情况下,如果仅仅只通过过一个词就触发指令,很容易误触,为了避免这种情况,koishi引入了前缀触发的概念

前缀触发:消息以配置的prefix值开头,后面紧跟指令
昵称触发:以配置的nickname开头,后面运行有逗号这些分隔符,再接指令
@提及触发

  1. 子指令
    有了子指令以后可以把相关的功能放到同一个文件夹(user)里面,这样看起来更清晰明了

层级式:空格分隔 user authorize
派生式:小数点.连接 user.locale en

Koishi进阶

可逆的插件系统

Koishi的一切都是从Cordis这个元框架开始,什么是元框架呢,它有两个特征,第一不关心业务,也就是不绑定任何具体的应用场景,像机器人、命令行工具这些,第二它只提供最底层的基础设施,包含上下文、服务容器、插件生命周期的管理。总而言之,Koishi的内核就是Cordis。


插件的可逆性
什么是可逆的系统呢,通俗一点讲,就是当这个插件被卸载或被停用时,能够将其在运行的时候产生的所有副作用,彻底干净地撤销,使系统状态恢复到插件加载之前的样子

副作用:一个函数、方法、代码块,在完成其主要任务之外,对外部产生的任何状态改变
不可逆的系统(大部分传统框架)
可逆的系统(Cordis):开发者无需手写清理代码,框架通过依赖注入和作用域机制,保证了可逆性。
这种设计有如下的有点:热重载/异步加载/可追踪


Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐