fix: step13 统一使用 12_visualization 目录名

问题: step13_service.py 检查 14_visualization 但 report_word.py
  内部写死使用 12_visualization, 目录名不一致导致新服务报
  '可视化目录不存在'。

修复: step13_service.py 全部 14_visualization → 12_visualization
This commit is contained in:
duxin
2026-07-09 09:25:14 +08:00
parent f496b28c8c
commit d18da41505

View File

@ -7,7 +7,7 @@ Step13 后端计算服务Word 报告生成)
1. 从 ``config`` 字典读取参数;
2. 调用 ``WaterQualityReportGenerator.generate_report`` 把工作目录
下的可视化结果14_visualization 等)拼装成 Word 文档;
下的可视化结果12_visualization 等)拼装成 Word 文档;
3. AI 配置Provider / API Key / Model / Timeout从环境变量读取
与 ``ReportGenerationConfig`` 默认行为完全一致;调用方可在 dispatch
前将 QSettings 内容写入环境变量(如 ``AI_PROVIDER`` / ``MINIMAX_API_KEY``
@ -17,7 +17,7 @@ Step13 后端计算服务Word 报告生成)
execute_step13({
"work_dir": "D:/workspace", # 工作目录(必填)
"output_dir": "D:/workspace/14_visualization", # 输出目录(可省 → work_dir/14_visualization
"output_dir": "D:/workspace/12_visualization", # 输出目录(可省 → work_dir/12_visualization
"report_title": "水质参数反演分析报告", # 报告标题
"enable_ai_analysis": True, # 是否启用 AI 解读
# --- AI 配置(可省;缺省从环境变量 AI_PROVIDER / MINIMAX_API_KEY 等读) ---
@ -60,7 +60,7 @@ def _resolve_output_dir(config: Dict[str, Any], work_dir: str) -> tuple[Path, st
"""根据 output_dir / work_dir 计算 Word 报告输出目录
使用共享解析器强制执行"用户优先"规则——用户指定 output_dir 时直接用其值
step13 的 output_dir 本身就是一个目录),否则用 work_dir/14_visualization 默认。
step13 的 output_dir 本身就是一个目录),否则用 work_dir/12_visualization 默认。
注意step13 与其他步骤不同——output_dir 直接表示目录而非文件路径,
所以使用 Path(user_path) 而非 .parent。
@ -68,7 +68,7 @@ def _resolve_output_dir(config: Dict[str, Any], work_dir: str) -> tuple[Path, st
user_path = get_user_output_path(config, "output_dir", "output_path")
if user_path:
return Path(user_path), "user"
return Path(work_dir) / "14_visualization", "default"
return Path(work_dir) / "12_visualization", "default"
def _apply_ai_env(config: Dict[str, Any]) -> None:
@ -153,7 +153,7 @@ def execute_step13(config: Dict[str, Any]) -> Dict[str, Any]:
"mode": mode,
}
vis_dir = Path(work_dir) / "14_visualization"
vis_dir = Path(work_dir) / "12_visualization"
if not vis_dir.is_dir():
return {
"status": "error",