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