ai_member_xiaoban/memory/2026-05-24.md

61 lines
2.8 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.

# 2026-05-24 工作日志
## 新建技能: studytime-analysis
[刘庆逊提出] 创建学习时间分析技能,分析角色完课记录的规律。
### 技能结构
- `skills/studytime-analysis/SKILL.md` — 技能定义
- `skills/studytime-analysis/scripts/studytime_analysis.py` — Python 分析脚本
### 分析维度
1. **一周时间分布**排除寒暑假1-2月、7-8月周一~周日各天完课数、时段分布(上午/中午/下午/晚上)、周末是否上课
2. **跨周学习趋势**(包含寒暑假全部数据):总周数、周均完课数、连续性、中断周检测、前后半段趋势对比、突增/骤降检测
3. **完课记录明细表**(全部数据):日期/时间/星期/时段/级别/课程ID
### 数据源
- PostgreSQL Onlinevala 库)
- 核心表:`user_chapter_play_record_0~7`8张分表`bi_` 前缀)
- 筛选:`play_status = 1`
- 注意:表在 PostgreSQL 而非 MySQL表名无 `bi_` 前缀
### 寒暑假规则
- 一周分布分析时排除 1-2 月(寒假)和 7-8 月(暑假)—— 因为寒暑假作息与平时差异大,混在一起会干扰时段分析
- 跨周趋势和明细表包含全部数据(含寒暑假)
- 报告中区分标注数据范围
### 触发方式
用户说「学习时间分析 [角色ID]」即可触发
### 已测试角色
- 2343、2344无完课记录play_status=2未完成
- 2840276条记录秋季集中型用户
- 25976265条246条在W16周一天完成A2批量疑似系统批量标记
- 2895188条长期稳定学习型用户36周几乎不间断非寒暑假晚上为主寒暑假上午为主
### 技术要点
- psycopg2 的 `%(param_name)s` 命名参数必须正确匹配UNION ALL 多个子查询需要不同参数名
- PostgreSQL 返回的 `updated_at` 是 tz-aware datetime
- `datetime.fromisocalendar(year, week, 1)` 获取某周周一的日期
### 同步
- 已推送到 SkillHub`studytime-analysis.xiaoban`
- 已 commit 到 Git 远程仓库
- 已通知 Cris李若松
### 增强: 报告开头加入角色基本信息 (2026-05-24)
[刘庆逊提出] 在 studytime-analysis 输出中加入角色基本信息,包括:
- 角色ID、账号ID、角色名字、性别、年龄、账号手机号后4位
**数据源(新增)**
- MySQL Online `vala_user`
- `vala_app_character`id, account_id, nickname, gender(0=女/1=男), birthday(varchar "YYYY-MM-DD")
- `vala_app_account`id, tel(已脱敏如 186****1625)
- 手机号已脱敏直接取后4位年龄从 birthday 计算
**修改文件**
- `skills/studytime-analysis/scripts/studytime_analysis.py`:新增 MySQL 连接函数 `get_mysql_connection()``fetch_role_info(role_id)`,更新 `format_report()` 输出基本角色信息
- 已验证 2895 正常运行输出
- 已同步 SkillHub + Git