视频理解
使用返回的任务 ID 进行查询 获取最终结果。
授权
所有接口均需要使用 Bearer Token 进行认证。在请求头中添加:
Authorization: Bearer YOUR_API_KEY
YOUR_API_KEY 为 API Token(sk-... 格式)。
请求体
用户提示词,最多 100,000 字符。
100000"What is happening in this video?"
视频源数组(1–10 个)。每个元素接受以下两种形式:
- 公网 HTTP/HTTPS URL
data:video/<type>;base64,<payload>data URI(base64 内联,注意视频体积大)
URL 格式约束(基于 fal openrouter 实测,2026-05-13):
- 直接视频文件:扩展名必须是
.mp4/.mpeg/.mpg/.mov/.webm - YouTube 视频:支持
https://www.youtube.com/watch?v=<id>和https://youtu.be/<id>(仅 Gemini 家族可用) - 不支持 YouTube Shorts URL(
https://www.youtube.com/shorts/<id>),上游会返回 422。客户端可将<id>改写为watch?v=<id>形式后再调用
模型限制:是否支持多视频以及上限张数由所选模型对应上游决定;当某模型仅支持单视频而请求传入多个时,路由层返回 422 model_rule_violation(具体规则维护在 app/relays/llm_router/model_rules.py)。Gemini 家族通常支持多视频。
成本提示:视频按帧 + 时间编码,30s 视频可能 20K+ tokens。建议短片段或低帧率源。
内联 base64(仅异步模式,sync 省略或为 false):网关识别为内联媒体的 base64(data: URI,或 4096 个以上编码字符且解码内容命中已知媒体签名的裸 base64),会在请求入库与提交上游之前上传文件存储并替换为 URL,不以 base64 原文入库;更短的裸 base64、或签名不可识别的内容按原样透传,也不做体积校验。上限只作用于内联 base64 项(公网 http(s) URL 不受限):单项解码后 ≤ 5 MB、单数组内联 ≤ 5 项、单请求合计 ≤ 10 MB、单请求内联总数 ≤ 20 项。data: 前缀格式非法或 payload 解码为 0 字节返回 422,超限同样返回 422,请改用 /v1/files/upload 上传后传 URL。
sync: true 时请求不写任务记录,以上均不适用:内联 base64 原样提交上游,不做任何体积或数量校验。
1 - 10 elements同步模式(参见 llm-text schema)。
false
是否流式(参见 llm-text schema)。
false
生成 token 上限。可选。
x >= 1128
采样温度,区间 [0, 2]。可选。
0 <= x <= 2系统指令。可选。
10000是否包含 reasoning tokens。gemini-2.5-pro 等思考模型可能需设为 true。
响应
任务已创建(async 模式)/ 完整响应(sync 模式)
Submit 响应,对齐统一任务标准形状。results / error 在 submit 阶段固定为 null,任务完成/失败后通过 GET /v1/tasks/{task_id} 返回。sync=true, stream=false 模式下端点直接返回完整 OpenAI ChatCompletion JSON。
任务 ID,格式 task-llmrouter-{timestamp}-{8random}。
"task-llmrouter-1776874565-yq3szvcu"
llm.generation.task "llm.generation.task"
llm "llm"
客户端提交的模型名(原样回显)
"gemini-2.5-pro"
pending "pending"
0
1776874565
stream=true 时返回 {url: ...};stream=false 时为 null。
submit 阶段固定 null;任务完成后通过 GET /v1/tasks/{task_id} 返回,results[0] 为完整 OpenAI ChatCompletion 响应。
null
submit 阶段固定 null;任务失败时通过 GET /v1/tasks/{task_id} 返回。
null