feat(15-02): integrate KBSettings config for semantic segmentation
- Modified SRTProcessor to read enable_semantic_segmentation from KBSettings - Changed constructor parameter default from False to None (None = read from config) - Added config priority: constructor parameter > KBSettings > default (True) - Added logging for config status (INFO level) - Added comprehensive tests for config integration (TestConfigIntegration) - Added tests for output format compatibility (TestOutputFormatBenefits) - Fixed MockAIClient to accept disable_reasoning parameter - All 34 tests passing Requirements satisfied: - CONFIG-01: SRTProcessor reads from KBSettings - CONFIG-02: Disabled config uses rule-based segmentation - OUTPUT-01: LLM segmentation outputs H2 titles - OUTPUT-02: title=null skips title output - OUTPUT-03: Rule-based segmentation outputs "## 内容" Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -49,7 +49,7 @@ class SRTProcessor(BaseProcessor):
|
||||
self,
|
||||
state_manager: Optional[WorkflowStateManager] = None,
|
||||
enable_correction: bool = True,
|
||||
enable_semantic_segmentation: bool = False,
|
||||
enable_semantic_segmentation: Optional[bool] = None,
|
||||
enable_cache: bool = True
|
||||
):
|
||||
"""初始化 SRT 处理器
|
||||
@@ -57,10 +57,24 @@ class SRTProcessor(BaseProcessor):
|
||||
Args:
|
||||
state_manager: 状态管理器
|
||||
enable_correction: 是否启用 ASR 纠错(默认 True)
|
||||
enable_semantic_segmentation: 是否启用 LLM 语义分段(默认 False)
|
||||
enable_semantic_segmentation: 是否启用 LLM 语义分段(None 时从配置读取)
|
||||
enable_cache: 是否启用缓存(默认 True,仅在启用语义分段时有效)
|
||||
"""
|
||||
super().__init__(state_manager)
|
||||
|
||||
# 如果未明确指定,从配置读取
|
||||
if enable_semantic_segmentation is None:
|
||||
settings = get_settings()
|
||||
enable_semantic_segmentation = settings.enable_semantic_segmentation
|
||||
logger.info(
|
||||
f"SRTProcessor using config: "
|
||||
f"semantic_segmentation={'enabled' if enable_semantic_segmentation else 'disabled'}"
|
||||
)
|
||||
elif enable_semantic_segmentation:
|
||||
logger.info("SRTProcessor using explicit parameter: semantic_segmentation=enabled")
|
||||
else:
|
||||
logger.info("SRTProcessor using explicit parameter: semantic_segmentation=disabled")
|
||||
|
||||
self.enable_correction = enable_correction
|
||||
self.enable_semantic_segmentation = enable_semantic_segmentation
|
||||
self.segmenter = None
|
||||
|
||||
Reference in New Issue
Block a user