ai_member_xiaoban/skills/studytime-analysis/SKILL.md

2.4 KiB
Raw Blame History

name description slug version
studytime-analysis 分析指定角色的完课时间分布与学习规律包含一周内时间分布、跨周趋势、寒暑假排除。触发词「学习时间分析」「看看学习时间」「学习时间有什么特点」「studytime」。 studytime-analysis 1.0.0

学习时间分析技能

触发规则

用户通过飞书发送以下格式的消息时触发:

  • 「学习时间分析 [角色ID]」
  • 「[角色ID] 学习时间分析」
  • 「看看 [角色ID] 的学习时间有什么特点」
  • 「分析 [角色ID] 的完课时间规律」

角色ID 必须是纯数字。

工作流程

  1. 参数提取 — 从用户消息中提取角色ID
  2. 数据采集 — 执行 Python 脚本查询该角色全部完课记录(包含寒暑假,非按月过滤)
  3. 分析输出 — 脚本自动完成以下分析并输出格式化报告:
    • 一周分布(仅非寒暑假数据):周一至周日各天完课数量 + 周一至周五上课时段(上午/中午/下午/晚上),排除寒暑假作息差异的干扰
    • 跨周趋势(全部数据):覆盖总周数、周均完课数、连续性、中断周、趋势变化(含寒暑假期间的学习节奏变化)
    • 完课记录明细(全部数据):完整的完课时间表

调用方式

cd /root/.openclaw/workspace-xiaoban && \
export PG_DB_HOST=bj-postgres-16pob4sg.sql.tencentcdb.com \
  PG_DB_PORT=28591 PG_DB_USER=ai_member \
  PG_DB_PASSWORD='...' PG_DB_DATABASE=vala && \
python3 skills/studytime-analysis/scripts/studytime_analysis.py <role_id>

数据库说明

  • 数据源: PostgreSQL Online (vala 库)
  • 核心表: user_chapter_play_record_0~7完课记录8张分表
  • 筛选: play_status = 1(已完成),查询全量数据(不按月过滤)
  • 寒暑假处理: 1-2月寒假和 7-8月暑假的记录仅在一周时间分布中排除跨周趋势和完课明细完整保留
  • 注意: 表名无 bi_ 前缀;课程通过 level + chapter_id 字段展示

输出说明

脚本输出为 Markdown 格式的分析报告,可直接发送给用户。包含:

  • 基本信息角色ID、完课总数、寒暑假/非寒暑假数量)
  • 📌 一周时间分布数据范围说明
  • 一周时间分布表 + 规律总结(仅非寒暑假)
  • 跨周学习趋势表 + 趋势分析(全部数据)
  • 完课记录明细表(全部数据,含寒暑假标记)