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/phases/13-llm/13-06-PLAN.md
T

6.5 KiB
Raw Blame History

phase, plan, type, wave, depends_on, files_modified, autonomous, requirements, must_haves
phase plan type wave depends_on files_modified autonomous requirements must_haves
13 06 execute 2
13-01
13-02
13-03
13-04
13-05
kb_workflow/srt/semantic_engine.py
tests/test_semantic_engine.py
true
STRAT-01
STRAT-02
STRAT-03
truths artifacts key_links
系统提供可扩展的分段策略架构
Phase 13 实现统一策略(用户决策:无类型区分)
策略架构支持未来添加新策略(扩展性)
path provides min_lines exports
kb_workflow/srt/semantic_engine.py 可扩展的策略架构(Strategy Pattern 预留) 300
SemanticSegmentationEngine
SegmentationStrategy
path provides min_lines
tests/test_semantic_engine.py 策略扩展性测试 50
from to via pattern
SegmentationStrategy SemanticSegmentationEngine 策略模式架构 class.*Strategy.*segment
from to via pattern
tests SegmentationStrategy 验证策略可扩展性 test.*strategy.*extensibility
实现可扩展的分段策略架构

目的:提供策略架构支持未来扩展(Phase 13 实现统一策略,遵守用户决策) 输出:SegmentationStrategy 接口,统一策略实现

<execution_context> @/home/starmen1265/.claude/get-shit-done/workflows/execute-plan.md @/home/starmen1265/.claude/get-shit-done/templates/summary.md </execution_context>

@.planning/phases/13-llm/13-CONTEXT.md @.planning/phases/13-llm/13-RESEARCH.md

User Decision (Locked)

  • 视频类型策略: 无类型区分 — 使用统一的分段 Prompt,不针对不同视频类型(知识类/故事类/教程类)设计不同策略

Research Document

Open Question 3: STRAT-01/STRAT-02/STRAT-03 需求的边界 Recommendation: 在代码结构上预留策略扩展接口(Strategy Pattern),但 Phase 13 只实现统一策略

分段策略架构 kb_workflow/srt/semantic_engine.py, tests/test_semantic_engine.py 架构设计(研究文档建议): - 预留 Strategy Pattern 接口(SegmentationStrategy) - Phase 13 实现统一策略(UnifiedSegmentationStrategy) - 支持未来添加知识类/故事类等特定策略
Phase 13 实现(遵守用户决策):
- 统一策略适用于所有视频类型
- 视频类型仅用于 Prompt 上下文,不改变分段策略

测试验证:
- 策略接口可扩展
- 统一策略适用于所有视频类型
在 semantic_engine.py 中: 1. 定义 SegmentationStrategy Protocol(接口) 2. 实现 UnifiedSegmentationStrategy(统一策略) 3. SemanticSegmentationEngine 使用策略接口
测试:
1. test_strategy_selection() - 验证策略选择
2. test_strategy_extensibility() - 验证策略可扩展性
Task 1: 实现可扩展策略架构 kb_workflow/srt/semantic_engine.py, tests/test_semantic_engine.py 在 semantic_engine.py 中实现策略架构:
  1. 定义 SegmentationStrategy Protocol:
     ```python
     from typing import Protocol, List
     from kb_workflow.srt.parser import Segment

     class SegmentationStrategy(Protocol):
         """分段策略接口"""

         def segment(
             self,
             segments: List[Segment],
             metadata: dict
         ) -> List[str]:
             """对字幕分段进行语义分段

             Args:
                 segments: 字幕分段列表
                 metadata: 视频元数据

             Returns:
                 段落文本列表
             """
             ...
     ```

  2. 实现 UnifiedSegmentationStrategy(统一策略):
     ```python
     class UnifiedSegmentationStrategy:
         """统一分段策略

         适用于所有视频类型(知识类、故事类、访谈类等)。
         视频类型仅用于 Prompt 上下文,不改变分段策略。

         遵守用户决策:无类型区分,使用统一 Prompt。
         """

         def __init__(self, ai_client: Optional[AIClientProtocol] = None):
             self.ai_client = ai_client
             # Lazy initialization...

         def segment(
             self,
             segments: List[Segment],
             metadata: dict
         ) -> List[str]:
             # 调用 LLM 进行语义分段
             # 使用统一的 SEGMENTATION_PROMPT
             ...
     ```

  3. 更新 SemanticSegmentationEngine:
     ```python
     class SemanticSegmentationEngine:
         def __init__(
             self,
             strategy: Optional[SegmentationStrategy] = None,
             fallback_segmenter: Optional['SemanticSegmenter'] = None
         ):
             # 默认使用统一策略
             self.strategy = strategy or UnifiedSegmentationStrategy()
             self.fallback_segmenter = fallback_segmenter or SemanticSegmenter()

         def segment(
             self,
             segments: List[Segment],
             metadata: dict
         ) -> List[str]:
             return self.strategy.segment(segments, metadata)
     ```

  测试验证:
  - 策略接口可扩展(可实现新策略)
  - 统一策略适用于所有视频类型
  - 策略切换不影响功能
</action>
<verify>
  <automated>pytest tests/test_semantic_engine.py::test_strategy_extensibility -x</automated>
</verify>
<done>
  - SegmentationStrategy Protocol 定义完成
  - UnifiedSegmentationStrategy 实现完成
  - SemanticSegmentationEngine 使用策略接口
  - 测试验证策略可扩展性
</done>
- pytest tests/test_semantic_engine.py -v 相关测试通过 - 策略接口清晰(Protocol 定义) - 统一策略符合用户决策(无类型区分) - 架构支持未来扩展

<success_criteria>

  1. SegmentationStrategy Protocol 定义完成
  2. UnifiedSegmentationStrategy 实现完成
  3. SemanticSegmentationEngine 使用策略接口
  4. 测试验证策略可扩展性 </success_criteria>
After completion, create `.planning/phases/13-llm/13-06-SUMMARY.md`