群聊日报 (group-daily-analysis)

July 24, 2026 · View on GitHub

基于 astrbot_plugin_qq_group_daily_analysis 复刻,适用于 Yunzai-Bot 的群聊日报插件。

通过 LLM 分析群聊消息,生成包含话题、用户称号、金句、聊天质量评估的可视化日报图片,支持 9 套主题模板。

功能

  • 📊 群聊统计:消息数、参与人数、字符数、最活跃时段、24 小时活跃度图表
  • 💬 话题分析:提取当日主要讨论话题及参与者
  • 🏆 用户称号:为活跃群友生成称号、MBTI 与理由
  • 金句分析:挑选群聊中的精彩发言
  • 📈 聊天质量:多维度评估当日群聊质量
  • 🎨 多主题:scrapbook / simple / ATRI / BlueArchive / format / hack / HatsuneMiku / retro_futurism / spring_festival
  • 定时分析:可配置每日自动生成并发送到群
  • 💾 多种消息源:history(历史拉取)/ redis(实时记录)/ hybrid(混合)

安装

推荐使用 git 进行安装。

Github 源

git clone https://github.com/NotIvny/yunzai_qq_group_daily_analysis ./plugins/group-daily-analysis
# 在 Yunzai 根目录执行
cd plugins/group-daily-analysis
pnpm install

模板资源下载

模板中使用的固定网络资源(图片、字体、CSS等)会在生成日报时自动下载到插件目录的 data/ 文件夹,并替换为本地路径后再渲染,相比原版astrbot插件渲染速度大幅度提升。

  • 已下载的资源会复用,不会重复下载。

配置

首次启动时候插件会自动从 config/config_default.yaml 复制一份到 config/config.yaml

然后编辑 config/config.yaml,填写 LLM 配置:

llm:
  apiKey: "sk-your-api-key" 
  baseUrl: "https://api.deepseek.com"
  model: "deepseek-v4-flash"

配置项说明

配置项说明默认值
enabled启用插件true
recordMode消息记录模式 history/redis/hybridhistory
groupListMode群名单模式 whitelist/blacklist/noneblacklist
groupList群名单[]
analysisDays分析天数1
maxMessages最多分析消息数2000
minMessages最少有效消息数(定时任务)20
reportTemplate日报主题scrapbook
llm.apiKeyLLM API Key""
llm.baseUrlLLM 接口地址https://api.deepseek.com
llm.model模型名deepseek-v4-flash
autoAnalysis.enabled启用定时分析false
autoAnalysis.time执行时间 HH:mm23:00

完整字段见 config/config.yaml

命令

命令说明权限
#群分析生成本群今日日报群聊
#群分析 3生成最近 3 天的日报群聊
#查看模板查看所有可用模板并发送固定模拟数据预览图主人
#设置模板查看当前模板和可用模板列表主人
#设置模板 1 / #设置模板 scrapbook设置全局日报模板,写入 config/config.yaml主人

模板设置会在每次命令触发时重新读取 config.yaml#设置模板 修改的是全局配置,后续群聊日报都会使用新模板。#查看模板 使用内置固定数据生成预览,不调用 LLM。

LLM 兼容性

支持任何 OpenAI 兼容的 /chat/completions 接口,包括:

  • DeepSeek (https://api.deepseek.com)
  • OpenAI (https://api.openai.com/v1)
  • 智谱 GLM (https://open.bigmodel.cn/api/paas/v4)
  • 通义千问 (https://dashscope.aliyuncs.com/compatible-mode/v1)
  • Moonshot Kimi (https://api.moonshot.cn/v1)
  • 本地 Ollama (http://localhost:11434/v1)
  • 其他 OpenAI 兼容服务

注意:baseUrl 不要带尾部斜杠;建议使用支持 response_format: json_object 的模型。

架构

index.js                 # 加载器:初始化运行时 + 加载 apps/
apps/
  groupAnalysis.js       # 命令处理(#群分析 / 模板设置)
  messageRecorder.js     # 群消息记录(redis/hybrid 模式)
lib/
  config.js              # YAML 配置加载与校验
  runtime.js             # 运行时单例(service/scheduler/recorder)
src/
  application/groupAnalysisService.js   # 分析流程编排
  domain/                               # 纯逻辑:消息清洗/统计/结果构建
  infrastructure/
    llmClient.js          # OpenAI 兼容 fetch 客户端
    llmAnalyzer.js        # LLM 分析(话题/称号/金句/质量)
    htmlRenderer.js       # HTML -> PNG(Yunzai puppeteer)
    reportRenderer.js     # nunjucks 模板渲染
    onebotHistoryRepository.js
    redisMessageRepository.js
    redisMessageRecorder.js
    dailyScheduler.js
    jsonParser.js