区分语义建议工具调用缺失错误

恢复缺失工具调用的独立日志阶段和提示
This commit is contained in:
2026-09-18 16:23:27 +08:00
parent 0988c4907a
commit 899a591cda
@@ -1,8 +1,8 @@
use crate::config::build_game_creator_llm_client_from_llm_config;
use crate::config::load_game_creator_app_config;
use crate::ui_editor::commands::utils::{
read_ui_reference_image_data_url, request_ui_editor_llm, required_tool_arguments,
strict_json_schema,
parse_limited_llm_tool_arguments, read_ui_reference_image_data_url, request_ui_editor_llm,
required_tool_call_arguments, strict_json_schema,
};
use crate::ui_editor::resource::ui_design_image::UIDesignImageRole;
use crate::ui_editor::state::State;
@@ -214,11 +214,17 @@ pub(crate) async fn suggest_ui_design_semantic_impl(
!response.text.trim().is_empty(),
response.tool_calls.len()
);
let arguments =
required_tool_arguments(&response, "suggest_ui_design_semantics").map_err(|error| {
app_log!("ui_design_suggestion.error stage=parse_arguments error={error}");
format!("LLM 响应无效(详情:UI 语义建议工具参数无效:{error}")
let arguments = required_tool_call_arguments(&response, "suggest_ui_design_semantics")
.map_err(|error| {
app_log!(
"ui_design_suggestion.error stage=parse_tool_call reason=missing_tool_call error={error}"
);
"LLM 响应无效(详情:未返回 suggest_ui_design_semantics 工具调用)".to_string()
})?;
let arguments = parse_limited_llm_tool_arguments(arguments).map_err(|error| {
app_log!("ui_design_suggestion.error stage=parse_arguments error={error}");
format!("LLM 响应无效(详情:UI 语义建议工具参数无效:{error}")
})?;
validate_suggestion_response_shape(&arguments).map_err(|error| {
app_log!("ui_design_suggestion.error stage=validate_arguments error={error}");
format!("LLM 响应无效(详情:{error}")