multiview 视图输入显式化为 url / fileToken,线上按文档 view-key 形态发出
- 契约新增 Model3dViewInput(url / fileToken 的 tagged enum),views 的四个视图都改用它,裸字符串在契约层即被拒绝
- platform-tripo 不再走 SDK 的位置数组形态:按 Tripo 文档推荐的 view-key 构造 inputs,值写成显式 {url} / {file_token},种类由契约字段决定、链路上不再猜前缀
- 视图校验(front 必填、至少两张、空白按未提供)与 inputs 构造合并成一条路径,不再两处重复规则
- 新增 4 条定向用例钉住发出的 JSON 形状、空白视图、视图数量与 taskId 复用;契约用例补齐裸字符串与视图内未知字段被拒
- 重新生成 ts-rs 绑定与导出索引,技术方案同步 multiview 输入口径
This commit is contained in:
@@ -26,7 +26,7 @@ task 尚未完成时 `output` 为空;完成后 `output` 必须是与 task type
|
||||
|
||||
- text-to-model:`prompt` 必填,上限 1024 字符;`negative_prompt` 上限 255 字符。空白 prompt 在提交前拒绝。
|
||||
- image-to-model:`source` 是 `Model3dGenerationSource`,即带 `kind` 的站内引用 tagged enum(`resource { resourceId }` 或 `asset { assetId }`),不接受裸字符串、远程 URL 与 data URL。提交时只按 ID 定点校验归属与记录类型(跨 owner、未登记、类型不符统一 400),worker 执行时再从私有 OSS 读出字节、上传 provider 换回 `file_token` 后提交;provider 生成参数在 `generation` 里。
|
||||
- multiview-to-model:`inputs` 是带 `kind` 的 tagged enum,二选一——`views { front, left, back, right }` 或复用已有结果的 `taskId`。`views` 下 `front` 必填,其余视图至少再提供一张(少于两张视图直接拒绝);左/后/右视图为空白字符串时按未提供处理,不会上传空文件。图片与视图引用都先去掉首尾空白再交给 SDK,`taskId` 走统一的 task id 校验。
|
||||
- multiview-to-model:`inputs` 是带 `kind` 的 tagged enum,二选一——`views { front, left, back, right }` 或复用已有结果的 `taskId`。`views` 下 `front` 必填,其余视图至少再提供一张(少于两张视图直接拒绝);每个视图是 `Model3dViewInput`(`url` 或 `fileToken`,同样是带 `kind` 的 tagged enum),不接受裸字符串。取值空白(含纯空白)的视图按未提供处理,不会上传空文件;图片引用与视图地址都先去掉首尾空白再交给 provider,`taskId` 走统一的 task id 校验。线上 `inputs` 按 Tripo 文档推荐的 view-key 形态构造(`[{"front":{"url":…}},{"left":{"file_token":…}}]`):SDK 的 `MultiviewToModelParams::from_views` 只能发位置数组 `["<裸字符串>", "", …]`,服务端得按前缀猜那是 URL、file_token 还是 task_id,因此该字段由 `platform-tripo` 自己构造后经 `extra` 透传,种类由契约字段决定。
|
||||
|
||||
三个入口的 `model` 都必填,其余生成参数可选。SDK params 未命名的 `texture_version` 与 `delight`,由 image-to-model 和 multiview-to-model 通过 extra 字段透传。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user