This repository has been archived on 2026-08-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
kb-skills/.planning/PROJECT.md
T

100 lines
4.0 KiB
Markdown

# kb-skills 工作流重构
## What This Is
一个基于管道模型的知识库内容处理技能体系。将外部链接(B站视频/专栏、知乎问答/专栏)转换为结构化的深度分析报告,支持幂等执行和断点续传。
**使用方式:**
```bash
python3 kb-workflow/kb_workflow.py process "https://www.bilibili.com/video/BVxxx"
```
## Core Value
**可靠、可维护的处理管道** - 每个步骤独立、可验证、可恢复。无论何时失败,都能从断点继续,不会丢失已完成的进度。
## Requirements
### Validated
**v1.0 管道架构 (2026-03-15):**
- ✓ **PIPE-01**: 统一的管道模型 — `kb_pipeline/pipeline.py`
- ✓ **PIPE-02**: 步骤级状态管理 — `WorkflowStateManager`
- ✓ **PIPE-03**: 统一 JSON Schema — `StepInput/StepOutput` schemas
- ✓ **PIPE-04**: 幂等执行保证 — `IdempotencyChecker`
- ✓ **PIPE-05**: 错误恢复策略 — 重试机制 + 降级策略
- ✓ **PIPE-06**: 清晰的流程定义 — 每个处理器有明确的输入/输出
- ✓ **PIPE-07**: Schema 验证机制 — Pydantic 验证
- ✓ **PIPE-08**: 代码结构清晰化 — `kb_pipeline/` 模块化设计
- ✓ **REL-01~03**: 可靠性要求 — 幂等执行、错误恢复、流程定义
- ✓ **VAL-01**: Schema 验证机制
- ✓ **MNT-01~03**: 可维护性要求 — 清晰结构、统一配置、错误处理
- ✓ **PLAT-01~03**: 平台支持 — B站视频/专栏、知乎问答/专栏
**原有技能 (已验证):**
- ✓ B站视频元数据提取 — bilibili_metadata.py
- ✓ B站视频/专栏内容下载 — bilibili_content.py
- ✓ B站字幕下载(官方字幕) — bilibili_content.py
- ✓ 知乎元数据提取 — zhihu_metadata.py
- ✓ 知乎文章/问答内容提取 — zhihu_content.py
- ✓ Whisper 语音识别 — whisper.py
- ✓ 说话者分离 — whisper_diarization.py
- ✓ FunASR 中文语音识别 — funasr_runner.py
- ✓ OCR 文字识别 — ocr_processor.py
- ✓ AI 深度分析 — deep_analyzer.py
### Active
- [ ] **ADV-01**: 进度可见性 — 实时显示工作流执行进度
- [ ] **ADV-02**: 并行步骤执行 — 支持独立步骤的并行执行
- [ ] **ADV-03**: 说话者分离默认启用 — HF_TOKEN 配置后自动使用
- [ ] **EXT-01**: 微信公众号处理 — 支持微信公众号文章
### Out of Scope
- 实时/流式处理 — 批量处理即可
- 并发限制 — 不需要限制并发数量
- 用户界面 — 命令行运行
- 多语言支持 — 中文即可
- 小红书 — 当前不支持
## Context
### 当前架构 (v1.0)
- **核心模块**: `kb_pipeline/` — Pipeline、Processors、Schemas
- **CLI 入口**: `kb-workflow/kb_workflow.py process`
- **平台适配器**: BilibiliAdapter, ZhihuAdapter
- **处理器**: ParseProcessor, DownloadProcessor, ASRProcessor, AnalyzeProcessor
- **测试覆盖**: 单元测试 + E2E 集成测试
### 技术栈
- Python 3.12+
- Pydantic v2 (数据验证)
- asyncio (异步执行)
- pytest (测试框架)
### 技术债务
- 环境变量配置分散 (~/.kb_env, HF_TOKEN, ZHIHU_COOKIE)
- SKILL.md 需要更新为简化的 CLI 使用方式
## Constraints
- **Tech Stack**: Python 3.12+, Pydantic v2
- **Compatibility**: 可破坏性更新
- **Scope**: 只支持 B站和知乎
- **State Granularity**: 步骤级状态管理
## Key Decisions
| Decision | Rationale | Outcome |
|----------|-----------|---------|
| 管道模型 | 每个步骤独立,输入→处理→输出,串联执行 | ✓ Good — 清晰的处理器边界 |
| 步骤级状态 | 记录主要步骤状态,支持断点续传 | ✓ Good — WorkflowStateManager 实现 |
| Schema 验证 | 只验证 JSON Schema,内容正确性由步骤保证 | ✓ Good — Pydantic 验证 |
| 顺序执行 | Pipeline 使用顺序执行而非并行 | ✓ Good — 简单性和可调试性 |
| CLI subparsers | 使用 argparse subparsers 组织命令 | ✓ Good — 可扩展的 CLI 结构 |
| 懒加载导入 | AnalyzeProcessor 懒加载 DeepAnalyzer | ✓ Good — 避免依赖问题 |
---
*Last updated: 2026-03-15 after v1.0 milestone*