基于 nsfwpy.cn API 的 NoneBot2 NSFW 图片检测插件,自动检测群聊中的不当图片并进行相应处理
Project description
NoneBot Plugin NSFW Detector
基于 nsfwpy.cn API 的 NoneBot2 NSFW 图片检测插件,可自动检测群聊中的不当图片并进行相应处理。
✨ 功能特性
- 🔍 自动检测:实时检测群聊中的图片内容。
- ⚠️ 智能警告:对违规用户进行警告和记录。
- 🔇 自动禁言:违规后自动禁言指定时间。
- 🗑️ 消息撤回:自动撤回违规图片及插件消息。
- 👢 踢出群聊:达到警告上限后可自动踢出。
- ⚙️ 灵活配置:支持每个群组独立配置,并提供全局默认配置。
- 🛡️ 智能白名单:自动跳过对管理员、群主和超级用户的检测。
- 🧪 测试命令:提供命令以测试插件功能是否正常。
🔧 安装与配置
1. 安装插件
使用 nb-cli 或 pip 安装本插件:
使用 nb-cli
nb plugin install nonebot-plugin-nsfw-detector
使用 pip
pip install nonebot-plugin-nsfw-detector
2. 环境配置
插件配置项遵循 scoped config 规范,请在您的 .env 文件中进行如下配置。请注意,配置项使用双下划线 __ 作为分隔符。
# .env.prod
# 设置超级用户
SUPERUSERS=["你的QQ号"]
# NSFW检测器插件配置(可选)
NSFW_DETECTOR__API_URL="https://nsfwpy.cn/analyze"
NSFW_DETECTOR__MODEL="mobilenet_v2"
NSFW_DETECTOR__REQUEST_TIMEOUT=30
# 默认群组配置(可选)
NSFW_DETECTOR__DEFAULT_ENABLED=true
NSFW_DETECTOR__DEFAULT_THRESHOLD=0.7
NSFW_DETECTOR__DEFAULT_BAN_TIME=60
NSFW_DETECTOR__DEFAULT_WARNING_LIMIT=3
NSFW_DETECTOR__DEFAULT_KICK_ENABLED=true
# 消息撤回配置(可选)
NSFW_DETECTOR__AUTO_RECALL_ENABLED=true
NSFW_DETECTOR__RECALL_DELAY=5
# 调试与数据存储(可选)
NSFW_DETECTOR__DEBUG_MODE=false
NSFW_DETECTOR__DATA_DIR="data/nsfw_detector"
配置项说明
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
NSFW_DETECTOR__API_URL |
str |
"https://nsfwpy.cn/analyze" |
NSFW检测API的URL |
NSFW_DETECTOR__MODEL |
str |
"mobilenet_v2" |
使用的检测模型 |
NSFW_DETECTOR__REQUEST_TIMEOUT |
int |
30 |
API请求超时时间(秒) |
NSFW_DETECTOR__DEFAULT_ENABLED |
bool |
True |
默认是否在群聊中启用检测 |
NSFW_DETECTOR__DEFAULT_THRESHOLD |
float |
0.7 |
默认NSFW阈值,越低越严格 |
NSFW_DETECTOR__DEFAULT_BAN_TIME |
int |
60 |
默认禁言时间(分钟) |
NSFW_DETECTOR__DEFAULT_WARNING_LIMIT |
int |
3 |
默认警告次数上限 |
NSFW_DETECTOR__DEFAULT_KICK_ENABLED |
bool |
True |
达到警告上限后是否踢出 |
NSFW_DETECTOR__AUTO_RECALL_ENABLED |
bool |
True |
是否自动撤回插件发送的消息 |
NSFW_DETECTOR__RECALL_DELAY |
int |
5 |
撤回延迟时间(秒) |
NSFW_DETECTOR__DEBUG_MODE |
bool |
False |
是否启用调试模式,输出详细日志 |
NSFW_DETECTOR__DATA_DIR |
str |
"data/nsfw_detector" |
插件数据存储目录 |
📖 使用说明
用户命令
注意:用户命令所有人都可以使用,不会触发处罚操作。
/nsfw_check:回复包含图片的消息或在命令后附带图片,以检测图片的NSFW内容。
管理员命令
注意:所有管理命令仅限超级用户使用。
/nsfw_config:查看插件的默认配置。/nsfw_set <参数> <值>:在群聊中设置当前群的配置。/nsfw_set <群号> <参数> <值>:设置指定群的配置。/nsfw_status:查看当前群的状态和配置。/nsfw_status <群号>:查看指定群的状态和配置。/nsfw_reset:重置当前群所有用户的警告记录。/nsfw_reset @用户或/nsfw_reset 用户QQ:重置当前群指定用户的警告。/nsfw_reset <群号> [用户QQ]:重置指定群的警告记录。/nsfw_test_recall:在当前群聊中测试消息自动撤回功能。
可设置参数
| 参数 | 说明 | 示例值 |
|---|---|---|
threshold |
NSFW检测阈值 (0.0-1.0) | 0.5 |
ban_time |
禁言时间(分钟) | 30 |
warning_limit |
警告次数上限 | 2 |
kick_enabled |
是否启用踢出 (true/false) |
false |
enabled |
是否启用NSFW检测 (true/false) |
false |
auto_recall |
是否自动撤回插件消息 (true/false) |
true |
recall_delay |
消息撤回延迟(秒) | 10 |
💡 注意事项
- API 依赖:插件功能依赖于第三方API,请注意其服务状态和调用频率。
- 机器人权限:机器人需要群管理员权限才能执行禁言和踢出操作。
- 网络问题:请确保您的服务器与检测API之间的网络连接通畅。
- 隐私安全:图片仅用于实时检测,插件不会存储任何用户图片。
📄 更新日志
v1.4.0
- ⚙️ 重构插件配置以使用
scoped config,避免与其他插件的配置项冲突。 - 🐛 修复了调用 NSFW 检测 API 时因请求参数错误导致的
422错误。 - 📝 全面更新
README.md,提供了更清晰的安装、配置和使用说明。
v1.3.0
- 🗑️ 新增消息自动撤回功能
- ⚙️ 新增
auto_recall和recall_delay配置参数 - 🧪 新增
/nsfw_test_recall测试命令 - 📝 优化日志记录和错误处理
v1.2.0
- 🆕 新增
/nsfw_check用户命令 - 📊 支持手动检测图片NSFW内容
- 🔍 显示详细检测结果和风险评级
- ⏱️ 显示检测耗时信息
- ✅ 纯检测功能,不触发处罚操作
- 📱 支持回复消息和附带图片两种使用方式
v1.1.0
- 新增智能白名单功能
- 自动跳过管理员、群主和超级用户检测
- 优化权限检查逻辑
- 增强日志记录功能
v1.0.0
- 基础NSFW检测功能
- 群组配置管理
- 警告记录系统
- 管理员命令支持
- 数据持久化存储
📄 开源许可
本插件使用 MIT License 开源。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nonebot_plugin_nsfw_detector-1.4.0.tar.gz.
File metadata
- Download URL: nonebot_plugin_nsfw_detector-1.4.0.tar.gz
- Upload date:
- Size: 16.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc8db07cde4fa66ce98a7918a952e511a5088ad3d31f56b8921ab6c683079334
|
|
| MD5 |
0ff99ed9c76ac5a8b6049ca84e6e3ba9
|
|
| BLAKE2b-256 |
392c1ff8f60a4fc7951b59d09a6fe3eaba702b313cfb5e1e0ea59606e69bfdfd
|
File details
Details for the file nonebot_plugin_nsfw_detector-1.4.0-py3-none-any.whl.
File metadata
- Download URL: nonebot_plugin_nsfw_detector-1.4.0-py3-none-any.whl
- Upload date:
- Size: 15.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64f8bab26756b0a8de544a6c5c6ddabe6eb5e0912f8b7e87037b4fa7fec68e35
|
|
| MD5 |
ac6f93eb3014936bd852ee7ae602ef11
|
|
| BLAKE2b-256 |
4d12b11090d68457d555e68dc06128402b267e41ca8cd21a8b65a83a448a8355
|