真寻Bot - 加群申请处理插件

November 20, 2025 · View on GitHub

一个功能强大的真寻Bot加群申请自动处理插件,支持QQ等级过滤、黑白名单验证、AI智能审核和申请统计查询。

功能特性

核心功能

  • 自动处理加群申请: 根据配置的规则自动同意或拒绝加群申请
  • 📋 群白名单管理: 仅处理白名单内的群组申请
  • 🎯 QQ等级过滤: 支持全局和群专属的QQ等级要求
  • ✍️ 加群理由验证: 支持正则表达式白名单规则,灵活验证加群理由
  • 🚫 黑名单规则: 自动拒绝匹配黑名单规则的申请,并给出自定义拒绝理由
  • 🔔 申请通知机制: 私聊通知指定管理员,支持直接回复处理申请
  • 🤖 AI智能审核: 超时未处理的申请可由AI自动审核拒绝(仅拒绝权限)
  • 📊 统计查询功能: 详细的申请统计、日志记录和用户查询

处理流程

  1. 白名单检查: 仅处理在白名单中的群组
  2. QQ等级检查: 验证申请人的QQ等级是否满足要求
  3. 黑名单检查: 优先级最高,匹配即拒绝
  4. 白名单验证: 加群理由是否匹配白名单正则规则
  5. 自动同意/通知: 通过所有检查后自动同意或通知管理员
  6. AI自动审核: 超时未处理的申请由AI分析并拒绝明显不合格的申请

安装

环境要求

  • Python 3.10+
  • 真寻Bot v0.0.1+
  • NoneBot2
  • OneBot V11 适配器

安装步骤

  1. 将插件文件夹放入真寻Bot的插件目录:
cd zhenxun_bot/plugins
git clone <repository-url> group_request_handler
  1. 安装依赖(如有额外依赖):
poetry install
# 或
pip install -r requirements.txt
  1. 重启真寻Bot即可自动加载插件

配置说明

全局配置参数

在真寻Bot的Web UI或配置文件中可以设置以下全局参数:

配置项类型默认值说明
ENABLEDboolTrue是否启用加群申请处理功能
MIN_QQ_LEVELint16全局最低QQ等级要求
REJECT_REASONstr"抱歉,您的QQ等级过低..."QQ等级不足时的拒绝理由
JOIN_REASON_PATTERNstrr".*\d{6,}.*"全局加群理由正则表达式(默认要求6位以上数字)
AUTO_APPROVEboolTrue通过所有检查后是否自动同意(false则提醒管理员)
AI_AUTO_REVIEW_ENABLEDboolTrue是否启用AI自动审核功能
AI_REVIEW_TIMEOUTint180AI审核超时时间(秒),默认180秒(3分钟)
AI_REVIEW_MODELstrNoneAI审核使用的模型(格式: Provider/Model),留空使用全局默认
AI_MIN_CONFIDENCEfloat0.8AI审核最低置信度(0.0-1.0),低于此值不自动处理

群专属配置

每个群可以设置专属配置,优先级高于全局配置:

  • 群专属最低QQ等级
  • 群专属加群理由白名单规则(支持多条)
  • 群专属黑名单规则(支持多条,带自定义拒绝理由)
  • 群专属提醒用户列表

使用指南

群内管理命令(管理员权限)

白名单管理

加群白名单              # 查看当前群是否在白名单中
添加加群白名单          # 将当前群添加到白名单
移除加群白名单          # 将当前群从白名单移除

提醒用户管理

加群提醒列表            # 查看当前群的提醒用户列表
添加加群提醒 123456789  # 添加提醒用户
移除加群提醒 123456789  # 移除提醒用户

白名单规则管理

查看加群理由规则                    # 查看当前群的白名单规则列表
添加加群理由规则 ^邀请码:[A-Z0-9]{6}$  # 添加白名单规则(正则表达式)
删除加群理由规则 1                   # 删除指定索引的规则
清空加群理由规则                     # 清空当前群的所有白名单规则

黑名单规则管理

查看加群黑名单                      # 查看当前群的黑名单规则列表
添加加群黑名单 .*垃圾.* 加群理由包含不当内容  # 添加黑名单规则
删除加群黑名单 1                     # 删除指定索引的规则
清空加群黑名单                       # 清空当前群的所有黑名单规则

统计查询

加群统计                # 查看本群统计和最近10条记录
加群统计 20             # 查看本群统计和最近20条记录
加群统计 0              # 只显示统计,不显示记录
AI审核统计              # 查看本群AI审核统计
加群处理状态            # 查看当前群的配置状态

私聊管理命令(超级用户)

帮助与查询

加群管理帮助                # 查看私聊管理命令帮助
加群白名单列表              # 查看所有群的白名单状态
查看加群状态 123456789      # 查看指定群的配置
查看加群统计                # 查看所有群的统计汇总
查看加群统计 123456789      # 查看指定群的统计
AI审核统计                  # 查看所有群AI审核统计
AI审核统计 123456789        # 查看指定群AI审核统计
查看加群日志 123456789 20   # 查看指定群的详细日志(默认10条)
查询用户申请 123456 789012345  # 查询用户在指定群的通过记录

白名单管理

添加加群白名单 123456789    # 添加群到白名单
移除加群白名单 123456789    # 移除群白名单

提醒用户管理

设置加群提醒 123456789 111111,222222  # 设置群的提醒用户(逗号分隔)

等级管理

设置最低等级 123456789 20   # 设置群的最低QQ等级要求
移除最低等级 123456789      # 移除群的专属等级要求

白名单规则管理

添加加群规则 123456789 ^邀请码:[A-Z0-9]{6}$  # 添加群的白名单规则
删除加群规则 123456789 1                    # 删除群的白名单规则
清空加群规则 123456789                      # 清空群的白名单规则

黑名单规则管理

添加加群黑名单 123456789 .*广告.* 禁止广告  # 添加群的黑名单规则
删除加群黑名单 123456789 1                  # 删除群的黑名单规则
清空加群黑名单 123456789                    # 清空群的黑名单规则

申请通知机制

当有加群申请需要审核时,系统会私聊通知所有提醒用户。管理员可以直接回复Bot的通知消息来处理申请:

回复 "同意" - 同意该申请
回复 "拒绝" - 拒绝该申请(使用默认理由)
回复 "拒绝 理由过于简单" - 拒绝该申请并指定理由

AI自动审核机制

AI审核特点:

  • 🤖 仅拒绝权限: AI只能拒绝明显不合格的申请,无批准权限
  • ⏱️ 超时触发: 申请通知后,指定时间内无人处理才触发AI审核
  • 🎯 精准拒绝: AI会给出具体的拒绝理由(如"未提供邀请码"、"答案无意义")
  • 📊 置信度控制: 只有置信度≥设定阈值时才执行拒绝
  • 🔔 事后通知: AI拒绝后会通知管理员处理结果

AI审核流程:

  1. 申请未通过自动规则,通知管理员
  2. 管理员在设定时间内未处理
  3. AI分析申请内容,识别明显问题
  4. 置信度足够高时自动拒绝
  5. 通知管理员AI的处理结果

AI可识别的问题:

  • 未回答必填问题(如未提供邀请码)
  • 答非所问(邀请码填"不知道")
  • 过于敷衍("看看"、"玩玩")
  • 疑似机器人(单一字符、重复内容)
  • 违规内容(广告、不当言论)

数据存储

插件会在 data/group_request_handler/ 目录下存储以下数据文件:

  • whitelist.json - 群白名单
  • notify_users.json - 提醒用户配置
  • patterns.json - 白名单规则配置
  • min_levels.json - 群专属等级配置
  • blacklist.json - 黑名单规则配置
  • pending_requests.json - 待处理申请(含超时控制)
  • statistics.json - 统计数据(含AI审核统计)
  • request_logs.json - 申请日志(最近1000条)

所有数据都以JSON格式存储,可手动编辑(需重启生效)。

使用场景示例

场景1: 邀请码验证群

需求: 只允许有邀请码的用户加入,邀请码格式为6位大写字母+数字

配置步骤:

# 群内执行
添加加群白名单
添加加群理由规则 ^邀请码:[A-Z0-9]{6}$
添加加群提醒 管理员QQ号

效果:

  • 加群理由符合"邀请码:ABC123"格式的自动通过
  • 不符合格式的通知管理员
  • AI会拒绝"邀请码为空"或"邀请码:不知道"等明显无效申请

场景2: 防广告群

需求: 拒绝含有广告、引流等违规内容的申请

配置步骤:

# 群内执行
添加加群白名单
添加加群黑名单 .*(广告|推广|引流|加V|微信).* 禁止广告内容
添加加群黑名单 .*http[s]?://.* 禁止包含链接

效果:

  • 加群理由包含"广告"、"推广"、"http://"等关键词的直接拒绝
  • 黑名单优先级高于白名单,匹配即拒
  • AI会额外识别隐蔽的广告内容

场景3: 高质量社群

需求: 只允许高等级、有明确目的的用户加入

配置步骤:

# 私聊执行(超级用户)
设置最低等级 群号 32
添加加群规则 群号 .{20,}  # 要求加群理由至少20个字符
设置加群提醒 群号 管理员1,管理员2,管理员3

# 群内执行
添加加群黑名单 ^(看看|玩玩|随便|不知道)$ 理由过于简单

效果:

  • QQ等级低于32的直接拒绝
  • 加群理由少于20字的通知管理员
  • 敷衍理由的直接拒绝
  • AI会拒绝"."、"1"等无意义申请

注意事项

  1. 权限配置:

    • 群内命令需要Bot在该群的管理员权限(5级)
    • 私聊命令仅超级用户可用
  2. 正则表达式:

    • 白名单规则使用正则表达式匹配,任意一条匹配即通过
    • 黑名单规则使用正则表达式匹配,任意一条匹配即拒绝
    • 黑名单优先级高于白名单
  3. 等级检查:

    • 群专属等级配置优先于全局配置
    • 等级检查在黑白名单验证之前
  4. 白名单机制:

    • 如果白名单为空,则处理所有群的申请
    • 如果白名单非空,仅处理白名单内的群
  5. 申请通知:

    • 需要配置提醒用户才能收到通知
    • 回复消息必须回复Bot发送的通知消息
    • 申请记录会在24小时后自动清理
  6. AI审核限制:

    • AI只能拒绝申请,无批准权限
    • 需要在配置中启用 AI_AUTO_REVIEW_ENABLED
    • 置信度低于阈值时AI不会自动处理
    • AI审核失败会降级为人工处理
  7. 数据备份:

    • 定期备份 data/group_request_handler/ 目录
    • 统计数据和日志可能随使用增长

常见问题

Q1: 插件不工作?

A: 检查以下项:

  1. 插件是否正确加载(查看Bot启动日志)
  2. 全局配置 ENABLED 是否为 True
  3. 群是否在白名单中(或白名单是否为空)
  4. Bot是否有处理加群请求的权限

Q2: 如何测试配置是否生效?

A: 使用小号发送加群申请测试,或使用 加群处理状态 命令查看当前配置。

Q3: AI审核不生效?

A: 检查以下项:

  1. 配置 AI_AUTO_REVIEW_ENABLED 是否为 True
  2. 是否安装并配置了真寻Bot的LLM服务
  3. 申请是否已通过其他规则自动处理(AI只处理超时未处理的申请)
  4. AI置信度是否低于设定阈值

Q4: 如何查看某个用户的申请历史?

A: 使用私聊命令:

查询用户申请 用户QQ号 群号

Q5: 日志数据会无限增长吗?

A: 不会,日志文件限制为最近1000条记录,超出后自动删除旧记录。

Q6: AI会批准申请吗?

A: 不会。AI只有拒绝权限,没有批准权限。即使AI认为申请没问题,也会继续等待人工审核。

贡献

欢迎提交Issue和Pull Request!

作者

  • BingZi-233

许可证

本项目使用 MIT 许可证 - 详见 LICENSE 文件