GPT Realtime
GPT Realtime API 通过 WebSocket 连接实现低延迟的实时语音对话。
连接方式
通过 WebSocket 连接到 Realtime 端点:
wss://crazyrouter.com/v1/realtime?model=gpt-4o-realtime-preview
在 WebSocket 连接的请求头中传入 API Key:
Authorization: Bearer YOUR_API_KEY
或通过 URL 参数:
wss://crazyrouter.com/v1/realtime?model=gpt-4o-realtime-preview&api_key=YOUR_API_KEY
支持的模型
| 模型 | 说明 |
|---|
gpt-4o-realtime-preview | GPT-4o 实时预览版 |
gpt-4o-mini-realtime-preview | GPT-4o Mini 实时预览版 |
使用示例
import asyncio
import websockets
import json
async def realtime_chat():
uri = "wss://crazyrouter.com/v1/realtime?model=gpt-4o-realtime-preview"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
async with websockets.connect(uri, extra_headers=headers) as ws:
# 配置会话
await ws.send(json.dumps({
"type": "session.update",
"session": {
"modalities": ["text", "audio"],
"voice": "nova",
"input_audio_format": "pcm16",
"output_audio_format": "pcm16",
"turn_detection": {
"type": "server_vad"
}
}
}))
# 发送文本消息
await ws.send(json.dumps({
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [
{"type": "input_text", "text": "你好,请介绍一下你自己"}
]
}
}))
# 触发响应
await ws.send(json.dumps({"type": "response.create"}))
# 接收响应
async for message in ws:
event = json.loads(message)
if event["type"] == "response.text.delta":
print(event["delta"], end="")
elif event["type"] == "response.done":
break
asyncio.run(realtime_chat())
事件类型
客户端事件
| 事件 | 说明 |
|---|
session.update | 更新会话配置 |
conversation.item.create | 创建对话项 |
input_audio_buffer.append | 追加音频数据 |
input_audio_buffer.commit | 提交音频缓冲 |
response.create | 触发模型响应 |
服务端事件
| 事件 | 说明 |
|---|
session.created | 会话已创建 |
response.text.delta | 文本增量 |
response.audio.delta | 音频增量 |
response.done | 响应完成 |
Realtime API 使用 WebSocket 长连接,请确保客户端支持 WebSocket 协议。连接超时默认为 120 秒。