更新文档,添加插件热重载和兼容性说明,优化安装配置项描述

This commit is contained in:
远野千束(神羽) 2024-12-17 21:09:20 +08:00
parent 99c113833e
commit bdd80d0c2e
2 changed files with 45 additions and 9 deletions

View File

@ -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)

View File

@ -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` | 是否启用开发者模式 |