| .. | ||
| class_monitor | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| compose.yaml | ||
| config.example.yaml | ||
| Dockerfile | ||
| README.md | ||
| requirements.txt | ||
班级 QQ 群监控
只读接收 NapCat OneBot 11 群消息,先持久化到 SQLite,再调用 OpenAI-compatible
LLM 分析重要度、摘要、行动项和准备物品,最后通过独立的 notify-gateway
发送 Telegram/企业微信即时通知和分群日报。
主要行为
- 仅处理
target_group_ids白名单中的群,不包含任何 QQ 发消息 action。 - 支持教师账号白名单和按群排除机器人账号。
- 纯确认、寒暄和表情在本地标记为零重要度回执,不调用 LLM、不通知、不进入日报。
- 家长问句固定为重要度 1;可能需要家长行动但信息不完整时至少为 1。
- 周一至周六 19:00 汇总当天;周日 19:00 合并周五至周日并按群生成周末总结。
- 文本即时通知直接显示原文;图片等媒体消息显示 LLM 摘要并发送图片预览。
启动
- 复制
.env.example为.env并填写环境变量。 - 复制
config.example.yaml为config/config.yaml,配置群白名单、教师账号和通知渠道。 - 创建共享网络:
docker network create shared-services。若使用其他名称,设置SHARED_NETWORK_NAME。 - 运行
docker compose up -d --build。 - 打开 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