This commit is contained in:
+65
-18
@@ -1,23 +1,31 @@
|
||||
# kb-skills 工作流重构
|
||||
|
||||
## Current Milestone: v1.6 语义分段改进
|
||||
## Current State: v1.6 Shipped (2026-03-23)
|
||||
|
||||
**Goal:** 使用 LLM 语义分析实现智能分段,解决当前基于时间+长度规则的问题
|
||||
**v1.6 语义分段改进** 已交付 — 使用 LLM 语义分析实现智能分段
|
||||
|
||||
**目标特性:**
|
||||
- LLM 语义分析 — 识别视频类型并适配分段策略
|
||||
- 主题/章节识别 — 自动识别并添加标题
|
||||
- 论点/观点分段 — 保持内容完整性
|
||||
- 内容变化边界 — 自然分段位置
|
||||
- 通用自适应 — 支持各种类型视频
|
||||
**已交付特性:**
|
||||
- ✓ SemanticSegmentationEngine — 基于 LLM 的语义分段引擎
|
||||
- ✓ 视频类型识别 — 知识类/故事类/访谈类/新闻类/vlog
|
||||
- ✓ 主题边界检测 — 语义分析识别话题转换点
|
||||
- ✓ 主题标题生成 — 为章节/主题分段生成标题
|
||||
- ✓ 内容完整性保护 — 句边界、论点完整性、并列结构
|
||||
- ✓ 中文句边界检测 — 基于语义停顿
|
||||
- ✓ 可扩展策略架构 — Strategy Pattern
|
||||
- ✓ 三层 Fallback — JSON → Markdown → 启发式
|
||||
- ✓ 优雅降级 — LLM 失败降级到规则分段
|
||||
- ✓ 智能缓存 — 基于内容
|
||||
- ✓ 长文本分块 — 避免上下文窗口溢出
|
||||
- ✓ 配置开关 — `KB_ENABLE_SEMANTIC_SEGMENTATION`
|
||||
- ✓ 向后兼容 — 禁用时使用规则分段
|
||||
|
||||
### Active
|
||||
|
||||
- [ ] **语义分段改进** — 使用 LLM 替代简单规则,实现智能分段
|
||||
- [ ] **视频类型识别** — 自动判断视频类型(知识类、故事类、对话类等)
|
||||
- [ ] **主题识别与标题** — 识别主题章节并生成标题
|
||||
- [ ] **内容完整性** — 保持话题/论点的完整性,避免错误截断
|
||||
- [ ] **自然分段边界** — 在句子/段落边界处分段
|
||||
(无 — 下一里程碑规划待定)
|
||||
|
||||
### Next Milestone Goals
|
||||
|
||||
(待规划 — 运行 `/gsd:new-milestone` 开始)
|
||||
|
||||
## Previous Milestones
|
||||
|
||||
@@ -58,6 +66,39 @@ python3 kb-workflow/kb_workflow.py process "https://www.bilibili.com/video/BVxxx
|
||||
|
||||
### Validated
|
||||
|
||||
**v1.6 语义分段改进 (2026-03-23):**
|
||||
- ✓ **VIDEO-01**: 视频类型识别 — 知识类/故事类/访谈类/新闻类/vlog
|
||||
- ✓ **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**: 多策略支持 — 至少 2 种分段策略
|
||||
- ✓ **STRAT-02**: 自动适配 — 不同类型适配对应策略
|
||||
- ✓ **STRAT-03**: 可扩展 — 便于未来添加新类型
|
||||
- ✓ **ROBUST-01**: LLM 调用失败降级 — 自动降级到规则分段
|
||||
- ✓ **ROBUST-02**: 解析失败降级 — 自动降级到规则分段
|
||||
- ✓ **ROBUST-03**: AI 不可用降级 — 自动使用规则分段
|
||||
- ✓ **ROBUST-04**: 日志记录 — 降级过程有日志
|
||||
- ✓ **COST-01**: 长文本分块 — 避免上下文窗口溢出
|
||||
- ✓ **COST-02**: 智能缓存 — 相同内容不重复调用
|
||||
- ✓ **OUTPUT-01**: 标题 Markdown 结构 — 主题/章节带标题
|
||||
- ✓ **OUTPUT-02**: 纯文本输出 — 论点/观点不加标题
|
||||
- ✓ **OUTPUT-03**: 输出兼容 — 与现有 SRTProcessor 兼容
|
||||
- ✓ **CONFIG-01**: 配置开关 — 可通过配置启用/禁用
|
||||
- ✓ **CONFIG-02**: 向后兼容 — 不破坏现有规则分段
|
||||
- ✓ **CONFIG-03**: AnalyzeProcessor 独立 — 知乎/文章不受影响
|
||||
|
||||
**v1.5 B站字幕简化处理 (2026-03-21):**
|
||||
- ✓ **SRT-01**: SRT 字幕解析 — 读取 SRT 文件,提取纯文本和时间戳
|
||||
- ✓ **SRT-02**: 去除时间戳 — 移除时间码,保留字幕文本
|
||||
@@ -154,13 +195,15 @@ python3 kb-workflow/kb_workflow.py process "https://www.bilibili.com/video/BVxxx
|
||||
|
||||
## Context
|
||||
|
||||
### 当前架构 (v1.5)
|
||||
### 当前架构 (v1.6)
|
||||
- **核心模块**: `kb_workflow/` — Pipeline, Processors, Schemas
|
||||
- **SRT 处理**: `kb_workflow/srt/` — parser, segmenter, corrector
|
||||
- **SRT 处理**: `kb_workflow/srt/` — parser, segmenter, corrector, semantic_engine
|
||||
- **语义分段**: SemanticSegmentationEngine — LLM 驱动的智能分段
|
||||
- **CLI 入口**: `kb-workflow/kb_workflow.py process`
|
||||
- **平台适配器**: BilibiliAdapter, ZhihuAdapter
|
||||
- **处理器**: ParseProcessor, DownloadProcessor, SRTProcessor, AnalyzeProcessor
|
||||
- **测试覆盖**: 单元测试 + E2E 集成测试
|
||||
- **测试覆盖**: 76/76 测试通过 (100%)
|
||||
- **配置**: KBSettings.enable_semantic_segmentation (默认 True)
|
||||
|
||||
### 技术栈
|
||||
- Python 3.12+
|
||||
@@ -196,10 +239,14 @@ python3 kb-workflow/kb_workflow.py process "https://www.bilibili.com/video/BVxxx
|
||||
| playwright-stealth | 使用外部库实现指纹伪装 | ✓ Good — 成熟方案,活跃维护 |
|
||||
| stealth 默认启用 | stealth_config=None 时默认启用 | ✓ Good — 向后兼容,无需修改现有代码 |
|
||||
| SRT 独立模块 | SRT 处理独立于 DeepAnalyzer,位于 kb_workflow/srt/ | ✓ Good — 职责分离 |
|
||||
| LLM 语义分段 | 使用 LLM 分析内容语义,实现智能分段 | — Pending — v1.6 目标 |
|
||||
| LLM 语义分段 | 使用 LLM 分析内容语义,实现智能分段 | ✓ Good — v1.6 已交付 |
|
||||
| 视频类型推断 | 从元数据关键词推断类型,而非每个类型单独策略 | ✓ Good — 简化实现 |
|
||||
| 三层 Fallback | JSON 解析 → Markdown 提取 → 启发式分段 | ✓ Good — 健壮的输出解析 |
|
||||
| 智能缓存 | 基于内容的 LLM 结果缓存 | ✓ Good — 避免重复调用 |
|
||||
| 配置优先级 | 参数 > KBSettings > 默认值 | ✓ Good — 灵活性 |
|
||||
| ASR 纠错可选 | AI 不可用时返回原文 | ✓ Good — 降级策略 |
|
||||
| 平台路由 | B站视频使用 SRTProcessor,其他使用 AnalyzeProcessor | ✓ Good — 灵活性 |
|
||||
| disable_reasoning 参数 | ASR 纠错禁用思考模式获得直接结果 | ✓ Good — 避免 AI 分析过程输出 |
|
||||
|
||||
---
|
||||
*Last updated: 2026-03-21 after starting v1.6 milestone*
|
||||
*Last updated: 2026-03-23 after completing v1.6 milestone*
|
||||
|
||||
Reference in New Issue
Block a user