From bf4cfac8696ecd3ce75c322d6b11ec2a98f3cec0 Mon Sep 17 00:00:00 2001 From: SXP-Simon Date: Tue, 10 Feb 2026 18:46:49 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E7=A7=BB=E9=99=A4=E5=A2=9E=E9=87=8F?= =?UTF-8?q?=E5=88=86=E6=9E=90=E8=AE=BE=E8=AE=A1=E6=96=87=E6=A1=A3=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E6=97=A7=E7=89=88=E5=85=BC=E5=AE=B9=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/INCREMENTAL_ANALYSIS.md | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/docs/INCREMENTAL_ANALYSIS.md b/docs/INCREMENTAL_ANALYSIS.md index 67e6b55..77e3f4c 100644 --- a/docs/INCREMENTAL_ANALYSIS.md +++ b/docs/INCREMENTAL_ANALYSIS.md @@ -11,7 +11,7 @@ 3. **API端点短期压力暴增**:所有群聊在同一时间点执行分析,LLM API 瞬时负载极高 4. **天然日期隔离问题**:旧版按天存储(key含日期),跨天分析数据断裂,多次发送报告时窗口内容相同 -## 架构设计(v2 — 滑动窗口批次架构) +## 架构设计 增量分析遵循项目现有的 DDD 分层架构: @@ -32,16 +32,15 @@ └── LLMAnalyzer # LLM分析(增量并发方法) ``` -### 核心设计变更(v1 → v2) +### 核心特性 -| 维度 | v1(旧版) | v2(当前版本) | -|------|-----------|--------------| -| 存储单元 | 按天的 `IncrementalState` | 独立的 `IncrementalBatch` | -| KV Key | `incremental_state_{group_id}_{date}` | `incr_batch_{group_id}_{batch_id}` | -| 合并时机 | 每次增量分析时合并 | 报告生成时按窗口查询后合并 | -| 窗口范围 | 自然日(0:00-24:00) | 滑动窗口(now - analysis_days×24h ~ now) | -| 日期隔离 | 有(跨天数据断裂) | 无(窗口连续覆盖) | -| 多次发送 | 相同数据 | 窗口随时间滑动,数据不同 | +| 维度 | 设计方案 | 优势 | +|------|---------|------| +| 存储单元 | 独立的 `IncrementalBatch` | 批次间天然隔离,无并发冲突 | +| KV Key | `incr_batch_{group_id}_{batch_id}` | 支持无限扩展和按时间范围查询 | +| 合并时机 | 报告生成时按窗口查询后合并 | 灵活调整窗口(如24h/48h),无数据断裂 | +| 窗口范围 | 滑动窗口(now - analysis_days×24h ~ now) | 任何时间点生成的报告都覆盖完整周期 | +| 多次发送 | 窗口随时间滑动,数据不同 | 支持一天多次生成报告,每次都是最新的 | ## 数据流 @@ -171,10 +170,6 @@ similarity = len(chars_a & chars_b) / len(chars_a | chars_b) | `/增量状态` | 查看当前滑动窗口内的增量分析累积情况 | | `/分析设置 status` | 查看完整设置状态(含增量分析配置) | -## 旧版兼容 - -`IncrementalStore.migrate_legacy_state()` 支持将旧版 `incremental_state_{group_id}_{date}` 格式的数据迁移到新批次架构。迁移后旧键会被删除。 - ## 文件清单 | 文件 | 层 | 说明 |