Skip to content

KeywordMonitor 是一个用于dify-on-wechat 监控群聊关键词、URL链接和文件内容的插件。当检测到违规内容时,插件会自动发送警告消息,并要求用户在2分钟内撤回违规消息。

Notifications You must be signed in to change notification settings

androidok/KeywordMonitorPlugin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KeywordMonitor 插件

2025年3月26日更新文件,直接适配DOW 0.1.25 无需修改DOW的其他文件.

将OPENAI的配置,直接放到了插件目录!

简介

KeywordMonitor 是一个用于 https://github.com/hanfangyuan4396/dify-on-wechat 利用GTP来监控群聊关键词、URL链接和文件内容的插件。当检测到违规内容时,插件会自动发送警告消息,并要求用户在2分钟内撤回违规消息。如果用户未在规定时间内撤回消息,插件将自动将其移出群聊。该插件旨在帮助群管理员自动管理群聊内容,减少人工干预,确保群聊环境的健康和安全。

根目录下comfig.json需要有配置,本插件是通过AI分析URL是否违规:

    "gewechat_app_id": "wx_d***********",
    "gewechat_base_url": "http://192.168.10.123:2531/v2/api",
    "gewechat_token": "2*******************",

示例图

本地图片

如果用户撤回了消息,我们发送一条感谢消息,提醒用户保持良好的聊天行为。

本地图片

本地图片

插件使用要求:

插件主要是利用GPT对每一段话进行分析,也可以使用关键词进行。根据你的情况配置!

将插件安装到 /plugins/KeywordMonitorPlugin

功能特性

1. 关键词监控

  • 监控群聊消息中的关键词,支持自定义关键词列表。
  • 当消息中包含配置的关键词时,插件会发送警告消息,并要求用户在2分钟内撤回违规消息。
  • 支持动态加载关键词列表,无需重启插件即可生效。

2. URL链接监控

  • 检测消息中的URL链接,支持自定义广告链接和不支持的链接模式。
  • 如果链接匹配广告URL模式或不支持的URL模式,插件会发送警告消息,并要求用户撤回违规消息。
  • 支持对URL内容进行深度分析,判断是否包含违规信息。

3. 文件内容监控

  • 检测消息中的文件内容,支持分析文件内容是否违规。
  • 如果文件内容包含违规信息,插件会发送警告消息,并要求用户撤回违规消息。
  • 支持多种文件格式的内容提取和分析。

4. 自动移除用户

  • 当用户多次违规或未在规定时间内撤回违规消息时,插件会自动将其移出群聊。
  • 支持设置警告次数限制,达到次数后自动移除用户。

5. 白名单支持

  • 支持设置白名单用户,白名单用户发送的消息不会被监控。
  • 白名单用户即使发送违规内容,也不会触发警告或移除操作。

6. 忽略@机器人的消息

  • 支持忽略@机器人的消息,避免误判。
  • 当消息中包含@机器人的内容时,插件会自动忽略该消息,不进行监控。

7. 消息撤回处理

  • 支持处理消息撤回事件,记录撤回的消息ID。
  • 如果用户在2分钟内撤回了违规消息,插件不会执行移除操作。

8. 违规记录管理

  • 记录每个用户的违规消息ID和违规次数。
  • 支持将违规记录保存到本地文件,重启插件后仍可保留历史记录。
  • 支持手动清除违规记录。

9. 多群组监控

  • 支持同时监控多个群组,群组名称可在配置文件中自定义。
  • 每个群组可以独立设置监控规则和白名单。

10. 警告消息自定义

  • 支持自定义警告消息内容,管理员可以根据需要调整警告提示。
  • 警告消息中可以包含违规类型、用户昵称等信息。

11. 插件启停控制

  • 支持动态启用或停用插件,无需重启系统。
  • 插件状态可以在配置文件中进行设置。

12. 日志记录

  • 详细的日志记录功能,记录插件的运行状态、监控结果和错误信息。
  • 日志信息包括消息ID、发送者ID、群组名称、违规类型等。

安装与配置

DOW项目KeywordMonitorPlugin插件安装教程

安装步骤

  1. 进入项目目录

    cd DOW项目目录/plugins/
  2. 克隆插件仓库

    git clone https://github.com/cm04918/KeywordMonitorPlugin
  3. 进入插件目录

    cd KeywordMonitorPlugin
  4. 修改配置文件

    • 用文本编辑器打开 config.json 文件
    • 根据您的需求修改配置参数
    • 保存文件

插件管理命令

在机器人对话中执行以下命令来管理插件:

  1. 扫描新插件

    #scanp
    

    此命令会扫描插件目录以检测新安装的插件

  2. 查看插件列表

    #plist
    

    此命令会显示当前所有可用插件的列表

  3. 启用插件

    #enablep KeywordMonitor
    

    此命令会启用KeywordMonitor插件

2. 配置插件

编辑 config.json 文件,配置插件的各项参数:

{
  "enabled": true,
  "keywords": ["话费充值打折","抖音退费","机票退改签","会员退费","培训学费退费","网络高薪兼职","兼职刷单"],
  "monitored_groups": ["三人行","AI外卖员","浩扬电子书城","ql"],
  "whitelist": [],
  "ignore_at_bot_msg": true,
  "url_check_enabled": true,
  "keyword_check_enabled": true,
  "file_check_enabled": true,
  "warning_limit": 20,
  "ad_url_patterns": [
    ".*ad\\.com.*",
    ".*doubleclick\\.net.*",
    ".*googleads\\.g\\.doubleclick\\.net.*",
    ".*ads\\.yahoo\\.com.*",
    ".*tracking\\.com.*",
    ".*affiliate\\.com.*",
    ".*promo\\.com.*"
  ],
  "unsupported_url_patterns": [
    ".*finder\\.video\\.qq\\.com.*",
    ".*support\\.weixin\\.qq\\.com/update.*",
    ".*support\\.weixin\\.qq\\.com/security.*",
    ".*mp\\.weixin\\.qq\\.com/mp/waerrpage.*"
  ],
  "whitelist_urls": [
    ".*\\.gov\\.cn.*",
    ".*\\.edu\\.cn.*",
    ".*\\.ac\\.cn.*",
    ".*\\.people\\.com\\.cn.*",
    ".*\\.xinhuanet\\.com.*",
    ".*\\.cctv\\.com.*",
    ".*\\.china\\.com\\.cn.*"
  ],
  "open_ai_api_key": "sk-xTYifeB7vMG2mUp4111816A4C6124f8cA0Dc741528E04cDd",
  "open_ai_api_base": "http://192.168.10.123:3000/v1",
  "model": "kimi"
}

配置说明:

{
  // 是否启用插件,true 表示启用,false 表示禁用,默认值为 false
  "enabled": true,

  // 需要监控的关键词列表,用于检测群聊消息中是否包含这些词语
  // 当前配置针对常见的诈骗或广告关键词
  "keywords": [
    "话费充值打折",      // 手机话费充值折扣相关诈骗关键词
    "抖音退费",          // 抖音平台退费诈骗关键词
    "机票退改签",        // 机票退改签相关诈骗关键词
    "会员退费",          // 会员服务退费诈骗关键词
    "培训学费退费",      // 培训机构学费退费诈骗关键词
    "网络高薪兼职",      // 网络高薪兼职诈骗关键词
    "兼职刷单"           // 兼职刷单诈骗关键词
  ],

  // 需要监控的群聊名称列表,仅监控这些群的消息
  // 如果列表为空,则监控所有群聊
  "monitored_groups": [
    "三人行",            // 群聊名称 1
    "AI外卖员",          // 群聊名称 2
    "浩扬电子书城",      // 群聊名称 3
    "ql"                 // 群聊名称 4
  ],

  // 白名单用户ID列表,这些用户的消息将被忽略,不进行监控
  // 当前为空,表示没有白名单用户
  "whitelist": [],

  // 是否忽略@机器人的消息,true 表示忽略,false 表示不忽略,默认值为 true
  // 防止机器人自身的消息触发监控
  "ignore_at_bot_msg": true,

  // 是否启用URL链接检测,true 表示启用,false 表示禁用,默认值为 false
  // 启用后会对消息中的链接进行检查
  "url_check_enabled": true,

  // 是否启用关键词检测,true 表示启用,false 表示禁用,默认值为 false
  // 启用后会检查消息是否包含 keywords 中的词语
  "keyword_check_enabled": true,

  // 是否启用文件内容检测,true 表示启用,false 表示禁用,默认值为 false
  // 启用后会分析群聊中上传的文件内容,,此功能未完善
  "file_check_enabled": true,

  // 违规次数限制,达到此值后用户将被踢出群聊
  // 当前设置为 20,表示用户违规 20 次后被踢出
  "warning_limit": 20,

  // 广告URL的正则表达式模式列表,用于检测消息中的链接是否为广告链接
  "ad_url_patterns": [
    ".*ad\\.com.*",                     // 匹配包含 "ad.com" 的域名
    ".*doubleclick\\.net.*",            // 匹配 Google DoubleClick 广告服务
    ".*googleads\\.g\\.doubleclick\\.net.*", // 匹配 Google 广告服务子域
    ".*ads\\.yahoo\\.com.*",            // 匹配 Yahoo 广告服务
    ".*tracking\\.com.*",               // 匹配常见的跟踪域名
    ".*affiliate\\.com.*",              // 匹配联盟营销域名
    ".*promo\\.com.*"                   // 匹配促销相关域名
  ],

  // 不支持的URL正则表达式模式列表,用于检测小程序或视频号等不受支持的链接
  "unsupported_url_patterns": [
    ".*finder\\.video\\.qq\\.com.*",         // 匹配腾讯视频号相关链接
    ".*support\\.weixin\\.qq\\.com/update.*", // 匹配微信更新支持页面
    ".*support\\.weixin\\.qq\\.com/security.*", // 匹配微信安全支持页面
    ".*mp\\.weixin\\.qq\\.com/mp/waerrpage.*" // 匹配微信小程序错误页面
  ],

  // URL白名单正则表达式模式列表,这些链接将被忽略,不视为违规
  // 当前配置包含政府、教育和官方媒体域名
  "whitelist_urls": [
    ".*\\.gov\\.cn.*",         // 匹配中国政府网站
    ".*\\.edu\\.cn.*",         // 匹配中国教育机构网站
    ".*\\.ac\\.cn.*",          // 匹配中国学术机构网站
    ".*\\.people\\.com\\.cn.*", // 匹配人民日报网站
    ".*\\.xinhuanet\\.com.*",   // 匹配新华网
    ".*\\.cctv\\.com.*",        // 匹配央视网
    ".*\\.china\\.com\\.cn.*"   // 匹配中国网
  ],

  // OpenAI API 的密钥,用于调用内容分析服务
  // 当前为示例密钥,需替换为实际有效的密钥
  "open_ai_api_key": "sk-xTYifeB7vMG2mUp4111816A4C6124f8cA0Dc741528E04cDd",

  // OpenAI API 的基础地址,用于指定 API 请求的目标服务器
  // 当前设置为本地服务器地址,需根据实际部署调整
  "open_ai_api_base": "http://192.168.10.123:3000/v1",

  // OpenAI 使用的模型名称,指定调用哪个模型进行内容分析
  // 当前设置为 "kimi",需确保服务器支持此模型
  "model": "kimi"
}

3. 启动插件

确保插件配置文件正确后,启动插件。插件会自动加载配置并开始监控指定的群聊。

使用说明

1. 关键词监控

插件会监控群聊消息中的关键词。当检测到消息中包含配置的关键词时,插件会发送警告消息,并要求用户在2分钟内撤回违规消息。

2. URL链接监控

插件会检测消息中的URL链接。如果链接匹配广告URL模式或不支持的URL模式,插件会发送警告消息,并要求用户撤回违规消息。

3. 文件内容监控

插件会检测消息中的文件内容。如果文件内容包含违规信息,插件会发送警告消息,并要求用户撤回违规消息。

4. 自动移除用户

当用户多次违规或未在规定时间内撤回违规消息时,插件会自动将其移出群聊。

5. 白名单支持

白名单用户发送的消息不会被监控。即使白名单用户发送了违规内容,插件也不会触发警告或移除操作。

6. 忽略@机器人的消息

当消息中包含@机器人的内容时,插件会自动忽略该消息,不进行监控。

7. 消息撤回处理

插件会记录撤回的消息ID。如果用户在2分钟内撤回了违规消息,插件不会执行移除操作。

8. 违规记录管理

插件会记录每个用户的违规消息ID和违规次数。违规记录可以保存到本地文件,重启插件后仍可保留历史记录。

9. 多群组监控

插件支持同时监控多个群组,每个群组可以独立设置监控规则和白名单。

10. 警告消息自定义

管理员可以根据需要自定义警告消息内容,警告消息中可以包含违规类型、用户昵称等信息。

11. 插件启停控制

插件支持动态启用或停用,无需重启系统。插件状态可以在配置文件中进行设置。

12. 日志记录

插件会记录详细的日志信息,包括消息ID、发送者ID、群组名称、违规类型等,方便管理员查看和排查问题。

注意事项

  • 插件仅支持 gewechat 渠道,确保在配置文件中正确配置 gewechat_base_urlgewechat_tokengewechat_app_id
  • 插件依赖于外部API进行内容分析,确保配置文件中正确配置 open_ai_api_keyopen_ai_api_base

帮助与支持

如需帮助或支持,请联系插件作者:mailkf。

版本历史

  • 2025年1月20日:
  • 0.9.1:增加如果用户撤回了消息,我们发送一条感谢消息,提醒用户保持良好的聊天行为。
  • 增加了白名单功能,对域名过滤,优化提示词,增加了gewechat_message.py对表情与视频的识别。
  • 0.9.0:初始版本发布,支持关键词、URL链接和文件内容监控。

About

KeywordMonitor 是一个用于dify-on-wechat 监控群聊关键词、URL链接和文件内容的插件。当检测到违规内容时,插件会自动发送警告消息,并要求用户在2分钟内撤回违规消息。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%