Skip to content

基于 nsfwpy.cn API 的 NoneBot2 NSFW 图片检测插件,自动检测群聊中的不当图片并进行相应处理。

License

Notifications You must be signed in to change notification settings

Msg-Lbo/nonebot-plugin-nsfw-detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NoneBot Plugin NSFW Detector

license pypi pypi download

基于 nsfwpy.cn API 的 NoneBot2 NSFW 图片检测插件,可自动检测群聊中的不当图片并进行相应处理。

✨ 功能特性

  • 🔍 自动检测:实时检测群聊中的图片内容。
  • ⚠️ 智能警告:对违规用户进行警告和记录。
  • 🔇 自动禁言:违规后自动禁言指定时间。
  • 🗑️ 消息撤回:自动撤回违规图片及插件消息。
  • 👢 踢出群聊:达到警告上限后可自动踢出。
  • ⚙️ 灵活配置:支持每个群组独立配置,并提供全局默认配置。
  • 🛡️ 智能白名单:自动跳过对管理员、群主和超级用户的检测。
  • 🧪 测试命令:提供命令以测试插件功能是否正常。

🔧 安装与配置

1. 安装插件

使用 nb-clipip 安装本插件:

使用 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

💡 注意事项

  1. API 依赖:插件功能依赖于第三方API,请注意其服务状态和调用频率。
  2. 机器人权限:机器人需要群管理员权限才能执行禁言和踢出操作。
  3. 网络问题:请确保您的服务器与检测API之间的网络连接通畅。
  4. 隐私安全:图片仅用于实时检测,插件不会存储任何用户图片。

📄 更新日志

v1.4.0

  • ⚙️ 重构插件配置以使用 scoped config,避免与其他插件的配置项冲突。
  • 🐛 修复了调用 NSFW 检测 API 时因请求参数错误导致的 422 错误。
  • 📝 全面更新 README.md,提供了更清晰的安装、配置和使用说明。

v1.3.0

  • 🗑️ 新增消息自动撤回功能
  • ⚙️ 新增 auto_recallrecall_delay 配置参数
  • 🧪 新增 /nsfw_test_recall 测试命令
  • 📝 优化日志记录和错误处理

v1.2.0

  • 🆕 新增 /nsfw_check 用户命令
  • 📊 支持手动检测图片NSFW内容
  • 🔍 显示详细检测结果和风险评级
  • ⏱️ 显示检测耗时信息
  • ✅ 纯检测功能,不触发处罚操作
  • 📱 支持回复消息和附带图片两种使用方式

v1.1.0

  • 新增智能白名单功能
  • 自动跳过管理员、群主和超级用户检测
  • 优化权限检查逻辑
  • 增强日志记录功能

v1.0.0

  • 基础NSFW检测功能
  • 群组配置管理
  • 警告记录系统
  • 管理员命令支持
  • 数据持久化存储

📄 开源许可

本插件使用 MIT License 开源。

About

基于 nsfwpy.cn API 的 NoneBot2 NSFW 图片检测插件,自动检测群聊中的不当图片并进行相应处理。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages