trace/services/class-monitor
2026-09-07 17:50:18 +08:00
..
class_monitor feat: add standalone class QQ monitor 2026-09-07 17:50:18 +08:00
tests feat: add standalone class QQ monitor 2026-09-07 17:50:18 +08:00
.env.example feat: add standalone class QQ monitor 2026-09-07 17:50:18 +08:00
.gitignore feat: add standalone class QQ monitor 2026-09-07 17:50:18 +08:00
compose.yaml feat: add standalone class QQ monitor 2026-09-07 17:50:18 +08:00
config.example.yaml feat: add standalone class QQ monitor 2026-09-07 17:50:18 +08:00
Dockerfile feat: add standalone class QQ monitor 2026-09-07 17:50:18 +08:00
README.md feat: add standalone class QQ monitor 2026-09-07 17:50:18 +08:00
requirements.txt feat: add standalone class QQ monitor 2026-09-07 17:50:18 +08:00

班级 QQ 群监控

只读接收 NapCat OneBot 11 群消息,先持久化到 SQLite,再调用 OpenAI-compatible LLM 分析重要度、摘要、行动项和准备物品,最后通过独立的 notify-gateway 发送 Telegram/企业微信即时通知和分群日报。

主要行为

  • 仅处理 target_group_ids 白名单中的群,不包含任何 QQ 发消息 action。
  • 支持教师账号白名单和按群排除机器人账号。
  • 纯确认、寒暄和表情在本地标记为零重要度回执,不调用 LLM、不通知、不进入日报。
  • 家长问句固定为重要度 1;可能需要家长行动但信息不完整时至少为 1。
  • 周一至周六 19:00 汇总当天;周日 19:00 合并周五至周日并按群生成周末总结。
  • 文本即时通知直接显示原文;图片等媒体消息显示 LLM 摘要并发送图片预览。

启动

  1. 复制 .env.example 为 .env 并填写环境变量。
  2. 复制 config.example.yaml 为 config/config.yaml,配置群白名单、教师账号和通知渠道。
  3. 创建共享网络:docker network create shared-services。若使用其他名称,设置 SHARED_NETWORK_NAME。
  4. 运行 docker compose up -d --build。
  5. 打开 NapCat WebUI 登录 QQ,并配置反向 WebSocket: ws://class-monitor:8765/onebot/v11/ws,Token 与 ONEBOT_ACCESS_TOKEN 一致。

健康接口为 GET http://127.0.0.1:8765/health。生产配置、.env、数据库、 日志、媒体缓存和 NapCat 登录数据都被 .gitignore 排除。

测试

docker run --rm --network none -e PYTHONPATH=/app \
  -v "$PWD/tests:/tests:ro" class-qq-monitor:local python /tests/run_tests.py