feat: 完善周期报告与用户行为分析
- 支持可配置周报月报模板与登录后异步补生成\n- 增加用户行为埋点和后台分析页面\n- 移除主题额度并保留实修回顾结算\n- 修复历史会话续聊上下文丢失
This commit is contained in:
@@ -144,13 +144,20 @@ RESTORE_CONFIRM=YES \
|
||||
|
||||
周期报告使用数据库保存任务状态,Redis 只用于限制多进程并发。服务重启后,等待中的任务会继续执行,超过 30 分钟仍处于执行中的任务会自动恢复并重试。
|
||||
|
||||
默认调度规则:
|
||||
默认按需调度规则:
|
||||
|
||||
- 每周一 02:00(Asia/Shanghai)生成上一自然周周报;
|
||||
- 每月 1 日 03:00(Asia/Shanghai)生成上一自然月月报;
|
||||
- 只处理权益已开启周期报告、账号有效且该周期存在成功主题摘要的用户;
|
||||
- 用户登录或当天首次访问任意受保护接口时,只做缺口检查并把任务写入数据库,不在请求内调用模型;
|
||||
- 每周一 02:00(Asia/Shanghai)后允许补生成上一自然周周报;
|
||||
- 每月 1 日 03:00(Asia/Shanghai)后允许补生成上一自然月月报;
|
||||
- 最多回补 26 个自然周和 6 个自然月,且不早于周期报告功能上线时间和用户周期报告权益生效时间;
|
||||
- 只处理权益已开启周期报告、账号有效且周期内存在已完成聊天记录的用户;
|
||||
- 周报读取自然周内全部已完成的用户与 AI 聊天消息;材料超过单次安全长度时按消息边界分批整理,再逐层归并,不截断尾部记录;
|
||||
- 月报不再重复读取聊天记录,而是等待覆盖该月聊天日期的周报全部成功后,再以这些周报作为来源汇总;依赖周报尚未完成时任务会自动等待;
|
||||
- 周报和月报的变量含义、AI 整理规则、排版模板均在管理后台“内容生成”中独立配置,并保留版本和回滚记录;
|
||||
- 单个任务最多自动执行 3 次,失败后可在后台用户详情中手动重新生成。
|
||||
|
||||
`PERIODIC_REPORT_GLOBAL_SCHEDULE_ENABLED` 默认关闭,避免每天扫描全部用户;如有必须提前为未登录用户生成报告的运营场景,可以临时开启,全局调度和按需调度仍由数据库唯一约束保证幂等。
|
||||
|
||||
可通过以下环境变量关闭或调整:
|
||||
|
||||
```text
|
||||
@@ -161,11 +168,23 @@ PERIODIC_REPORT_TIMEZONE=Asia/Shanghai
|
||||
PERIODIC_REPORT_POLL_SECONDS=5
|
||||
PERIODIC_REPORT_STALE_MINUTES=30
|
||||
PERIODIC_REPORT_MAX_ATTEMPTS=3
|
||||
PERIODIC_REPORT_GLOBAL_SCHEDULE_ENABLED=false
|
||||
PERIODIC_REPORT_LAZY_CHECK_ENABLED=true
|
||||
PERIODIC_REPORT_LAZY_CHECK_LOCK_SECONDS=60
|
||||
PERIODIC_REPORT_WEEKLY_BACKFILL_LIMIT=26
|
||||
PERIODIC_REPORT_MONTHLY_BACKFILL_LIMIT=6
|
||||
PERIODIC_REPORT_FEATURE_START=2026-07-31T00:00:00+08:00
|
||||
PERIODIC_REPORT_SOURCE_CHUNK_CHARS=18000
|
||||
USER_BEHAVIOR_RETENTION_DAYS=30
|
||||
```
|
||||
|
||||
`PERIODIC_REPORT_SOURCE_CHUNK_CHARS` 控制周期报告分批整理的单批字符上限。调整前应结合“周期报告”模型的上下文窗口验证;不建议为了减少调用次数盲目调大。
|
||||
|
||||
`USER_BEHAVIOR_RETENTION_DAYS` 控制用户行为事件保留天数,默认 30 天。行为数据仅记录白名单内的页面/弹窗打开和关键按钮点击,不保存用户输入或聊天正文。过期数据由维护任务分批删除。
|
||||
|
||||
## 主题沉淀后台任务
|
||||
|
||||
用户点击“沉淀本主题”后,接口只结束当前主题并创建持久化任务,不再等待模型生成主题摘要和近期实修回顾。用户可以立即继续聊天、切换会话或关闭页面。
|
||||
同一段对话达到后台配置的成功问答轮数后,系统自动创建阶段回顾任务但不结束当前对话;用户新建对话、删除会话或明确结束当前主题时,会强制生成最终摘要。请求只创建持久化任务,不等待模型生成,用户可以立即继续聊天、切换会话或关闭页面。
|
||||
|
||||
任务状态保存在 `sys_topic_summary`:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user