RunAPI 上的 Vidu
选择路径
- 对于一次性产物或结果,请使用
runapiCLI 中注册的vidu服务。如果已安装的命令目录中没有列出该服务,请停止并报告服务缺失,而不是发明命令。 - 对于应用程序、后端、工作器、库、Webhook 流水线或生产代码库,请直接转到 使用 SDK 集成。绝不要在生成运行时通过子进程调用 CLI。
发现契约
进行身份验证,然后检查已安装的命令目录以及所选操作的当前契约:
runapi auth status > auth.json
jq -e '.authenticated == true' auth.json
runapi vidu --help
runapi vidu <operation> --help
curl --fail --location https://runapi.ai/docs/api/vidu/<operation>.md --output contract.md
如果身份验证为 false,请在提交前停止。要求用户提供有效的 RUNAPI_API_KEY,或通过 runapi auth import-token --token - 从标准输入导入用户提供的密钥;仅当用户明确请求时才使用交互式浏览器登录。仅从服务帮助中选择 <operation>。将命令帮助视为已安装操作、模型和顶级字段列表的权威来源。将 API 参考视为完整请求模式、嵌套字段、条件规则、任务行为和响应变体的权威来源。如果两个表面不一致,请停止并报告契约不匹配,而不是猜测。
构建请求
创建 request.json 作为有效的 JSON,仅使用已发现的操作契约接受的字段。对于选定的模型和值,将每个适用的条件规则作为一个集合进行评估:满足每个必填字段,省略每个禁止字段,并在未解决的矛盾处停止。
在执行前遍历嵌套对象和数组。闭合已发现契约声明的所有关系,包括唯一性约束和嵌套值之间的交叉引用。
对于发现的本地媒体输入,包括文件类型字段和顶级媒体 URL 字段,请在 request.json 中直接放置一个智能体可读的本地文件路径。CLI 按声明消费文件字段,并在顶级媒体 URL 字段中上传本地路径。仅当用户需要可重用的 URL、提供 Base64 数据或已发现的契约明确要求单独上传时,才使用 runapi files create。
语义不变性:
- 远程媒体格式、大小和音频持续时间由生成提供者异步检查。
在发送前验证文件:
jq empty request.json
执行
准确提交一次并在等待前持久化任务响应:
runapi vidu <operation> --async --input-file request.json > task.json
task_id="$(jq -er '.id' task.json)"
对于一次性结果,立即等待同一任务并保存完整的 JSON 响应。此阻塞等待是默认行为:
runapi wait "$task_id" --service vidu --action <operation> > result.json
仅当用户明确要求后台执行、轮询或 Webhook 集成时,才可在验证 task.json 后停止。报告任务 ID,并且不要声称交付物已完成。
验证
成功状态不是交付物。根据已发现的结果契约读取并验证完整响应。以请求的确切格式保留完整的非媒体结果,包括 JSON、文本、SRT 或 VTT。
对于响应中任何位置列出的每个请求的媒体交付物,请下载所有交付物,而不仅仅是返回第一个 URL。在下载前,从响应元数据(如果存在)中推导其预期的 MIME 类型或家族,然后是选定的输出格式,最后是 API 参考中明确的字段如 videos、images 或 audios。该技能的目录声明的回退家族为 video/*。仅当无法从这些来源建立任何单一预期类型或家族时才停止。
对于每个下载的文件,要求文件非空且符合预期的 MIME 类型或家族:
curl --fail --location <deliverable-url> --output <downloaded-file>
for file in <downloaded-files>; do
expected_mime=<expected-MIME-or-family-pattern-for-this-file>
test -s "$file"
[[ "$(file --brief --mime-type "$file")" == $expected_mime ]]
done
当任何请求的交付物缺失、为空或具有意外的 MIME 类型时,不要报告完成。分别记录“技能符合性”和“任务结果”,以便服务失败不会掩盖是否遵循了本方案。
恢复或停止
- 最多修正一次请求形状,并且仅在已发现的契约或返回的验证错误标识了修正方向时进行。
- 最多重试一次瞬时传输失败,并且仅在证据确认未创建任何任务、未产生任何计费且重试安全时进行。
- 如果在
task.json存在后等待超时或失去传输,请保留错误并最多对同一任务重新运行runapi wait一次。绝不要提交替代任务。 - 遇到终止性的 RunAPI 或服务失败时,保留任务/错误证据并停止。保持所选模型和能力,未经用户授权不要提交另一个付费请求。
- 如果契约缺少构建或验证请求所必需的事实,请停止并报告契约缺口。不要将产品缺陷转化为永久的技能变通方案。
使用 SDK 集成
仅将此路径用于应用程序或生产代码集成。打开下面的当前 RunAPI SDK 参考,选择目标语言和 Vidu 的包,并在编码前确认其安装命令、客户端方法、请求类型、响应类型和错误类。从相同已发现的产品契约构建请求,并应用相同的交付物验证和停止规则。不要从生产代码中将 runapi 作为子进程调用。
参考
- 模型概览、定价和速率限制:https://runapi.ai/models/vidu.md
- 提供者概览:https://runapi.ai/providers/vidu.md
- 完整模型目录:https://runapi.ai/models.md
- SDK 集成:https://github.com/runapi-ai/vidu-sdk
变体
vidu-q4-image-to-video:https://runapi.ai/models/vidu/q4-image-to-video.mdvidu-q4-reference-to-video:https://runapi.ai/models/vidu/q4-reference-to-video.md