docs(15-01): complete enable_semantic_segmentation config integration plan
This commit is contained in:
@@ -65,7 +65,7 @@
|
||||
|
||||
### 配置与兼容性 (CONFIG)
|
||||
|
||||
- [ ] **CONFIG-01**: LLM 分段功能可通过配置启用/禁用
|
||||
- [x] **CONFIG-01**: LLM 分段功能可通过配置启用/禁用
|
||||
- [ ] **CONFIG-02**: 向后兼容,不破坏现有简单规则分段
|
||||
- [ ] **CONFIG-03**: 知乎/文章平台继续使用 AnalyzeProcessor,不受影响
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
| OUTPUT-01 | Phase 15 | Pending |
|
||||
| OUTPUT-02 | Phase 15 | Pending |
|
||||
| OUTPUT-03 | Phase 15 | Pending |
|
||||
| CONFIG-01 | Phase 15 | Pending |
|
||||
| CONFIG-01 | Phase 15 | Complete |
|
||||
| CONFIG-02 | Phase 15 | Pending |
|
||||
| CONFIG-03 | Phase 15 | Pending |
|
||||
|
||||
|
||||
@@ -234,7 +234,7 @@ Phases execute in numeric order: 1 → 2 → ... → 12 → 13 → 14 → 15
|
||||
| 12. SRT 简化处理器 | v1.5 | 2/2 | Complete | 2026-03-21 |
|
||||
| 13. 核心 LLM 分段功能 | v1.6 | 7/7 | Complete | 2026-03-22 |
|
||||
| 14. 鲁棒性与成本控制 | v1.6 | Complete | 2026-03-23 | | 2026-03-23 |
|
||||
| 15. 输出优化与兼容性 | v1.6 | 0/0 | Not started | - |
|
||||
| 15. 输出优化与兼容性 | 1/4 | In Progress| | - |
|
||||
|
||||
---
|
||||
|
||||
|
||||
+16
-15
@@ -3,15 +3,15 @@ gsd_state_version: 1.0
|
||||
milestone: v1.4
|
||||
milestone_name: Zhihu Anti-Crawler
|
||||
status: executing
|
||||
stopped_at: Phase 15 context gathered
|
||||
last_updated: "2026-03-23T14:48:53.206Z"
|
||||
last_activity: 2026-03-23 — Phase 14 Plan 04 completed (long text chunking)
|
||||
stopped_at: Completed 15-01-PLAN.md (enable_semantic_segmentation config integration)
|
||||
last_updated: "2026-03-23T15:02:04.579Z"
|
||||
last_activity: 2026-03-23 — Phase 15 Plan 01 completed (enable_semantic_segmentation config integration)
|
||||
progress:
|
||||
total_phases: 15
|
||||
completed_phases: 12
|
||||
total_plans: 44
|
||||
completed_plans: 43
|
||||
percent: 34
|
||||
total_plans: 48
|
||||
completed_plans: 44
|
||||
percent: 92
|
||||
---
|
||||
|
||||
# Project State
|
||||
@@ -25,15 +25,15 @@ See: .planning/PROJECT.md (updated 2026-03-21)
|
||||
|
||||
## Current Position
|
||||
|
||||
Phase: Phase 14 - 鲁棒性与成本控制
|
||||
Plan: 04 (completed)
|
||||
Phase: Phase 15 - 输出优化与兼容性
|
||||
Plan: 01 (completed)
|
||||
Status: In progress
|
||||
Last activity: 2026-03-23 — Phase 14 Plan 04 completed (long text chunking)
|
||||
Last activity: 2026-03-23 — Phase 15 Plan 01 completed (enable_semantic_segmentation config integration)
|
||||
|
||||
Progress: [██░░░░░░░░░] 34% (Phase 14/15, 4/6 plans complete)
|
||||
Progress: [█████████░] 92% (Phase 15/15, 1/4 plans complete)
|
||||
|
||||
### Phase 14 Goal
|
||||
提高 LLM 语义分段的稳定性和成本效率,实现智能缓存和优雅降级
|
||||
### Phase 15 Goal
|
||||
优化输出格式并确保配置开关和向后兼容性
|
||||
|
||||
### Phase 13 Requirements (18 total)
|
||||
- VIDEO-01, VIDEO-02, VIDEO-03 (视频类型识别) ✅
|
||||
@@ -154,12 +154,13 @@ None.
|
||||
| 14 | 02 | ~220min | 1 | 2 | 2026-03-23 |
|
||||
| 14 | 03 | ~72min | 1 | 3 | 2026-03-23 |
|
||||
| 14 | 05 | ~25min | 2 | 3 | 2026-03-23 |
|
||||
| Phase 15-output-compat P01 | 54 | 1 tasks | 2 files |
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-03-23T14:48:53.204Z
|
||||
Stopped at: Phase 15 context gathered
|
||||
Resume file: .planning/phases/15-output-compat/15-CONTEXT.md
|
||||
Last session: 2026-03-23T15:02:04.577Z
|
||||
Stopped at: Completed 15-01-PLAN.md (enable_semantic_segmentation config integration)
|
||||
Resume file: None
|
||||
|
||||
**Next step:** Phase 14 Plan 04 (分块处理) may need completion, or continue to Phase 15 (优化)
|
||||
|
||||
|
||||
@@ -0,0 +1,164 @@
|
||||
---
|
||||
phase: 15-output-compat
|
||||
plan: 01
|
||||
subsystem: configuration
|
||||
tags: [config, llm-segmentation, pydantic-settings, tdd]
|
||||
dependency_graph:
|
||||
requires: []
|
||||
provides: [enable_semantic_segmentation-config]
|
||||
affects: [srt-processor-integration]
|
||||
tech_stack:
|
||||
added: []
|
||||
patterns: [pydantic-settings, tdd, boolean-env-parsing]
|
||||
key_files:
|
||||
created: []
|
||||
modified: [kb_workflow/pipeline/config.py, tests/test_pipeline/test_config.py]
|
||||
decisions: []
|
||||
metrics:
|
||||
duration: 54s
|
||||
completed_date: 2026-03-23T15:01:37Z
|
||||
---
|
||||
|
||||
# Phase 15 Plan 01: enable_semantic_segmentation 配置集成 Summary
|
||||
|
||||
为 KBSettings 添加 `enable_semantic_segmentation` 字段,允许用户通过环境变量或 `~/.kb_env` 文件控制 LLM 语义分段功能。
|
||||
|
||||
## One-Liner
|
||||
|
||||
Pydantic settings 集成 - 添加 `enable_semantic_segmentation` 布尔配置字段(默认 True),支持环境变量 `KB_ENABLE_SEMANTIC_SEGMENTATION` 覆盖。
|
||||
|
||||
## Completed Tasks
|
||||
|
||||
| Task | Name | Commit | Files |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| 1 | 添加 enable_semantic_segmentation 字段到 KBSettings | f2a1847, 8303cea | kb_workflow/pipeline/config.py, tests/test_pipeline/test_config.py |
|
||||
|
||||
## Implementation Details
|
||||
|
||||
### KBSettings 字段添加
|
||||
|
||||
在 `kb_workflow/pipeline/config.py` 的 `KBSettings` 类中添加新字段:
|
||||
|
||||
```python
|
||||
# 工作流行为配置
|
||||
enable_semantic_segmentation: bool = Field(
|
||||
default=True,
|
||||
description="启用 LLM 语义分段(默认启用)"
|
||||
)
|
||||
```
|
||||
|
||||
**字段位置:** 在 `overwrite_archives` 字段之后,保持配置分类清晰。
|
||||
|
||||
### 测试实现 (TDD)
|
||||
|
||||
**RED 阶段:**
|
||||
- 提交 `f2a1847`: 添加 4 个失败测试
|
||||
- `test_kbsettings_has_enable_semantic_segmentation_field`: 验证字段存在性和类型
|
||||
- `test_enable_semantic_segmentation_default_value`: 验证默认值为 True
|
||||
- `test_enable_semantic_segmentation_from_env`: 验证环境变量覆盖
|
||||
- `test_enable_semantic_segmentation_boolean_parsing`: 验证多种布尔字符串解析
|
||||
|
||||
**GREEN 阶段:**
|
||||
- 提交 `8303cea`: 实现字段定义,所有测试通过
|
||||
- 运行验证:`pytest tests/test_pipeline/test_config.py::TestEnableSemanticSegmentationField -x -v`
|
||||
- 结果:4 个测试全部通过
|
||||
|
||||
### 环境变量解析
|
||||
|
||||
Pydantic-settings 自动支持以下布尔字符串表示(通过 `bool` 类型自动解析):
|
||||
|
||||
**True 值:**
|
||||
- `"true"`, `"True"`, `"TRUE"`
|
||||
- `"yes"`, `"y"`
|
||||
- `"1"`
|
||||
|
||||
**False 值:**
|
||||
- `"false"`, `"False"`, `"FALSE"`
|
||||
- `"no"`, `"n"`
|
||||
- `"0"`
|
||||
|
||||
### 配置方式
|
||||
|
||||
用户可通过以下方式控制语义分段功能:
|
||||
|
||||
1. **环境变量:**
|
||||
```bash
|
||||
export KB_ENABLE_SEMANTIC_SEGMENTATION=true
|
||||
```
|
||||
|
||||
2. **~/.kb_env 文件:**
|
||||
```
|
||||
KB_ENABLE_SEMANTIC_SEGMENTATION=false
|
||||
```
|
||||
|
||||
3. **代码覆盖(用于测试):**
|
||||
```python
|
||||
settings = KBSettings(
|
||||
base_path="/tmp/kb",
|
||||
archive_path="/tmp/archive",
|
||||
enable_semantic_segmentation=False
|
||||
)
|
||||
```
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
### Auto-fixed Issues
|
||||
|
||||
None - plan executed exactly as written.
|
||||
|
||||
## Auth Gates
|
||||
|
||||
None.
|
||||
|
||||
## Requirements Satisfied
|
||||
|
||||
- **CONFIG-01**: LLM 分段功能可通过配置启用/禁用 ✅
|
||||
- `enable_semantic_segmentation` 字段存在,类型为 `bool`
|
||||
- 默认值为 `True`(启用语义分段)
|
||||
- 支持环境变量 `KB_ENABLE_SEMANTIC_SEGMENTATION` 覆盖
|
||||
- Pydantic 自动解析布尔字符串(true/false, yes/no, 1/0)
|
||||
|
||||
## Verification Results
|
||||
|
||||
### Automated Tests
|
||||
|
||||
```
|
||||
pytest tests/test_pipeline/test_config.py::TestEnableSemanticSegmentationField -x -v
|
||||
|
||||
tests/test_pipeline/test_config.py::TestEnableSemanticSegmentationField::test_kbsettings_has_enable_semantic_segmentation_field PASSED [ 25%]
|
||||
tests/test_pipeline/test_config.py::TestEnableSemanticSegmentationField::test_enable_semantic_segmentation_default_value PASSED [ 50%]
|
||||
tests/test_pipeline/test_config.py::TestEnableSemanticSegmentationField::test_enable_semantic_segmentation_from_env PASSED [ 75%]
|
||||
tests/test_pipeline/test_config.py::TestEnableSemanticSegmentationField::test_enable_semantic_segmentation_boolean_parsing PASSED [100%]
|
||||
|
||||
4 passed in 0.29s
|
||||
```
|
||||
|
||||
### Full Test Suite
|
||||
|
||||
```
|
||||
pytest tests/test_pipeline/test_config.py -v
|
||||
|
||||
18 passed in 0.32s
|
||||
```
|
||||
|
||||
所有现有测试继续通过,无破坏性变更。
|
||||
|
||||
## Next Steps
|
||||
|
||||
计划 15-02 将集成此配置到 SRTProcessor,使 `enable_semantic_segmentation` 从 `KBSettings` 读取而非硬编码默认值。
|
||||
|
||||
## Self-Check: PASSED
|
||||
|
||||
- [x] 所有修改的文件存在
|
||||
- [x] 所有提交已创建(f2a1847, 8303cea)
|
||||
- [x] 所有测试通过(18/18)
|
||||
- [x] 配置字段类型和默认值正确
|
||||
- [x] 环境变量解析符合预期
|
||||
- [x] 无破坏性变更
|
||||
|
||||
---
|
||||
|
||||
*Phase: 15-output-compat, Plan: 01*
|
||||
*Completed: 2026-03-23T15:01:37Z*
|
||||
*Duration: 54s*
|
||||
*TDD Methodology: RED → GREEN → (no refactor needed)*
|
||||
Reference in New Issue
Block a user