docs(spec): 数据分析板块 spec 评审修订——min_msgs 参数/周一起始/alembic 取代上游过时说法

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-04 13:51:11 +08:00
parent d1b636abdc
commit 33c5596543
@@ -139,7 +139,7 @@ stat_daily_customer/group 物化表(msg_daily_stats 按 peer_kind 分组即等
|---|---|---|
| `/api/analytics/overview?channel=&scope=today\|week\|month` | GET | 卡片+趋势+异常警示一次返回(单往返) |
| `/api/analytics/health` | GET | 数据截至 + 实体新鲜度 |
| `/api/analytics/churn?channel=&type=real\|inactive\|handover&tier=30\|60\|90&page=` | GET | 流失名单 |
| `/api/analytics/churn?channel=&type=real\|inactive\|handover&tier=30\|60\|90&min_msgs=&page=` | GET | 流失名单(min_msgs=真流失历史消息阈值,默认 5,服务端兜底钳制 1~100) |
| `/api/analytics/unreplied?channel=&hours=&page=` | GET | 该回未回清单 |
| `/api/analytics/sensitive/words` | GET/POST | 词库列表/新增(新增带预览计数) |
| `/api/analytics/sensitive/words/{id}` | PATCH/DELETE | 改(enabled 等)/删(级联删命中) |
@@ -162,7 +162,7 @@ stat_daily_customer/group 物化表(msg_daily_stats 按 peer_kind 分组即等
## 6. 数据库迁移与调度
- **alembic 一支迁移**:4 新表(stat_daily_staff / sensitive_word / sensitive_hit / sensitive_scan_state)+ message.fetched_at 索引。
- **alembic 一支迁移**:4 新表(stat_daily_staff / sensitive_word / sensitive_hit / sensitive_scan_state)+ message.fetched_at 索引。**本条取代上游方案 §4.2「create_all 建表」的过时说法**——以仓库近期实践(msg_daily_stats 迁移 a7d3e9f1c2b4、ngram 索引迁移 b41e8fa0c7d2)为准,一律走 alembic。
- **调度**:
- 4h job(挂现有调度器,asyncio.Lock 互斥):stat_daily_staff 刷当日+滚动 3 天 → C1 增量扫描。
- 夜间 full_sync_all.sh 追加一步:stat_daily_staff 全量重建(自愈)。
@@ -195,7 +195,7 @@ stat_daily_customer/group 物化表(msg_daily_stats 按 peer_kind 分组即等
| 待交接 | 归属员工 is_on_job=0(依赖 R1) |
| 该回未回 | 1:1 对话尾部消息 is_send=false 且属有效类型,且 max(最后消息, 最后通话) 距今 > N 小时(默认 2h),剔除 delete_flag/is_block |
| 等待时长 | now − max(最后消息 ts, 最后通话 ts) |
| 环比 | 仅周/月卡片(本周 vs 上周、本月 vs 上月) |
| 环比 | 仅周/月卡片(本周 vs 上周、本月 vs 上月);**周起始=周一**(中国业务惯例,Python 侧计算) |
| 日汇总 day | Asia/Shanghai 自然日 yyyymmdd,纯 Python 计算 |
| 异常警示 | 昨日消息总量 vs 前 7 日均值偏离 >50%,明细到员工级 |