✨ 一個基於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
從原倉庫下載模型
重構插件,適配多平台
更新了兩個新模型,優化了模型精度,用戶可自行選擇其中一個進行推理
增加了禁言、群組黑白名單、可選關閉管理員偵測等功能
增加了自動更新模型可選