# 班级 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` 排除。 ## 测试 ```bash docker run --rm --network none -e PYTHONPATH=/app \ -v "$PWD/tests:/tests:ro" class-qq-monitor:local python /tests/run_tests.py ```