把本地素材送进模型调用,平台侧目前有三条可用通道,各自的成本与约束不同。阿里云百炼 CLI 将其中两条做进了命令面:多模态命令的输入参数同时接受本地路径与 URL,另以 bl file upload 发放 48 小时有效的临时地址。本文从平台能力分工的角度说明三条通道的边界、一条必须写进接口规范的请求头契约,以及与企业知识库通道的关系。
通道分工:按调用拓扑与素材生命周期选
本地路径内联通道不产生云端对象。多模态命令(看图、全模态、改图、听音)收到本地路径时,将文件内容随请求体内联传输,详细日志中仅见一条对话接口调用。实测 19.4 MB 图像本地直传 12 秒返回,内联在该量级无阻断。该通道无有效期、无云端残留,约束是文件必须在调用方机器上且每次调用重复传输,适配单机单次调用。
临时地址通道产生云端对象并自带生命周期。上传返回 oss:// 协议地址,命令自报 expires_in 48 hours,窗口结束对象自清,无需人工清理;窗口内地址可被多入口、多机器复用,实测同一地址先后被看图、全模态、改图三个入口消费且未重复上传。适配多机调度、脚本化复用与跨入口共享。
公网直链通道不经过上传。多模态命令同样接受 https 直链,且无 48 小时时钟;治理成本(桶与权限、直链失效、防盗链)留在存储侧。适配已有稳定公开直链的素材。
三条通道可混用,判据是调用拓扑与素材生命周期,不是文件大小。实测已排除「大文件必须上传」这一常见误判。
一条必须写进接口规范的请求头契约
临时地址的 oss:// 方案默认不被服务端解析。对原始兼容模式接口做 A/B:请求体逐字相同,不带头返回 400 与 invalid_parameter_error,原文「The provided URL does not appear to be valid. Ensure it is correctly formatted.」;带头 X-DashScope-OssResourceResolve 返回 200,用量记 image_tokens 242。
CLI 的多模态命令已内置该头,平台调用方无感;自研 SDK、裸 HTTP 调用与第三方编排工具需自行携带。建议将该头写入内部接口规范与代码评审清单,而非依赖开发者阅读命令输出中的 note 字段。
三处校验缺位需以补偿控制覆盖
类型校验缺位:帮助示例仅列图片、视频、音频,实测 PDF 上传成功,校验发生在模型调用步并返回 400「image format is illegal and cannot be opened」。批量管线须以调用步返回为成败判据。
绑定语义非强制:帮助声明文件绑定指定模型,实测正反两向跨模型调用均成功,不应作为访问控制依据。
对象不去重:同文件重复上传返回不同 uuid 地址,管线需自维护地址表。
与知识库通道的关系
同日交付的另一包覆盖 bl knowledge doc sync,即本地文档目录与知识库之间的长期增量同步,解决「库内内容是否最新」。本包的临时地址通道解决「单个文件在一次或数次调用里如何被看见」,对象生命周期为 48 小时,不承担长期内容管理。两者目的地不同(模型调用 vs 知识库检索)、生命周期不同(临时 vs 长期)、治理面不同(请求头与泄露面 vs 预览与删除授权),在方案文档中应分列,不互相替代。
观测与排障口径
素材通道的故障面集中在两个 400,排障第一步应是分类而非重试。第一类缺头:错误码 invalid_parameter_error,message 为「The provided URL does not appear to be valid」,修复动作是补 X-DashScope-OssResourceResolve 请求头。第二类类型不符:错误码同为 InvalidParameter 族,message 为「image format is illegal and cannot be opened」,修复动作是换素材或换模型,补头无效。两类错误表面相似、处置相反,建议在告警文案中直接区分。
通道是否走了内联,可用详细日志判定:本地路径输入时仅见一条对话接口调用且无上传调用;若日志中出现上传类调用,说明输入被解析为地址而非本地路径。该判定可用于排查「为什么我的脚本每次都重传」。
验收断言建议统一为哨兵读回:测试素材内嵌唯一字符串,验收步骤要求模型读回该字符串。它对内联、临时地址、原始接口三条通道同构适用,可把「文件是否到达模型」从日志推断变为可判定断言,避免以描述性输出主观判断通路是否生效。
平台侧建议
接入评审建议核对四项:通道选型是否匹配调用拓扑;自研调用链是否携带请求头;批量管线是否在调用步校验;产物签名链接(改图返回地址含 AccessKeyId 与 Signature)是否执行下载自存与剥离归档。四项均有可落地动作,不构成接入阻断。