✨ 一个基于 AI 模型的简单插件~ ✨
本插件仅供娱乐和学习交流。
NaiLongRemove 是一款由简单的 AI 模型建立的奶龙识别插件,可以识别群中的奶龙表情包并撤回该表情。
目前插件支持两种模型,可通过配置文件更换,详见文档下方配置一节。
用户可以根据需要自行选择心仪的模型,两个模型性能都已经经过优化,但仍可能会有不同程度的误差,也欢迎各位继续反馈给我们~
如果你从来没接触过 NoneBot,请查看 这个文档
以下提到的方法 任选其一 即可
nb plugin install nonebot-plugin-nailongremove
pip install nonebot-plugin-nailongremove
pdm add nonebot-plugin-nailongremove
poetry add nonebot-plugin-nailongremove
conda install nonebot-plugin-nailongremove
打开 nonebot2 项目根目录下的 pyproject.toml
文件, 在 [tool.nonebot]
部分的 plugins
项里追加写入
[tool.nonebot]plugins = [ # ... "nonebot_plugin_nailongremove"]
在 nonebot2 项目的 .env
文件中添加下表中的必填配置
配置项 | 必填 | 默认值 | 说明 |
---|---|---|---|
全局配置 | |||
PROXY | 否 | None | 下载模型等文件时使用的代理地址 |
响应配置 | |||
NAILONG_BYPASS_SUPERUSER | 否 | True | 是否不检查超级用户发送的图片 |
NAILONG_BYPASS_ADMIN | 否 | True | 是否不检查群组管理员发送的图片 |
NAILONG_NEED_ADMIN | 否 | False | 当自身不为群组管理员时是否不检查群内所有图片 |
NAILONG_LIST_SCENES | 否 | [] | 聊天场景 ID 黑白名单列表 在单级聊天下为该聊天 ID,如 QQ 群号; 在多级聊天下为以 _ 分割的各级聊天 ID,如频道下的子频道或频道下私聊 |
NAILONG_BLACKLIST | 否 | True | 是否使用黑名单模式 |
NAILONG_PRIORITY | 否 | 100 | Matcher 优先级 |
行为配置 | |||
NAILONG_RECALL | 否 | True | 是否撤回消息 |
NAILONG_MUTE_SECONDS | 否 | 0 | 设置禁言时间,默认为 0 即不禁言 单位:秒 |
NAILONG_TIP | 否 | 本群禁止发奶龙! | 发送的提示,使用 Alconna 的消息模板,可用变量见下 |
NAILONG_FAILED_TIP | 否 | {:Reply($message_id)}呜,不要发奶龙了嘛 ? ?? | 撤回失败或禁用撤回时发送的提示,同上 |
模型通用配置 | |||
NAILONG_MODEL_DIR | 否 | ./data/nailongremove | 模型的下载位置 |
NAILONG_MODEL | 否 | 0 | 选择需要加载的模型,可用模型见下 |
NAILONG_AUTO_UPDATE_MODEL | 否 | True | 是否自动更新模型 |
NAILONG_CONCURRENCY | 否 | 1 | 当图片为动图时,针对该图片并发识别图片帧的最大并发数 |
NAILONG_ONNX_TRY_TO_USE_GPU | 否 | True | 加载 onnx 模型时是否尝试使用 GPU,如果失败则会显示一串警告但是对插件并无影响,如果不想看见警告关闭此配置项即可 |
模型 1 特定配置 | |||
NAILONG_MODEL1_YOLOX_SIZE | 否 | [416,416] | 针对模型 1,自定义模型输入可能会有尺寸更改 |
NAILONG_MODEL1_TYPE | 否 | tiny | 模型 1 使用的模型类型,可用 tiny / m |
NAILONG_MODEL1_SCORE | 否 | 0.5 | 模型 1 置信度阈值,范围 0 ~ 1 |
杂项配置 | |||
NAILONG_GITHUB_TOKEN | 否 | None | GitHub Access Token,遇到模型下载或更新问题时可尝试填写 |
0
:基于 Renet50 图像分类模型训练推理,感谢 @spawner1145 提供的模型,原链接:spawner1145/NailongRecognize
1
:基于 YOLOX 目标检测模型训练推理,感谢 @NKXingXh 提供的模型,原链接:nkxingxh/NailongDetection
变量名 | 类型 | 说明 |
---|---|---|
$event | Event | 当前事件 |
$target | Target | 事件目标 |
$message_id | str | 消息 ID |
$msg | UniMessage | 当前消息 |
$ss | Session | 当前会话 |
$checked_image | bytes | 框选出对应目标后的图片,仅在模型配置为 1 时存在 |
只要有人发奶龙表情包被识别出来,就会被撤回并提醒。
Nonebot2 官方交流群:768887710(基础的安装部署问题可在这里询问)
人工智能学习交流群:949992679(学习交流 AI 相关技术可以来这里捏)
机器人插件学习交流群:200980266(机器人 BUG 模型精度等问题反馈来这里哟)
欢迎大家进群一起学习交流~
优化模型自动更新(可能是反向优化)
重命名配置项 NAILONG_YOLOX_SIZE
-> NAILONG_MODEL1_YOLOX_SIZE
模型 1 现可以自动获取最新版本,也可以通过配置选择要使用的模型类型
模型 1 现可通过配置项控制识别置信度阈值
加载 onnx 模型时会默认尝试使用 GPU,如果失败则会显示一串警告,如果不想看见警告参考上面关闭对应配置
修复 NAILONG_NEED_ADMIN
配置不生效的 Bug
修复忽略群管与超级用户无效的 Bug
重构部分代码,修复潜在 Bug
新增变量 $checked_image
从原仓库下载模型
重构插件,适配多平台
更新了两个新模型,优化了模型精度,用户可自行选择其中之一进行推理
增加了禁言、群黑白名单、可选关闭管理员检测等功能
增加了自动更新模型可选