feat(14-05): integrate cache into SRTProcessor

- Add enable_cache parameter to SRTProcessor.__init__()
- Create SemanticCache instance when semantic segmentation is enabled
- Pass cache to UnifiedSegmentationStrategy through SemanticSegmentationEngine
- Add logging for cache status (enabled/disabled)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-23 22:40:47 +08:00
parent faff7903a4
commit bb321d9cd4
+15 -4
View File
@@ -49,7 +49,8 @@ class SRTProcessor(BaseProcessor):
self, self,
state_manager: Optional[WorkflowStateManager] = None, state_manager: Optional[WorkflowStateManager] = None,
enable_correction: bool = True, enable_correction: bool = True,
enable_semantic_segmentation: bool = False enable_semantic_segmentation: bool = False,
enable_cache: bool = True
): ):
"""初始化 SRT 处理器 """初始化 SRT 处理器
@@ -57,6 +58,7 @@ class SRTProcessor(BaseProcessor):
state_manager: 状态管理器 state_manager: 状态管理器
enable_correction: 是否启用 ASR 纠错(默认 True) enable_correction: 是否启用 ASR 纠错(默认 True)
enable_semantic_segmentation: 是否启用 LLM 语义分段(默认 False) enable_semantic_segmentation: 是否启用 LLM 语义分段(默认 False)
enable_cache: 是否启用缓存(默认 True,仅在启用语义分段时有效)
""" """
super().__init__(state_manager) super().__init__(state_manager)
self.enable_correction = enable_correction self.enable_correction = enable_correction
@@ -74,10 +76,19 @@ class SRTProcessor(BaseProcessor):
# 创建 AI 客户端 # 创建 AI 客户端
ai_client = SimpleAIClient() ai_client = SimpleAIClient()
if ai_client.api_key: if ai_client.api_key:
# 创建统一策略,传入 AI 客户端 # 初始化缓存
strategy = UnifiedSegmentationStrategy(ai_client=ai_client) cache = None
if enable_cache:
from kb_workflow.srt.cache import SemanticCache
cache = SemanticCache()
# 创建统一策略,传入 AI 客户端和缓存
strategy = UnifiedSegmentationStrategy(
ai_client=ai_client,
cache=cache
)
self.segmenter = SemanticSegmentationEngine(strategy=strategy) self.segmenter = SemanticSegmentationEngine(strategy=strategy)
logger.info("Semantic segmentation enabled") logger.info(f"Semantic segmentation enabled (cache={'enabled' if cache else 'disabled'})")
else: else:
logger.info("AI API key not configured, using rule-based segmenter") logger.info("AI API key not configured, using rule-based segmenter")
self.segmenter = SemanticSegmenter() self.segmenter = SemanticSegmenter()