From 356640b2d26d24f917e5da5dcb059cf55729a554 Mon Sep 17 00:00:00 2001 From: student_2333 Date: Thu, 31 Oct 2024 19:49:44 +0800 Subject: [PATCH] up --- README.md | 56 ++++++++++--------- nonebot_plugin_nailongremove/config.py | 2 +- .../model/target_detection.py | 2 +- 3 files changed, 32 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 2ecf5e1..c458adb 100644 --- a/README.md +++ b/README.md @@ -129,30 +129,32 @@ plugins = [ 在 nonebot2 项目的 `.env` 文件中添加下表中的必填配置 -| 配置项 | 必填 | 默认值 | 说明 | -| :-------------------------: | :--: | :-----------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **响应配置** | | | | -| `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 的消息模板](https://nonebot.dev/docs/best-practice/alconna/uniseg#%E4%BD%BF%E7%94%A8%E6%B6%88%E6%81%AF%E6%A8%A1%E6%9D%BF),可用变量见下 | -| `NAILONG_FAILED_TIP` | 否 | `{:Reply($message_id)}呜,不要发奶龙了嘛 🥺 👉👈` | 撤回失败或禁用撤回时发送的提示,同上 | -| **模型通用配置** | | | | -| `NAILONG_MODEL_DIR` | 否 | `./data/nailongremove` | 模型的下载位置 | -| `NAILONG_MODEL` | 否 | `0` | 选择需要加载的模型,可用模型见下 | -| `NAILONG_AUTO_UPDATE_MODEL` | 否 | `True` | 是否自动更新模型 | -| `NAILONG_CONCURRENCY` | 否 | `1` | 当图片为动图时,针对该图片并发识别图片帧的最大并发数 | -| **模型 1 特定配置** | | | | -| `NAILONG_MODEL1_YOLOX_SIZE` | 否 | `[416,416]` | 针对模型 1,自定义模型输入可能会有尺寸更改 | -| `NAILONG_MODEL1_TYPE` | 否 | `tiny` | 模型 1 使用的模型类型,可用 `tiny` / `m` | -| **杂项配置** | | | | -| `NAILONG_GITHUB_TOKEN` | 否 | `None` | GitHub Access Token,遇到模型下载或更新问题时可尝试填写 | +| 配置项 | 必填 | 默认值 | 说明 | +| :---------------------------: | :--: | :-----------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **响应配置** | | | | +| `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 的消息模板](https://nonebot.dev/docs/best-practice/alconna/uniseg#%E4%BD%BF%E7%94%A8%E6%B6%88%E6%81%AF%E6%A8%A1%E6%9D%BF),可用变量见下 | +| `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,遇到模型下载或更新问题时可尝试填写 | ### 可用模型 @@ -184,10 +186,12 @@ plugins = [ ## 📝 更新日志 -### 2.1.5 +### 2.2.0 - 重命名配置项 `NAILONG_YOLOX_SIZE` -> `NAILONG_MODEL1_YOLOX_SIZE` -- 模型 1 现可以自动获取最新版本,也可以通过配置 `NAILONG_MODEL1_TYPE` 选择要使用的类型 +- 模型 1 现可以自动获取最新版本,也可以通过配置选择要使用的模型类型 +- 模型 1 现可通过配置项控制识别置信度阈值 +- 加载 onnx 模型时会默认尝试使用 GPU,如果失败则会显示一串警告,如果不想看见警告参考上面关闭对应配置 ### 2.1.4 diff --git a/nonebot_plugin_nailongremove/config.py b/nonebot_plugin_nailongremove/config.py index c02eb71..553ebe7 100644 --- a/nonebot_plugin_nailongremove/config.py +++ b/nonebot_plugin_nailongremove/config.py @@ -32,11 +32,11 @@ class Config(BaseModel): nailong_model: ModelType = ModelType.CLASSIFICATION nailong_auto_update_model: bool = True nailong_concurrency: int = 1 + nailong_onnx_try_to_use_gpu: bool = True nailong_model1_yolox_size: Tuple[int, int] = (416, 416) nailong_model1_type: str = "tiny" nailong_model1_score: float = 0.5 - nailong_model1_try_to_use_gpu: bool = True nailong_github_token: Optional[str] = None diff --git a/nonebot_plugin_nailongremove/model/target_detection.py b/nonebot_plugin_nailongremove/model/target_detection.py index 75f32a1..93aade6 100644 --- a/nonebot_plugin_nailongremove/model/target_detection.py +++ b/nonebot_plugin_nailongremove/model/target_detection.py @@ -43,7 +43,7 @@ session = onnxruntime.InferenceSession( "CUDAExecutionProvider", "CPUExecutionProvider", ] - if config.nailong_model1_try_to_use_gpu + if config.nailong_onnx_try_to_use_gpu else ["CPUExecutionProvider"] ), )