多模态接口怎么调?一次请求传图、传音、传视频的参数与限制

内容创作

讲清一次请求里同时传图、传音、传视频时,参数该怎么写、各家限制卡在哪、报错后按什么顺序排查。

你手上有一段录音加几张截图,想让模型一次性看完再回答,结果要么传不上去,要么传上去了模型当没看见。问题通常不在模型能力,而在请求体怎么写、内容块怎么排、体积和时长有没有超线。这篇按「先拆输入类型、再对齐参数、最后排查」的顺序走一遍,把一次请求塞多模态的活干成。具体数字到站内多模态页面核。

你手上有一段录音加几张截图,想让模型一次性看完再回答,结果要么传不上去,要么传上去了模型当没看见。这类问题九成不在模型能力,而在请求体怎么写、内容块怎么排、体积和时长有没有踩线。先别急着换模型,把请求拆开看一遍,往往改两个字段就通了。

下面按「先拆输入类型、再对齐参数、接着看限制卡点、最后排查」的顺序走一遍。凡是涉及具体体积上限、时长上限、分辨率门槛、计费倍率这类数字,一律以站内当时页面为准,各家改得很勤,写死在文章里第二天就过时。多模态接口怎么调,本质是把一次请求组织成接口能读懂的结构,剩下的都是对齐细节。

先把输入拆成三类,别混在一个字段里

文字、图片、音频、视频在请求体里是并列的内容块,各自有独立的类型标记,不能拼成一个字符串塞进去。最常见的错就是把图片描述成一段文字,或者把音频当成附件名写进 prompt,接口那边只会当成普通文本处理。先确认你的 SDK 或 HTTP 请求体里有没有专门的内容块数组,没有就先补上这一层。

  • 图片走「链接还是 base64」是第一个岔路口:链接省请求体积,但要求能被公网取到且不失效;base64 稳,但请求体会膨胀数倍,多图叠加容易撞上限
  • 音频和视频通常只能给链接或文件 ID,少数接口支持直接上传,先确认这条路通不通再写代码,别先写完上传逻辑才发现不支持
  • 多模态内容块要按顺序排,模型读内容块的顺序基本等于你排列的顺序,图片放在问题之后还是之前,结论可能就不一样
  • 同一个内容块别重复塞。接口未必帮你去重,重复传图会重复计费,先估一遍再决定要不要拆成多次请求

一个最小可用的组合写法

顺序上建议「先文字说明任务,再放各模态素材,最后补一句具体要求」。这样模型先知道要干什么,再看素材,不容易跑偏。如果你要它对比几张图,就在每张图前用一小段文字标注这是第几张、是什么,别让它自己猜编号。

参数对照:哪些必填、哪些看接口

模型名是第一个要确认的:只有标了多模态的模型才会真的读图音视频,纯文本模型给它图片通常不报错,直接忽略,你会以为传成功了。具体哪些模型支持哪种模态,到站内模型资料库和官方 API 页面按厂商核一遍,别凭印象。

输入类型关键参数容易踩的点
图片链接或 base64、分辨率、细节档位base64 让请求体暴涨;链接失效导致取不到
音频采样率、编码格式、时长采样率不匹配听成噪音;超时长被截断
视频容器格式、时长、帧率或抽帧间隔整段传超上限;帧太密成本翻倍
通用模型名、内容块顺序、超时设置模型不支持该模态被静默忽略;超时太短大文件必失败

分辨率、帧率、采样间隔这类参数直接决定成本和能不能过。音频要注意采样率与编码格式,视频要注意容器格式和时长上限,两者都不是「能播就行」。上线前先用一条短素材跑通,再逐步加长加多,别一上来就丢整段会议录像。

限制通常卡在哪几个地方

限制不是一个数字,是好几条线叠在一起:单请求体积上限、单文件体积上限、单次时长上限、内容块数量上限。多图叠加时先撞的往往是总请求体,而不是单张图太大。所以排查前先分清你是被哪条线拦下来的,再决定是压缩、拆分还是换链接。

  • 单请求体积和单文件体积是两条线,先看报错提示里提的是哪个,别盲目压图
  • 时长和帧数上限决定视频能不能整段传,超了就分段或抽帧,分段后要处理前后文衔接,别当成独立请求
  • 并发和频率限制和多模态无关,但大文件请求更慢,更容易撞超时,超时设置先到站内测速工具量个基线
  • 不同渠道对同一模型的多模态支持度可能不一样,中转站尤其要看它这一路的兼容说明,别默认官方支持它就支持

什么时候这些做法不适用

如果你只是偶尔传一张小图,没必要上抽帧、分段、链接托管这一整套。反过来,如果素材里有敏感内容,链接托管就意味着它要能被公网取到,这时候 base64 反而更稳,但体积问题又回来了。按你的频次和素材敏感度二选一。

传不上去或答非所问,按这个顺序查

  1. 先看状态码4xx 多半是参数格式或体积问题,5xx 更像上游或通道问题。状态码含义和常见报错对照,站内有报错排除流程可以直接查。
  2. 验证模型有没有识别到让它复述内容块数量,或者读出图片里一处明显的文字。一次就能分清是没传进去,还是传进去了没看懂。
  3. 定位到具体模态图片能传但识别差,先怀疑分辨率和压缩;音频听不准,先怀疑采样率和底噪;视频结论偏,先怀疑抽帧太稀。
  4. 换一条通道复测同一份请求在两条路径上表现不同,基本能定位到是渠道兼容问题,而不是你的参数写错。
  5. 最后再改参数确认是参数问题后,一次只改一个变量再试,否则你分不清是哪一项起了作用。

顺带提一句,如果同一请求在本地跑通、上线后失败,多半是网络出口或超时设置的问题,不一定是多模态本身。先把网络这条线和参数这条线分开,排查会快很多。

下一步把你手头那条请求的模型名、输入类型和报错码对一遍,再去站内多模态与官方 API 页面核当时的参数上限和计费口径,心里就有底了。

常见问题

一次请求里图片、音频、视频能全都传吗?

技术上多数多模态接口支持混传,但能传不等于效果好。视频和音频信息密度高,再叠图片容易把上下文挤爆或者让模型只抓其中一路。建议先拆成两次请求:一次处理音视频,一次处理图文,各自结论再合并,稳定性和成本都更好控制。

图片用链接还是 base64,怎么选?

看图片在哪。已经在对象存储或公网可访问,就用链接,请求体小、重试便宜;图片还在本地、或者涉及不能外传的内容,就走 base64 或者接口自带的文件上传。注意链接方式要求对方服务端能取到,内网地址和需要登录的链接一律取不到,这种只能走上传。

传了图但模型像没看到,最可能是什么原因?

按概率排:一是模型本身不是多模态版本,二是内容块类型标记写错了,接口当普通文本忽略掉,三是图片太大被截断或压缩到看不清,四是走的中转渠道没透传这一路。先让它数一下收到几个内容块,再逐个排除,比反复改提示词有用得多。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。