6.5 KiB
6.5 KiB
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 |
|
|
true |
|
|
目的:提供策略架构支持未来扩展(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.mdUser 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>
- SegmentationStrategy Protocol 定义完成
- UnifiedSegmentationStrategy 实现完成
- SemanticSegmentationEngine 使用策略接口
- 测试验证策略可扩展性 </success_criteria>