multiview 空白视图按未提供处理

to_sdk_params 新增 optional_view,将仅含空白的 left、back、right 归一化为未提供

空白视图不再以 Some(FileInput) 形式提交,与提交前“至少两个视图”的校验保持一致
This commit is contained in:
2026-09-19 13:13:35 +08:00
parent 230e4d49f2
commit ddb8b9e8ba
@@ -79,6 +79,13 @@ impl TripoProviderClient {
Ok(TripoTaskHandle { task_id })
}
}
/// 与提交前校验保持一致:空白视图按未提供处理。
fn optional_view(value: &Option<String>) -> Option<FileInput> {
value
.as_deref()
.filter(|value| !value.trim().is_empty())
.map(FileInput::from)
}
fn to_sdk_params(request: &Model3dMultiviewToModelRequest) -> MultiviewToModelParams {
let mut params = match &request.inputs {
@@ -89,9 +96,9 @@ fn to_sdk_params(request: &Model3dMultiviewToModelRequest) -> MultiviewToModelPa
right,
} => MultiviewToModelParams::from_views([
Some(FileInput::from(front.as_str())),
left.as_deref().map(FileInput::from),
back.as_deref().map(FileInput::from),
right.as_deref().map(FileInput::from),
optional_view(left),
optional_view(back),
optional_view(right),
]),
Model3dMultiviewInputs::TaskId { task_id } => {
MultiviewToModelParams::from_task_id(task_id.clone())