本文档汇总并规范展示当前项目已支持的主要接口(OpenAI 兼容与视频任务相关)。各接口遵循统一鉴权与返回格式,便于集成与测试。
Authorization: Bearer <YOUR_TOKEN>;示例:Authorization: Bearer sk-xxx(你的密钥)。application/json。error 对象,包含 code 与 message。聊天补全(OpenAI 兼容)。
请求头:
请求体主要参数:
[{ type, text|image_url|input_audio|file|video_url }] 组成。{ type: "json_object" }请求示例:
{
"model": "gpt-4o-mini",
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": [
{ "type": "text", "text": "帮我总结这段话" },
{ "type": "image_url", "image_url": { "url": "https://example.com/a.png" } }
] }
],
"stream": false,
"max_tokens": 512,
"temperature": 0.7
}
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1710000000,
"model": "gpt-4o-mini",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "这是总结结果..." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 100, "completion_tokens": 120, "total_tokens": 220 }
}
Content-Type: text/event-stream,并按行输出 data: <json>,以 [DONE] 结尾。data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1710000000,"model":"gpt-4o-mini","choices":[{"delta":{"role":"assistant","content":"这是"},"index":0}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1710000000,"model":"gpt-4o-mini","choices":[{"delta":{"content":"总结"},"index":0}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1710000000,"model":"gpt-4o-mini","choices":[{"delta":{"content":"结果..."},"index":0}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1710000000,"model":"gpt-4o-mini","choices":[{"finish_reason":"stop","index":0}],"usage":{"prompt_tokens":100,"completion_tokens":120,"total_tokens":220}}
data: [DONE]
model、messages。messages 中 content 可为字符串或多媒体内容数组;数组元素支持 type: text | image_url | input_audio | file | video_url。max_tokens 不得超过系统上限;如超限将返回错误。图片生成(OpenAI 兼容)。
请求头:
请求体主要参数:
1024x1024,部分模型(如 dall-e-2/3)支持的尺寸有限制standard、hdurl 或 b64_json请求示例:
{
"model": "gpt-image-1",
"prompt": "一只在天空飞翔的蓝色鲸鱼,赛博朋克风",
"n": 1,
"size": "1024x1024",
"response_format": "url",
"quality": "standard"
}
{
"created": 1710000000,
"data": [ { "url": "https://example.com/image.png" } ]
}
model。prompt 在多数模型为必需;个别模型允许为空但会返回更保守的结果。size 与 quality 的合法取值与模型相关,非法取值会被拦截。OpenAI Realtime API 兼容实时流接口。
连接地址:wss://<host>/v1/realtime?model=<model>(或通过 Header 指定模型)
握手请求头:
realtime(或 json,视服务端与 SDK 要求)会话参数(session.update):
{ type: "session.update", session: { input_audio_format: "wav", turn_detection: { type: "server" } } }客户端常用事件:
session.update:更新会话配置conversation.item.create:追加消息项(文本/音频)response.create:请求服务端生成响应input_audio_buffer.append / commit / clear:发送、提交或清空音频片段服务端常见事件:
session.created:会话建立成功response.delta / response.completed:文本增量与完成response.audio.delta / response.audio.completed:音频增量与完成response.error:错误response.done:本轮响应结束计费/用量:服务端事件中可包含 usage 字段,例如 { input_tokens, output_tokens, audio_seconds }。
视频生成任务提交(OpenAI 兼容路径,路由已适配多平台)。
请求头:
请求体主要参数(以服务端实际解析的字段为准):
请求示例(建议统一写法):
{
"model": "veo-3.0-generate-001",
"prompt": "傍晚城市航拍,温暖色调,慢镜头",
"duration": 5,
"metadata": {
"aspect_ratio": "16:9",
"quality": "standard"
}
}
{ "task_id": "cGFyYW1zL3Byb2plY3RzL3..." }
{ "task_id": "vid-20240301-xyz" }
视频任务查询(OpenAI 兼容路径)。
请求头:
路径参数:
响应说明:统一包装为 { code, data } 结构。
响应示例:
{
"code": "success",
"data": {
"task_id": "vid-20240301-xyz",
"status": "succeeded", // 枚举:queued | processing | succeeded | failed
"url": "https://example.com/video.mp4",
"format": "mp4",
"metadata": null,
"error": null
}
}
说明:
data:video/mp4;base64,<base64>),可直接解析其中的 base64 内容并保存为 .mp4 文件。状态取值:queued | running | succeeded | failed。
为便于定位问题与自助排查,以下汇总各接口的错误返回格式、常见状态码与原因示例,并给出建议的处理方式。
{
"error": {
"message": "<错误信息>",
"type": "new_api_error",
"code": "<错误码可为空>"
}
}
{
"error": {
"message": "未指定模型名称,模型名称不能为空",
"type": "new_api_error",
"code": "invalid_request"
}
}
{
"error": {
"message": "size 不合法,合法示例:1024x1024",
"type": "new_api_error",
"code": "invalid_request"
}
}
{
"error": {
"message": "无效的 API Key",
"type": "new_api_error",
"code": "access_denied"
}
}
{
"type": "error",
"event_id": "evt_123456",
"error": {
"message": "请求格式不合法或上游错误",
"type": "new_api_error",
"code": "invalid_request"
}
}
{
"code": "insufficient_user_quota",
"message": "用户额度不足, 剩余额度: 0"
}
{ "code": "invalid_request", "message": "缺少 prompt 或 image" }
{ "code": "pre_consume_token_quota_failed", "message": "预扣费额度失败, 用户剩余额度: 10, 需要预扣费额度: 20" }
{ "code": "do_request_failed", "message": "请求上游地址失败" }
{ "code": "task_not_exist", "message": "task_not_exist" }
{ "code": "get_task_failed", "message": "数据库查询失败或服务端异常" }
排查建议总览:
”,请检查上游服务可用性与网络连接。
- 任务查询请确保 task_id 正确;如为新提交任务,稍候再查以避免短暂的未同步状态。