This commit is contained in:
+21
-99
@@ -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*
|
||||
|
||||
Reference in New Issue
Block a user