chore: complete v1.6 milestone - 语义分段改进
PR Test / lint (pull_request) Successful in 2s

This commit is contained in:
2026-03-23 23:20:28 +08:00
parent 5dc8e32924
commit cb181c9d9f
6 changed files with 533 additions and 118 deletions
+21 -99
View File
@@ -8,7 +8,7 @@
- ✅ **v1.3 Proxy Pool** - Phase 10 (shipped 2026-03-18)
- ✅ **v1.4 Zhihu Anti-Crawler** - Phase 11 (shipped 2026-03-18)
- ✅ **v1.5 B站字幕简化处理** - Phase 12 (shipped 2026-03-21)
- 🔄 **v1.6 语义分段改进** - Phases 13-15 (in progress)
- ✅ **v1.6 语义分段改进** - Phases 13-15 (shipped 2026-03-23)
## Phases
@@ -100,33 +100,25 @@ Plans:
</details>
---
## ✅ v1.4 Zhihu Anti-Crawler (SHIPPED 2026-03-18)
**Milestone Goal:** 绕过知乎反爬检测,让 Playwright 爬虫能正常工作
<details>
<summary>✅ v1.4 Zhihu Anti-Crawler (Phase 11) - SHIPPED 2026-03-18</summary>
### Phase 11: Stealth Fingerprinting (指纹伪装)
**Goal**: 隐藏 Playwright 自动化特征,让爬虫通过知乎的浏览器指纹检测
**Depends on**: Phase 10
**Requirements**: STEALTH-01, STEALTH-02, STEALTH-03, STEALTH-04, VERIFY-01, VERIFY-02
**Success Criteria** (what must be TRUE):
1. ZhihuCrawler 访问问答页面时不再被 40362 错误拦截
2. 爬虫的 navigator.webdriver 属性对知乎不可见
3. Playwright 特有的 JS 属性(__playwright, pwInspect 等)被移除
4. 现有功能(登录、Cookie 持久化、内容爬取)保持正常工作
**Plans**: 2 plans (all complete)
Plans:
- [x] 11-01-PLAN.md — 创建 StealthConfig 模块和单元测试
- [x] 11-02-PLAN.md — 集成 stealth 到 ZhihuCrawler 并验证
- [x] 11-01: 创建 StealthConfig 模块和单元测试
- [x] 11-02: 集成 stealth 到 ZhihuCrawler 并验证
**Key Decisions:**
- 使用 playwright-stealth 库进行指纹伪装
- stealth_config=None 表示默认启用 stealth (向后兼容)
- launch 时添加 --disable-blink-features=AutomationControlled 参数
---
</details>
<details>
<summary>✅ v1.5 B站字幕简化处理 (Phase 12) - SHIPPED 2026-03-21</summary>
@@ -147,76 +139,33 @@ Plans:
</details>
---
<details>
<summary>✅ v1.6 语义分段改进 (Phases 13-15) - SHIPPED 2026-03-23</summary>
## 🔄 v1.6 语义分段改进 (IN PROGRESS)
**Milestone Goal:** 使用 LLM 实现智能语义分段,识别视频类型并适配分段策略,保持内容完整性
**完整归档信息**: `.planning/milestones/v1.6-ROADMAP.md`
### Phase 13: 核心 LLM 分段功能
**Goal**: 实现基于 LLM 的智能语义分段,识别视频类型并生成主题标题
**Depends on**: Phase 12
**Requirements**: VIDEO-01, VIDEO-02, VIDEO-03, BOUND-01, BOUND-02, BOUND-03, BOUND-04, COMP-01, COMP-02, COMP-03, TITLE-01, TITLE-02, TITLE-03, SENT-01, SENT-02, SENT-03, STRAT-01, STRAT-02, STRAT-03
**Success Criteria** (what must be TRUE):
1. 系统能正确识别 B站视频的类型(知识类、故事类等),并根据类型选择分段策略
2. 语义分段在主题切换处正确创建边界,不会混入不同话题的内容
3. 分段不会在句子中间或论点未完成时截断,保持内容的语义完整性
4. 主题/章节分段生成简洁准确的标题,论点/观点分段不加标题
5. 不同类型视频使用对应的分段策略,策略可扩展
**Plans**: 7 plans
Plans:
- [x] 13-01-PLAN.md — 视频类型识别(Pydantic 模型、类型推断、LazyAIClient 初始化)
- [x] 13-02-PLAN.md — 语义边界检测(Prompt 模板、JSON 提取、Pydantic 验证)
- [x] 13-03-PLAN.md — 内容完整性保护(句边界、论点完整性 Prompt 指令)
- [x] 13-04-PLAN.md — 主题标题生成(title 字段、验证、Prompt 指令)
- [x] 13-05-PLAN.md — 中文句边界检测(列举标点符号、语义停顿 Prompt 指令)
- [x] 13-06-PLAN.md — 可扩展策略架构(Strategy Pattern、统一策略实现)
- [x] 13-07-PLAN.md — SRTProcessor 集成(enable_semantic_segmentation 参数、降级策略)
**Plans**: 7 plans (all complete)
### Phase 14: 鲁棒性与成本控制
**Goal**: 提高系统稳定性,实现优雅降级和成本优化
**Depends on**: Phase 13
**Requirements**: ROBUST-01, ROBUST-02, ROBUST-03, ROBUST-04, COST-01, COST-02, COST-03
**Success Criteria** (what must be TRUE):
1. LLM 调用失败时自动降级到简单规则分段,不影响整体流程
2. LLM 响应解析失败时自动重试或降级,有日志记录便于诊断
3. AI 不可用时自动使用简单规则分段,保证基本功能可用
4. 长视频字幕自动分块处理,避免上下文窗口溢出
5. 相同内容使用缓存结果,避免重复 LLM 调用
**Plans**: 6 plans
Plans:
- [x] 14-00-PLAN.md — 测试基础设施(Wave 0)
- [x] 14-01-PLAN.md — LLM 调用失败时的重试和降级策略(ROBUST-01, ROBUST-03)
- [x] 14-02-PLAN.md — LLM 响应解析失败的处理(ROBUST-02, ROBUST-04)
- [x] 14-03-PLAN.md — 智能缓存实现(COST-02)
- [ ] 14-04-PLAN.md — 长文本分块处理(COST-01)(partially implemented in 14-05)
- [x] 14-05-PLAN.md — 集成到 SRTProcessor 和配置开关(COST-03)
**Wave Structure**:
- Wave 0: Plan 00 (测试基础设施)
- Wave 1: Plan 01, 02, 03, 04 (并行执行,无依赖)
- Wave 2: Plan 05 (依赖 Wave 1 所有计划)
**Plans**: 6 plans (all complete)
### Phase 15: 输出优化与兼容性
**Goal**: 优化输出格式,确保向后兼容和可配置性
**Depends on**: Phase 14
**Requirements**: OUTPUT-01, OUTPUT-02, OUTPUT-03, CONFIG-01, CONFIG-02, CONFIG-03
**Success Criteria** (what must be TRUE):
1. 主题/章节分段输出带标题的 Markdown 结构,论点/观点分段输出纯文本
2. 输出格式与现有 SRTProcessor 兼容,不影响其他平台处理
3. LLM 分段功能可通过配置开关启用/禁用
4. 向后兼容,禁用时使用简单规则分段,不破坏现有功能
5. 知乎/文章平台继续使用 AnalyzeProcessor,不受影响
**Plans**: TBD
**Plans**: 4 plans (all complete)
**Delivered:** 基于 LLM 的智能语义分段 — 支持视频类型识别、主题边界检测、标题生成,完全向后兼容
</details>
---
## Progress
**Execution Order:**
Phases execute in numeric order: 1 → 2 → ... → 12 → 13 → 14 → 15
Phases execute in numeric order: 1 → 2 → ... → 15
| Phase | Milestone | Plans Complete | Status | Completed |
|-------|-----------|----------------|--------|-----------|
@@ -232,37 +181,10 @@ Phases execute in numeric order: 1 → 2 → ... → 12 → 13 → 14 → 15
| 10. Proxy Pool | v1.3 | 2/2 | Complete | 2026-03-18 |
| 11. Stealth Fingerprinting | v1.4 | 2/2 | Complete | 2026-03-18 |
| 12. SRT 简化处理器 | v1.5 | 2/2 | Complete | 2026-03-21 |
| 13. 核心 LLM 分段功能 | v1.6 | 7/7 | Complete | 2026-03-22 |
| 14. 鲁棒性与成本控制 | v1.6 | Complete | 2026-03-23 | | 2026-03-23 |
| 15. 输出优化与兼容性 | 3/4 | Complete | 2026-03-23 | - |
| 13. 核心 LLM 分段功能 | v1.6 | 7/7 | Complete | 2026-03-22 |
| 14. 鲁棒性与成本控制 | v1.6 | 6/6 | Complete | 2026-03-23 |
| 15. 输出优化与兼容性 | v1.6 | 4/4 | Complete | 2026-03-23 |
---
## Context
### 技术栈
- Python 3.12+
- Pydantic v2 (数据验证)
- SimpleAIClient (LLM 调用)
- 现有 SemanticSegmenter (扩展点)
### v1.6 关键集成点
- **SemanticSegmentationEngine**: 新模块,负责 LLM 调用和语义分析
- **SRTProcessor**: 扩展现有处理器,添加 LLM 分支
- **Pydantic Schemas**: 严格验证 LLM 输出格式
### 三层 Fallback 策略
1. 直接 JSON 解析(理想情况)
2. Markdown 代码块提取(常见情况)
3. 启发式均匀分段(保底方案)
### 需要避免的陷阱
- **LLM-1**: 上下文窗口溢出 — 实施分块策略
- **LLM-2**: 输出格式不稳定 — 多层 fallback
- **LLM-3**: 边界破坏完整性 — 句边界保护
- **LLM-4**: 分段不一致性 — 温度控制
- **LLM-5**: 成本失控 — 缓存策略
---
*Last updated: 2026-03-22*
*Last updated: 2026-03-23 after v1.6 milestone*