- 群分析: 新增 history_store 只读本地消息源(读 learning_chat 落库,含 uninfo 昵称补齐/去重/截断判定),适配器优先读本地库、失败回退 OneBot 分页;分页 锚点字段回退链修复 NapCat 传 message_seq 翻页断裂;新增「本地记录」开关 - core/message_utils: 新增 common_proc_reply 占位图通用回复(引用消息 + 处理中 动图,支持后台任务显式指定 target),群分析/战况/倒放改用 - web_hub + web: 日志页改固定窗口滚动 + 翻页锚定 + 自动换行,SSE 日志轮转发 reset 帧,入口 HTML no-cache,行数统计增量缓存,CPU 改非阻塞采样,登录信息缓存 - 插件内 CLAUDE.md / DESIGN.md 不入库(.gitignore),galgame_card 两份文档取消 跟踪(文件保留在磁盘) Co-Authored-By: Claude Code <noreply@anthropic.com>
nonebot_plugin_group_daily_analysis(OneBot V11 最小可用版)
移植自 astrbot_plugin_qq_group_daily_analysis(GitHub: SXP-Simon/astrbot_plugin_qq_group_daily_analysis), 保留其领域分析 / 报告生成 / 持久化核心,把 AstrBot 全平台外壳重写为 NoneBot2 + OneBot V11。
群内指令(均需 @ 机器人,且群管理员 / 群主 / 超管)
- 群分析 [天数] :手动触发分析,可选最近 N 天(默认用配置里的时间窗口)
- 查看模板 :列出可用报告模板及其编号,标出当前模板
- 设置模板 [序号/名称] :切换报告模板,支持 1..9 编号或模板名
- 分析设置 :查看当前分析参数(时间窗口 / 消息数 / 输出格式 / 模板 / 功能开关)
- 设置分析 [参数] [值] :修改分析参数,见下表
设置分析 支持的参数:
天数/窗口 [N] 时间窗口,最近 N 天 最大消息 [N] 单次最多拉取消息数 最小消息 [N] 自动分析的最小消息阈值 输出格式 [image/text] 话题 / 称号 / 金句 / 聊天质量 [开/关]
已有能力
- 群分析:Onbot V11 get_group_msg_history 分页拉取近 N 天群聊
- 话题分析 / 用户形象 / 群聊金句 / 聊天质量(OpenAI 兼容 LLM)
- Playwright 渲染报告 HTML 为图片;报告内容以合并转发 (send_forward_msg) 发送,失败时回退直接发送
- 历史摘要、本地 KV、断点检查点落盘到数据目录
尚未接入(后续阶段)
- 定时自动分析、增量分析、群漫画、多平台(Telegram/Discord/QQ 官方)
- AstrBot 版 WebUI 看板
- 群白名单管理指令
安装 / 启用
-
插件目录已在 hexi/plugins/nonebot_plugin_group_daily_analysis,随 hexi/plugins 自动加载。
-
依赖:pip install ulid-py diskcache(已在 requirements.txt 追加)。
-
配置 LLM(环境变量,写入 NoneBot 的 .env):
HEXI_LLM_API_BASE=https://api.openai.com/v1 HEXI_LLM_API_KEY=sk-xxx HEXI_LLM_MODEL=gpt-4o-mini
支持任何 OpenAI 兼容端点(One API / 中转 / 本地 vLLM 等)。
配置
配置文件:hexi/data/group_daily_analysis/config.json(首次运行由 _conf_schema.json 生成默认值)。 命令里的 设置分析 / 设置模板 会直接写回该文件,改完即生效。
重点键:
- basic.analysis_days:时间窗口(最近 N 天)
- basic.max_messages:单次最大拉取消息数
- basic.output_format:["image"] 或 ["text"]
- basic.report_template:当前模板名(如 ATRI / scrapbook / BlueArchive)
- analysis_features.topic_analysis_enabled / user_title_analysis_enabled / golden_quote_analysis_enabled / chat_quality_analysis_enabled
- llm.llm_retries / llm.llm_backoff
注意:HEXI_LLM_API_BASE/KEY/MODEL 来自 .env 且优先于 config.json,不会被配置文件覆盖。