规范 UI 语义建议错误提示

将 LLM 缺少工具调用、参数解析和结果校验失败统一标记为响应无效

保留详细校验原因供排障
This commit is contained in:
2026-08-18 13:54:31 +08:00
parent 8f4f07f05f
commit d04b79501e
@@ -191,17 +191,17 @@ pub(crate) async fn suggest_ui_design_semantic_impl(
.find(|call| call.name == "suggest_ui_design_semantics")
.ok_or_else(|| {
eprintln!("ui_design_suggestion.error stage=parse_tool_call reason=missing_tool_call");
"LLM 未返回 suggest_ui_design_semantics 工具调用".to_string()
"LLM 响应无效(详情:未返回 suggest_ui_design_semantics 工具调用".to_string()
})?;
let suggestions = serde_json::from_str::<UIDesignSuggestion>(&call.arguments)
.map_err(|error| {
eprintln!("ui_design_suggestion.error stage=parse_arguments error={error}");
format!("UI 语义建议工具参数无效:{error}")
format!("LLM 响应无效(详情:UI 语义建议工具参数无效:{error}")
})?
.ui_designs;
validate_suggestions(&suggestions, &ids).map_err(|error| {
eprintln!("ui_design_suggestion.error stage=validate_result error={error}");
error
format!("LLM 响应无效(详情:{error}")
})?;
// TODO: future single-page policy may reject multiple Page suggestions.
Ok(suggestions)