# 智能分批算法优化 - 实现计划

## [x] Task 1: 实现简化的单文本 JSON 长度估算函数
- **Priority**: P0
- **Depends On**: None
- **Description**: 
  - 实现 `estimateSingleTextJsonSize` 函数
  - 基于 string.length 粗略估算单个文本的 JSON 字节长度
  - 考虑 JSON 转义开销
- **Success Criteria**:
  - 能快速估算单个文本的 JSON 长度
- **Test Requirements**:
  - `programmatic` TR-1.1: 简单文本估算正确
  - `programmatic` TR-1.2: 含特殊字符文本估算合理
- **Status**: 已完成

## [x] Task 2: 实现优化的 estimateJsonSize 函数
- **Priority**: P0
- **Depends On**: Task 1
- **Description**: 
  - 基于取巧原理优化 estimateJsonSize
  - texts 的 json byteLength = 所有单 text 的 json byteLength 加和 + [] 的长度(2)
  - 考虑逗号分隔符(每个 text 之间 1 字节)
- **Success Criteria**:
  - 估算结果接近真实值
  - 性能比 JSON.stringify 更快
- **Test Requirements**:
  - `programmatic` TR-2.1: 估算结果误差在可接受范围
  - `programmatic` TR-2.2: 不使用真实 JSON.stringify
- **Status**: 已完成

## [x] Task 3: 重构 smartBatch 函数使用优化算法
- **Priority**: P0
- **Depends On**: Task 2
- **Description**: 
  - 先用 string.length 粗略预估批量大小
  - 从后往前逐 text 预估 json 长度，逐步求减
  - 保持 500 条和 4900 字节的限制
- **Success Criteria**:
  - 分批算法更高效
  - 保持原有功能不变
- **Test Requirements**:
  - `programmatic` TR-3.1: 每批不超过 500 条
  - `programmatic` TR-3.2: 每批不超过 4900 字节
  - `programmatic` TR-3.3: 分批顺序正确
- **Status**: 已完成

## [x] Task 4: 验证和性能测试
- **Priority**: P1
- **Depends On**: Task 3
- **Description**: 
  - 验证优化后的功能正常
  - 对比性能改进
- **Success Criteria**:
  - 功能正常
  - 性能有提升
- **Test Requirements**:
  - `programmatic` TR-4.1: TypeScript 编译无错误
  - `programmatic` TR-4.2: 完整功能测试通过
- **Status**: 已完成
