Skip to main content

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

Project description

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 开源。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_nsfw_detector-1.4.0.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nonebot_plugin_nsfw_detector-1.4.0-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_nsfw_detector-1.4.0.tar.gz.

File metadata

File hashes

Hashes for nonebot_plugin_nsfw_detector-1.4.0.tar.gz
Algorithm Hash digest
SHA256 cc8db07cde4fa66ce98a7918a952e511a5088ad3d31f56b8921ab6c683079334
MD5 0ff99ed9c76ac5a8b6049ca84e6e3ba9
BLAKE2b-256 392c1ff8f60a4fc7951b59d09a6fe3eaba702b313cfb5e1e0ea59606e69bfdfd

See more details on using hashes here.

File details

Details for the file nonebot_plugin_nsfw_detector-1.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_nsfw_detector-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64f8bab26756b0a8de544a6c5c6ddabe6eb5e0912f8b7e87037b4fa7fec68e35
MD5 ac6f93eb3014936bd852ee7ae602ef11
BLAKE2b-256 4d12b11090d68457d555e68dc06128402b267e41ca8cd21a8b65a83a448a8355

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page