From c7fc9a1b570db61e7ea90f6c4a70e1ab92dbb5dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Sat, 5 Sep 2026 15:37:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E8=AF=86=E5=88=AB=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E6=97=A7=E8=AE=A1=E7=AE=97=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 清理请求错误、结果校验和日志中的旧计算及联合文案 --- .../ui_editor/commands/recognition_and_binding.rs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/recognition_and_binding.rs b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/recognition_and_binding.rs index 6da86bc4c..b5c3f42e8 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/recognition_and_binding.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/recognition_and_binding.rs @@ -350,13 +350,13 @@ fn validate_component_references( .as_ref() .is_some_and(|id| !known_sprite_ids.contains(id)) { - return Err("联合识别绑定引用了不存在的独立素材".to_string()); + return Err("识别绑定引用了不存在的独立素材".to_string()); } } Component::Text(text) => { if let FontSource::Bound(id) = &text.font { if !known_font_ids.contains(id) { - return Err("联合识别绑定引用了不存在的字体素材".to_string()); + return Err("识别绑定引用了不存在的字体素材".to_string()); } } } @@ -674,7 +674,6 @@ pub(crate) async fn recognition_and_binding_impl_with_provider( }); parts.push(LlmMessageContentPart::InputImage { image_url }); } - parts.push(LlmMessageContentPart::InputText { text: "请为每张输入图片各返回一棵 UI 树(trees 与输入图片一一对应);每个节点可包含 components,空数组表示无组件。不要输出 node_id。".to_string() }); let (llm, client) = if provider_identity.is_none() { let llm = load_game_creator_app_config()?.llm; let client = build_game_creator_llm_client_from_llm_config(&llm, "llm") @@ -690,8 +689,8 @@ pub(crate) async fn recognition_and_binding_impl_with_provider( ) .with_strict(true); let request = LlmRunRequest::new(vec![ - LlmMessage::system(RECOGNITION_AND_BINDING_SYSTEM_PROMPT), - LlmMessage::user_multimodal(parts), + LlmMessage::system(SYSTEM_PROMPT), + LlmMessage::user_multimodal(parts), ]) .with_function_tools(vec![tool]) .with_tool_choice(LlmToolChoice::Required); @@ -715,7 +714,7 @@ pub(crate) async fn recognition_and_binding_impl_with_provider( ) .await } - .map_err(|error| format!("UI 编辑器单次计算失败:{error}"))?; + .map_err(|error| format!("UI 编辑器识别绑定失败:{error}"))?; let call = response .tool_calls .iter() @@ -724,7 +723,7 @@ pub(crate) async fn recognition_and_binding_impl_with_provider( let arguments = parse_limited_llm_tool_arguments(&call.arguments)?; validate_recognition_response_shape(&arguments)?; let parsed = serde_json::from_value::(arguments) - .map_err(|error| format!("联合结果参数无效:{error}"))?; + .map_err(|error| format!("识别绑定结果参数无效:{error}"))?; validate_tree_image_ids(&parsed.trees, &context_ids)?; let known_sprite_ids = state.sprite_assets.keys().cloned().collect::>(); let known_font_ids = state.font_assets.keys().cloned().collect::>(); @@ -765,7 +764,7 @@ pub(crate) async fn recognition_and_binding_impl_with_provider( }); } app_log!( - "ui_editor.compute.completed requests=1 ui_images={} sprites={} trees={}", + "ui_editor.recognition_and_binding.completed requests=1 ui_images={} sprites={} trees={}", state.ui_design_images.len(), state.sprite_assets.len(), ui_trees.len()