Skip to content

Sora2官方接口(Chat格式)

POST  v1/chat/completions

本中转所有模型均已适配v1/chat/completions

只需要把模型名称完整复制到model参数即可使用

请求参数

Authorization

在 Header 添加参数 Authorization,其值为在 Bearer 之后拼接 Token。

Authorization: Bearer ******************

Header 参数

参数类型必填说明示例
Content-Typestring可选请求体的数据格式类型application/json
Acceptstring可选客户端期望接收的响应数据格式application/json

Body 参数

Content-Type: application/json

参数名类型必填说明
modelstring必需模型 ID。指定要使用的模型(如 gpt-4o, o1-preview 等)。
messagesarray [object]必需聊天记录。包含对话历史的对象数组。
├─ rolestring可选角色类型:user(用户)、assistant(助手)或 system(系统)。
└─ contentstring可选具体的文本内容。
storeboolean可选存储设置。是否将输出存储用于模型蒸馏或评估产品。
reasoning_effortstring可选推理努力程度(仅限 o系列模型)。可选 low, medium, high,减少推理工作可加快响应速度。
metadataobject可选元数据。最多 16 个键值对(键最长64字符,值最长512字符),用于结构化存储额外信息。
modalitiesarray[string]可选输出模态。默认 ["text"];若需生成音频可设为 ["text", "audio"]
predictionobject可选预测配置。当预先知道模型大部分响应内容时使用,可大幅提高响应速度。
audioobject可选音频参数。当 modalities 包含 "audio" 时必须提供,用于配置语音输出。
temperaturenumber可选采样温度 (0-2)。值越高输出越随机,建议与 top_p 二选一调整。
top_pnumber可选核采样。例如 0.1 意味着只考虑概率质量前 10% 的 token。
ninteger可选生成数量。为每个输入生成多少个选择。保持 n=1 可降低成本。
stopstring可选停止序列。遇到这些序列时停止生成(最多 4 个)。注:最新的推理模型(如 o3, o4-mini)不支持此参数。
max_completion_tokensinteger可选最大生成长度。生成的 token 上限(包含可见输出和推理 token)。
presence_penaltynumber可选存在惩罚 (-2.0 到 2.0)。正值增加模型讨论新话题的可能性。
frequency_penaltynumber可选频率惩罚 (-2.0 到 2.0)。正值降低模型逐字重复同一行的可能性。
logit_biasstring可选对数偏差。修改特定标记出现的概率(映射 token ID 到 -100 到 100 的偏差值)。
logprobsboolean可选对数概率。是否返回输出 token 的对数概率。
userstring可选用户标识。代表最终用户的唯一 ID,用于监控滥用行为。
service_tierstring可选服务层级。指定处理请求的延迟层级: • auto:自动使用 Scale tier 信用或默认层级 • default:默认服务层级(较低 SLA) • flex:Flex Processing 服务层级
stream_optionsobject必需流式响应选项。仅在 stream: true 时使用。
└─ include_usageboolean必需是否在 data: [DONE] 之前流式传输一个包含整个请求令牌使用统计信息的附加块。
response_formatstring必需响应格式。例如设置为 { "type": "json_object" } 启用 JSON 模式,或使用 json_schema 启用结构化输出。
seedinteger必需Beta 功能 / 随机种子。尽最大努力进行确定性采样,使相同 seed 和参数的请求返回相同结果。
toolsarray[string]必需工具列表。目前仅支持函数作为工具,最多支持 128 个函数,供模型生成 JSON 输入调用。
tool_choicestring必需工具调用控制。 • none:不调用任何工具 • auto:模型自行决定 • required:必须调用一个或多个工具 • 或指定具体函数强制调用
parallel_tool_callsboolean必需并行工具调用。是否允许在工具使用期间启用并行函数调用。
streamboolean必需流式输出。设为 true 时,响应将通过服务器发送事件(SSE)逐块传输。
top_logprobsinteger必需最可能标记数 (0-20)。指定在每个标记位置返回的最可能标记数量,需配合 logprobs: true 使用。
web_search_optionsobject必需联网搜索工具。启用后模型会搜索网络以获取相关结果用于回复。

请求示例 (JSON)

{
    "model": "sora-2",
    "messages": [
        {
            "role": "user",
            "content": "A calico cat playing a piano on stage"
        }
    ]
}

返回响应

200 成功

Content-Type: application/json

响应参数

参数类型必填说明
idstring必需聊天补全对象的唯一标识符。
objectstring必需对象类型,通常为 "chat.completion"。
createdinteger必需补全创建时的 Unix 时间戳(秒)。
modelstring必需用于生成此补全的模型。
choicesarray [object]必需模型生成的补全列表。
└─indexinteger可选此补全在其列表中的索引。
└─messageobject可选包含模型生成的响应消息的对象。
└─logprobsnull可选如果请求中设置了 logprobs,则包含标记的对数概率。
└─finish_reasonstring可选模型停止生成补全的原因。可能是 "stop"、"length" 或 "tool_calls"。
usageobject必需此补全请求使用的令牌统计信息。
└─prompt_tokensinteger必需提示中使用的令牌数量。
└─completion_tokensinteger必需补全中生成的令牌数量。
└─total_tokensinteger必需使用的总令牌数(提示 + 补全)。
└─prompt_tokens_detailsobject必需提示令牌的详细信息(例如缓存令牌)。
└─completion_tokens_detailsobject必需补全令牌的详细信息(例如推理令牌)。
service_tierstring必需用于处理请求的服务层级。
system_fingerprintstring必需用于监控后端变化的系统指纹。

响应示例

{
    "id": "string",
    "object": "string",
    "created": 0,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "string",
                "content": "string"
            },
            "finish_reason": "string"
        }
    ],
    "usage": {
        "prompt_tokens": 0,
        "completion_tokens": 0,
        "total_tokens": 0
    }
}

示例代码

python
import http.client
import json

conn = http.client.HTTPSConnection("nxaiapp.com")
payload = json.dumps({
   "model": "sora-2",
   "messages": [
      {
         "role": "user",
         "content": "A calico cat playing a piano on stage"
      }
   ]
})
headers = {
   'Accept': 'application/json',
   'Authorization': 'Bearer <token>',
   'Content-Type': 'application/json'
}
conn.request("POST", "/v1/chat/completions", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))