trace/services/class-monitor/README.md

34 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 班级 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
```