269 lines
10 KiB
Markdown
269 lines
10 KiB
Markdown
# Roadmap: kb-skills
|
||
|
||
## Milestones
|
||
|
||
- ✅ **v1.0 Pipeline Architecture** - Phases 1-4 (shipped 2026-03-15)
|
||
- ✅ **v1.1 Architecture Refactor** - Phases 5-6 (shipped 2026-03-16)
|
||
- ✅ **v1.2 Zhihu Crawler** - Phases 7-9 (shipped 2026-03-17)
|
||
- ✅ **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)
|
||
|
||
## Phases
|
||
|
||
<details>
|
||
<summary>✅ v1.0 Pipeline Architecture (Phases 1-4) - SHIPPED 2026-03-15</summary>
|
||
|
||
### Phase 1: Foundation
|
||
**Goal**: 项目基础设施和状态管理
|
||
**Plans**: 3 plans
|
||
|
||
Plans:
|
||
- [x] 01-01: WorkflowStateManager 状态管理
|
||
- [x] 01-02: LinkParser URL 解析
|
||
- [x] 01-03: IdempotencyChecker 幂等检查
|
||
|
||
### Phase 2: Adapters
|
||
**Goal**: 平台元数据适配器
|
||
**Plans**: 2 plans
|
||
|
||
Plans:
|
||
- [x] 02-01: BilibiliAdapter B站适配器
|
||
- [x] 02-02: ZhihuAdapter 知乎适配器
|
||
|
||
### Phase 3: Processors
|
||
**Goal**: 管道处理器架构
|
||
**Plans**: 3 plans
|
||
|
||
Plans:
|
||
- [x] 03-01: BaseProcessor 基类
|
||
- [x] 03-02: 具体处理器实现
|
||
- [x] 03-03: Schema 验证
|
||
|
||
### Phase 4: Pipeline
|
||
**Goal**: 处理器编排和 CLI
|
||
**Plans**: 2 plans
|
||
|
||
Plans:
|
||
- [x] 04-01: Pipeline 编排引擎
|
||
- [x] 04-02: CLI process 命令
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary>✅ v1.1 Architecture Refactor (Phases 5-6) - SHIPPED 2026-03-16</summary>
|
||
|
||
### Phase 5: 归档与目录优化
|
||
**Goal**: 统一中间目录结构,添加自动归档步骤,优化最终目录布局
|
||
**Plans**: 3 plans (all complete)
|
||
|
||
### Phase 6: 代码整合
|
||
**Goal**: 将独立的元数据技能和 Pipeline 模块整合进 kb-workflow
|
||
**Plans**: 3 plans (all complete)
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary>✅ v1.2 Zhihu Crawler (Phases 7-9) - SHIPPED 2026-03-17</summary>
|
||
|
||
### Phase 7: 登录认证体系
|
||
**Goal**: 建立知乎登录认证机制,支持二维码扫码和手动 Cookie 两种方式
|
||
**Plans**: 3 plans (all complete)
|
||
|
||
### Phase 8: 内容爬取实现
|
||
**Goal**: 实现知乎问答、专栏/文章、评论的完整爬取功能
|
||
**Plans**: 3 plans (all complete)
|
||
|
||
### Phase 9: Pipeline 整合
|
||
**Goal**: 将新爬虫实现整合进现有 Pipeline 架构
|
||
**Plans**: 1 plan (complete)
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary>✅ v1.3 Proxy Pool (Phase 10) - SHIPPED 2026-03-18</summary>
|
||
|
||
### Phase 10: Proxy Pool (代理池管理)
|
||
**Goal**: 建立代理池基础设施,支持多代理配置、自动轮换和健康检查
|
||
**Requirements**: PROXY-01, PROXY-02, PROXY-03, PROXY-04
|
||
**Plans**: 2 plans (all complete)
|
||
|
||
Plans:
|
||
- [x] 10-01: ProxyPool 核心类实现 — 从 YAML/环境变量加载代理,Round-Robin 轮换
|
||
- [x] 10-02: 健康检查与 ZhihuCrawler 集成 — 被动检测、冷却恢复、代理切换
|
||
|
||
**Key Decisions:**
|
||
- 使用索引指针而非 itertools.cycle 实现轮换
|
||
- 惰性冷却检查而非后台定时器
|
||
- ProxyPool 参数优先于 config.proxy 配置
|
||
|
||
</details>
|
||
|
||
---
|
||
|
||
## ✅ v1.4 Zhihu Anti-Crawler (SHIPPED 2026-03-18)
|
||
|
||
**Milestone Goal:** 绕过知乎反爬检测,让 Playwright 爬虫能正常工作
|
||
|
||
### 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 并验证
|
||
|
||
**Key Decisions:**
|
||
- 使用 playwright-stealth 库进行指纹伪装
|
||
- stealth_config=None 表示默认启用 stealth (向后兼容)
|
||
- launch 时添加 --disable-blink-features=AutomationControlled 参数
|
||
|
||
---
|
||
|
||
<details>
|
||
<summary>✅ v1.5 B站字幕简化处理 (Phase 12) - SHIPPED 2026-03-21</summary>
|
||
|
||
### Phase 12: SRT 简化处理器
|
||
**Goal**: 实现 SRT 字幕处理,生成简化的 Markdown 文档,保留元数据和标签,移除深度分析
|
||
**Plans**: 2 plans (all complete)
|
||
|
||
Plans:
|
||
- [x] 12-01: SRT 处理模块(parser、segmenter、corrector)和 SRTProcessor 实现
|
||
- [x] 12-02: Pipeline 集成、平台路由、测试验证
|
||
|
||
**Key Decisions:**
|
||
- SRT 处理模块独立于 DeepAnalyzer,位于 kb_workflow/srt/
|
||
- 语义分段基于简单规则(时间间隔 + 长度限制),不依赖 LLM
|
||
- ASR 纠错可选,AI 不可用时返回原文
|
||
- B 站视频使用 SRTProcessor,知乎/文章继续使用 AnalyzeProcessor
|
||
|
||
</details>
|
||
|
||
---
|
||
|
||
## 🔄 v1.6 语义分段改进 (IN PROGRESS)
|
||
|
||
**Milestone Goal:** 使用 LLM 实现智能语义分段,识别视频类型并适配分段策略,保持内容完整性
|
||
|
||
### 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 参数、降级策略)
|
||
|
||
### 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 所有计划)
|
||
|
||
### 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
|
||
|
||
---
|
||
|
||
## Progress
|
||
|
||
**Execution Order:**
|
||
Phases execute in numeric order: 1 → 2 → ... → 12 → 13 → 14 → 15
|
||
|
||
| Phase | Milestone | Plans Complete | Status | Completed |
|
||
|-------|-----------|----------------|--------|-----------|
|
||
| 1. Foundation | v1.0 | 3/3 | Complete | 2026-03-15 |
|
||
| 2. Adapters | v1.0 | 2/2 | Complete | 2026-03-15 |
|
||
| 3. Processors | v1.0 | 3/3 | Complete | 2026-03-15 |
|
||
| 4. Pipeline | v1.0 | 2/2 | Complete | 2026-03-15 |
|
||
| 5. 归档与目录优化 | v1.1 | 3/3 | Complete | 2026-03-16 |
|
||
| 6. 代码整合 | v1.1 | 3/3 | Complete | 2026-03-16 |
|
||
| 7. 登录认证体系 | v1.2 | 3/3 | Complete | 2026-03-17 |
|
||
| 8. 内容爬取实现 | v1.2 | 3/3 | Complete | 2026-03-17 |
|
||
| 9. Pipeline 整合 | v1.2 | 1/1 | Complete | 2026-03-17 |
|
||
| 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 | - |
|
||
|
||
---
|
||
|
||
## 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*
|