7e0acef4f9
- Add complete skill set including feishu, github, ci-gen, etc. - Add workspace documentation (AGENTS.md, SOUL.md, etc.) - Add memory system and project context
100 lines
4.0 KiB
Markdown
100 lines
4.0 KiB
Markdown
# 长视频分段分析功能 - 实现计划
|
|
|
|
**Goal:** 实现动态混合策略处理超长视频(30分钟以上),解决上下文溢出问题
|
|
**Approach:** 方案C - 根据视频时长动态选择处理策略(<30min直接分析,30-60min分2段,60min+分多段)
|
|
**Estimated Total Time:** 45-60 minutes
|
|
|
|
---
|
|
|
|
## Checkpoint 1: 基础结构搭建
|
|
*目标:创建字幕分割工具和配置更新*
|
|
|
|
- [ ] **Task 1.1:** 创建 `src/content_chunker.py` 模块 (~10 min)
|
|
- **Action:** 新建文件,实现 `ContentChunker` 类,包含按时间戳分割字幕的功能
|
|
- **Verify:** 文件存在,包含 `chunk_by_duration()` 方法,能将SRT字幕按指定时长分割
|
|
|
|
- [ ] **Task 1.2:** 更新 `config/config.yaml` 添加分段配置 (~5 min)
|
|
- **Action:** 添加 `chunking` 配置项:阈值(30分钟)、分段策略、每段最大字符数
|
|
- **Verify:** 配置文件包含 `chunking` 节点,有 `long_video_threshold: 1800` 等配置
|
|
|
|
- [ ] **Task 1.3:** 更新 `src/config.py` 读取新配置 (~5 min)
|
|
- **Action:** 在 Config 类中添加 chunking 相关属性
|
|
- **Verify:** 配置类能正确读取 chunking 配置,有默认值保护
|
|
|
|
---
|
|
|
|
## Checkpoint 2: MultiAIClient 改造
|
|
*目标:实现动态分段分析逻辑*
|
|
|
|
- [ ] **Task 2.1:** 修改 `_deep_analyze()` 方法,添加时长判断逻辑 (~10 min)
|
|
- **Action:** 根据 duration 决定处理策略:<30min直接分析,>=30min进入分段流程
|
|
- **Verify:** 代码逻辑清晰,有注释说明各分支
|
|
|
|
- [ ] **Task 2.2:** 实现 `_analyze_in_chunks()` 分段分析主方法 (~15 min)
|
|
- **Action:**
|
|
- 调用 `ContentChunker` 分割字幕
|
|
- 循环处理每段,调用AI生成摘要(限制500字)
|
|
- 收集所有段摘要
|
|
- **Verify:** 方法能正确处理多段字幕,每段返回结构化摘要
|
|
|
|
- [ ] **Task 2.3:** 实现 `_merge_chunk_summaries()` 合并摘要方法 (~10 min)
|
|
- **Action:** 将所有段摘要合并,生成最终的完整分析报告
|
|
- **Verify:** 合并后的结果包含:完整摘要、要点、大纲、时间轴等字段
|
|
|
|
---
|
|
|
|
## Checkpoint 3: 测试验证
|
|
*目标:确保功能正确运行*
|
|
|
|
- [ ] **Task 3.1:** 创建测试用例 `tests/test_chunking.py` (~10 min)
|
|
- **Action:** 编写单元测试,测试 ContentChunker 的分割逻辑
|
|
- **Verify:** 测试覆盖:正常分割、边界情况(空字幕、短字幕)
|
|
|
|
- [ ] **Task 3.2:** 运行测试验证 (~5 min)
|
|
- **Action:** 执行 `python -m pytest tests/test_chunking.py -v`
|
|
- **Verify:** 所有测试通过
|
|
|
|
- [ ] **Task 3.3:** 集成测试 (~10 min)
|
|
- **Action:** 运行 `analyze_video.py` 测试一个真实长视频(或模拟数据)
|
|
- **Verify:** 30分钟以上视频能正常处理,不报错,输出完整
|
|
|
|
---
|
|
|
|
## Checkpoint 4: 文档和清理
|
|
*目标:更新文档,标记完成*
|
|
|
|
- [ ] **Task 4.1:** 更新 `memory/tasks/ongoing-tasks.md` 标记完成 (~2 min)
|
|
- **Action:** 更新任务状态,记录完成时间
|
|
- **Verify:** 文件已更新
|
|
|
|
- [ ] **Task 4.2:** 创建 `memory/YYYY-MM-DD.md` 记录变更 (~3 min)
|
|
- **Action:** 记录本次修改:修复了长视频上下文溢出问题,实现了动态分段分析
|
|
- **Verify:** 文件已创建,内容完整
|
|
|
|
---
|
|
|
|
## Verification Criteria
|
|
- [ ] 所有4个检查点完成
|
|
- [ ] 30分钟以下视频:直接分析(1次API调用)
|
|
- [ ] 30-60分钟视频:分2段分析(3次API调用)
|
|
- [ ] 60分钟以上视频:每15-20分钟一段(N+1次API调用)
|
|
- [ ] 不抛出 "Context overflow" 错误
|
|
- [ ] 输出质量与之前相当(摘要完整、结构清晰)
|
|
|
|
---
|
|
|
|
## Execution Options
|
|
|
|
**计划已保存到 `memory/plans/video-chunking-implementation.md`**
|
|
|
|
**两种执行方式:**
|
|
|
|
1. **单代理顺序执行** - 我在当前会话依次完成任务,每个检查点汇报进度
|
|
|
|
2. **多代理并行执行** - 使用 `dispatch-multiple-agents` 技能,同时启动多个子代理并行开发
|
|
- Checkpoint 1 和 2 可以并行(结构独立)
|
|
- Checkpoint 3 依赖 1 和 2 完成
|
|
- Checkpoint 4 最后执行
|
|
|
|
**请选择执行方式?**
|