跳到主要内容

创建实时通话

POST 

https://api.knox.chat/v1/realtime/calls

WebRTC SDP 交换。Knox 使用通道密钥将 offer SDP 转发给 OpenAI,并返回 answer SDP。

计费注意: SDP 成功后,WebRTC 媒体和数据通道会直接通往 OpenAI。Knox 在该路径上看不到 response.done,因此按 token 计量不完整。需要准确 Knox 计费时,请优先使用 WebSocket 会话

Knox 仍会把托管 web_search 工具注入 SDP 会话,但媒体离开 Knox 后无法完成函数调用。需要托管搜索时请使用 WebSocket。

参见 实时语音 指南以及 OpenAI 的 WebRTC 传输

请求

发送原始 SDP 或 JSON。不接受 multipart/form-data

请求头

名称类型必填描述
AuthorizationStringBearer sk-…Bearer ek_knox_…
Content-TypeString原始 SDP 使用 application/sdp(或 text/plain);JSON 使用 application/json,体为 { "sdp", "session" }

查询参数

名称类型必填描述
modelStringRealtime 模型 ID。gpt-realtime-2.1gpt-realtime-2.1-mini。默认为 gpt-realtime-2.1。JSON 中已设置 session.model 时忽略。

JSON 请求体(application/json

名称类型必填描述
sdpStringWebRTC offer SDP。
sessionObjectRealtime 会话配置。省略时 Knox 会补上 typemodel

原始 SDP 请求体(application/sdp

请求体为 offer SDP 文本。会话配置使用 Knox 默认值。

相同路由也挂载在 /api/v1 下。

cURL 示例

JSON offer

curl -s https://api.knox.chat/v1/realtime/calls \
-H "Authorization: Bearer $KNOXCHAT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sdp": "v=0\r\n…",
"session": {
"type": "realtime",
"model": "gpt-realtime-2.1",
"audio": { "output": { "voice": "marin" } }
}
}'

原始 SDP

curl -s https://api.knox.chat/v1/realtime/calls \
-H "Authorization: Bearer $KNOXCHAT_API_KEY" \
-H "Content-Type: application/sdp" \
--data-binary @offer.sdp

响应

成功时 Knox 返回上游 answer SDP。Content-Type 通常为 application/sdp。HTTP 状态码与上游响应一致。

将 answer SDP 连接到您的 RTCPeerConnection。此后音频和数据通道与 OpenAI 直连,不再由 Knox 代理。

错误响应

{
"error": {
"code": 400,
"message": "Missing sdp"
}
}
状态码消息何时出现
400Missing sdpJSON 体中没有 sdp 字符串。
400Invalid JSON body请求体不是有效 JSON。
400multipart/form-data for /v1/realtime/calls is not supported; send application/sdp or JSON {"sdp","session"}使用了 multipart 上传。请改为 JSON 或原始 SDP。
400SDP must be UTF-8 text请求体不是 UTF-8。
401Authentication requiredKnox API key 缺失或无效 / 临时密钥已过期。
402Insufficient balance账户余额不大于 $0.01。
403Token is not authorized to use modelToken 白名单不包含所请求的实时模型(gpt-realtime-2.1gpt-realtime-2.1-mini)。
502Failed to connect to realtime provider / Realtime call failed with status …上游连接或 SDP 交换失败。