mirror of
https://github.com/LiteyukiStudio/nonebot-plugin-marshoai.git
synced 2025-01-26 18:12:47 +08:00
✨ 更新文档,添加插件热重载和兼容性说明,优化安装配置项描述
This commit is contained in:
parent
99c113833e
commit
bdd80d0c2e
@ -22,7 +22,6 @@ order: 2
|
||||
- 元数据:包含插件的信息,如名称、版本、作者等
|
||||
- function call:供AI调用的函数
|
||||
|
||||
|
||||
:::tip
|
||||
如果你编写过NoneBot插件,那么你会发现插件的编写方式和NoneBot插件的编写方式几乎一样。
|
||||
:::
|
||||
@ -76,14 +75,19 @@ def fortune_telling(name: str, age: int) -> str:
|
||||
```python
|
||||
@on_function_call(description="在设备上执行命令").params(
|
||||
command=String(description="命令内容")
|
||||
).permission(SUPERUSER).rule(RegexRule("查询(.*)的天气"))
|
||||
).permission(SUPERUSER)
|
||||
def execute_command(command: str) -> str:
|
||||
return eval(command)
|
||||
```
|
||||
|
||||
## 依赖注入
|
||||
|
||||
function call支持NoneBot2原生的会话上下文依赖注入,例如Bot、Event等
|
||||
function call支持NoneBot2原生的会话上下文依赖注入
|
||||
|
||||
- Event 及其子类实例
|
||||
- Bot 及其子类实例
|
||||
- Matcher 及其子类实例
|
||||
- T_State
|
||||
|
||||
```python
|
||||
@on_function_call(description="获取个人信息")
|
||||
@ -95,10 +99,28 @@ async def get_bot_info(b: Bot) -> str:
|
||||
return f"机器人ID: {b.self_id}"
|
||||
```
|
||||
|
||||
## 其他
|
||||
## 兼容性
|
||||
|
||||
- function call支持同步和异步函数
|
||||
- 本文是一个引导,要查看具体功能请查阅[插件 API 文档](./api/plugin/index)
|
||||
插件可以编写NoneBot或者轻雪插件的内容,可作为NoneBot插件或者轻雪插件单独发布
|
||||
|
||||
不过,所编写功能仅会在对应的实例上加载对应的功能,如果通过marshoai加载混合插件,那么插件中NoneBot的功能将会依附于marshoai插件,
|
||||
若通过NoneBot加载包含marshoai功能的NoneBot插件,那么marshoai功能将会依附于NoneBot插件。
|
||||
|
||||
**我们建议**:若插件中包含了NoneBot功能,仍然使用marshoai进行加载,这样更符合逻辑。若你想发布为NoneBot插件,请注意`require("nonebot_plugin_marshoai")`,这是老生常谈了。
|
||||
|
||||
:::tip
|
||||
本质上都是动态导入和注册声明加载,运行时把这些东西塞到一起
|
||||
:::
|
||||
|
||||
## 插件热重载
|
||||
|
||||
插件热重载是一个实验性功能,可以在不重启机器人的情况下更新插件
|
||||
|
||||
:::warning
|
||||
框架无法完全消除之前插件带来的副作用,当效果不符合预期时请重启机器人实例
|
||||
:::
|
||||
|
||||
将`MARSHOAI_DEVMODE`环境变量设置为`true`,然后在配置的插件目录`MARSHOAI_PLUGIN_DIRS`下开发插件,当插件发生变化时,机器人会自动加载新的插件。
|
||||
|
||||
## AIGC 自举
|
||||
|
||||
@ -106,3 +128,8 @@ async def get_bot_info(b: Bot) -> str:
|
||||
该功能为实验性功能,请注意甄别AI的行为,不要让AI执行危险的操作。
|
||||
:::
|
||||
function call为AI赋能,实现了文件io操作,AI可以调用function call来读取文档然后给自己编写代码,实现自举。
|
||||
|
||||
## 其他
|
||||
|
||||
- function call支持同步和异步函数
|
||||
- 本文是一个引导,要查看具体功能请查阅[插件 API 文档](./api/plugin/index)
|
||||
|
@ -61,9 +61,11 @@ title: 安装
|
||||
当 nonebot 连接到支持的 OneBot v11 实现端时,可以接收头像双击戳一戳消息并进行响应。详见`MARSHOAI_POKE_SUFFIX`配置项。
|
||||
|
||||
## 🛠️ ~~小棉工具~~(已弃用)
|
||||
|
||||
小棉工具(MarshoTools)是`v0.5.0`版本的新增功能,支持加载外部函数库来为 Marsho 提供 Function Call 功能。
|
||||
|
||||
## 🧩 小棉插件
|
||||
|
||||
小棉插件是`v1.0.0`的新增功能,替代旧的小棉工具功能。[使用文档](https://marsho.liteyuki.icu/dev/extension)
|
||||
|
||||
## 👍 夸赞名单
|
||||
@ -133,9 +135,16 @@ title: 安装
|
||||
| MARSHOAI_ENABLE_PRAISES | `bool` | `true` | 是否启用夸赞名单功能 |
|
||||
| MARSHOAI_ENABLE_TOOLS | `bool` | `false` | 是否启用小棉工具 |
|
||||
| MARSHOAI_ENABLE_PLUGINS | `bool` | `true` | 是否启用小棉插件 |
|
||||
| MARSHOAI_PLUGINS | `list[str]` | `[]` | 要从`sys.path`加载的插件的名称,例如从pypi安装的包 |
|
||||
| MARSHOAI_PLUGIN_DIRS | `list[str]` | `[]` | 插件目录路径列表 |
|
||||
| MARSHOAI_LOAD_BUILTIN_TOOLS | `bool` | `true` | 是否加载内置工具包 |
|
||||
| MARSHOAI_TOOLSET_DIR | `list` | `[]` | 外部工具集路径列表 |
|
||||
| MARSHOAI_DISABLED_TOOLKITS | `list` | `[]` | 禁用的工具包包名列表 |
|
||||
| MARSHOAI_ENABLE_RICHTEXT_PARSE | `bool` | `true` | 是否启用自动解析消息(若包含图片链接则发送图片、若包含LaTeX公式则发送公式图) |
|
||||
| MARSHOAI_SINGLE_LATEX_PARSE | `bool` | `false` | 单行公式是否渲染(当消息富文本解析启用时可用)(如果单行也渲……只能说不好看) |
|
||||
|
||||
#### 开发及调试选项
|
||||
|
||||
| 配置项 | 类型 | 默认值 | 说明 |
|
||||
| ------------------------ | ------ | ------- | ---------------- |
|
||||
| MARSHOAI_DEVMODE | `bool` | `false` | 是否启用开发者模式 |
|
||||
|
Loading…
x
Reference in New Issue
Block a user