稳定联合识别图片上下文顺序
页面角色优先作为 ROOT 其余界面图按 ID 排序保持请求可复现
This commit is contained in:
+16
-1
@@ -595,7 +595,22 @@ pub(crate) async fn recognition_and_binding_impl_with_provider(
|
||||
if state.ui_design_images.len() > MAX_REFERENCES {
|
||||
return Err("界面图最多 4 张".to_string());
|
||||
}
|
||||
let context_ids = state.ui_design_images.keys().cloned().collect::<Vec<_>>();
|
||||
let mut context_ids = state.ui_design_images.keys().cloned().collect::<Vec<_>>();
|
||||
context_ids.sort_by(|left, right| {
|
||||
let left_is_page = state
|
||||
.ui_design_images
|
||||
.get(left)
|
||||
.and_then(|image| image.metadata.role)
|
||||
== Some(crate::ui_editor::resource::ui_design_image::UIDesignImageRole::Page);
|
||||
let right_is_page = state
|
||||
.ui_design_images
|
||||
.get(right)
|
||||
.and_then(|image| image.metadata.role)
|
||||
== Some(crate::ui_editor::resource::ui_design_image::UIDesignImageRole::Page);
|
||||
right_is_page
|
||||
.cmp(&left_is_page)
|
||||
.then_with(|| left.as_str().cmp(right.as_str()))
|
||||
});
|
||||
let root = Path::new(project_path.trim());
|
||||
let mut parts =
|
||||
Vec::with_capacity(state.ui_design_images.len() * 2 + state.sprite_assets.len() * 2 + 2);
|
||||
|
||||
Reference in New Issue
Block a user