WebSocket 連線
當您的後端可以安全保存 DGrid API 金鑰時,可直接開啟一個 Realtime WebSocket 連線。| Authorization | Authorization: Bearer <DGRID_API_KEY>; OpenAI-Beta: realtime=v1 |
| 請求 | websocket |
| 回應 | websocket events |
查詢參數
| 參數 | 類型 | 是否必填 | 說明 |
|---|---|---|---|
model | string | 是 | Realtime 模型 ID,例如 gpt-4o-realtime-preview。 |
客戶端事件
| 事件類型 | 說明 |
|---|---|
session.update | 更新會話層級的選項。 |
input_audio_buffer.append | 將音訊區塊串流至伺服器。 |
input_audio_buffer.commit | 提交目前緩衝的音訊。 |
response.create | 觸發新的助手回應。 |
conversation.item.create | 插入一個對話項目。 |
伺服器事件
| 事件類型 | 說明 |
|---|---|
session.created | 會話已成功建立。 |
session.updated | 會話設定已更新。 |
response.text.delta | 串流的文字 token 差量。 |
response.audio.delta | 串流的音訊區塊差量。 |
response.done | 回應已完成。 |
error | 錯誤回應內容。 |
建立 Realtime 會話權杖
當您需要對 Realtime HTTP 入口發送已驗證的 GET 請求時,請使用以下 Realtime 端點範例。| Authorization | Authorization: Bearer <DGRID_API_KEY> |
| 請求 | none |
| 回應 | 101 · application/json |
請求標頭
| 欄位 | 類型 | 是否必填 | 說明 |
|---|---|---|---|
Authorization | string | 是 | 用於驗證 Realtime 請求的 Bearer 權杖。 |
回應內容
| 欄位 | 類型 | 說明 |
|---|---|---|
101 | text | 成功升級的回應,不含 JSON 內容。 |
error | object | 請求失敗時回傳的錯誤內容。 |
WebSocket 事件
請依據一組精簡的請求與回應事件類型來規劃您的客戶端,以實現低延遲的對話串流。| Authorization | Authorization: Bearer <DGRID_API_KEY>; OpenAI-Beta: realtime=v1 |
| 請求 | websocket |
| 回應 | event stream |
核心客戶端事件
| 事件類型 | 說明 |
|---|---|
session.update | 更新模態(modalities)、語音或其他會話偏好設定。 |
input_audio_buffer.append | 傳送已編碼的音訊片段。 |
input_audio_buffer.commit | 將緩衝的音訊標記為就緒。 |
response.create | 要求伺服器開始產生回應。 |
conversation.item.create | 新增一個對話回合或工具結果。 |
核心伺服器事件
| 事件類型 | 說明 |
|---|---|
session.created | 確認 WebSocket 會話已建立的初始事件。 |
session.updated | 確認會話設定已變更。 |
response.text.delta | 增量的文字輸出。 |
response.audio.delta | 增量的音訊輸出。 |
response.done | 已完成回應的最終事件。 |
error | 可恢復或致命的錯誤內容。 |
整合指南
- 將客戶端音訊以小區塊方式緩衝,並使用
input_audio_buffer.commit來標示對話輪次的邊界。 - 若會話支援多模態輸出,請同時監聽
response.text.delta與response.audio.delta。 - 對於瀏覽器客戶端,請使用 HTTP 會話權杖端點,以避免長期有效的 API 金鑰直接暴露於客戶端。

