實作指南 / 10 分鐘
把 Realtime 當成即時系統
Transport、turn detection、interruption 與 tools 共同塑造體驗。
Realtime sessions 用於低延遲 live interaction。Production voice 不只 streaming audio;還需要適合 client 的 transport、明確 session state、interruption behavior、tool latency budget 與 partial turn recovery。
工作原則
Outcome 決定 architecture
互動式低延遲工作使用 live session;檔案與有界 generation 使用 request-based audio。
中斷是常態
使用者會插話、網路會 jitter、tools 會晚到;partial audio 與 cancellation 都是核心 state。
Credentials 留在 server
Client 只取得範圍有限的 session credential 或走 server-mediated path;不能放 long-lived platform key。
實地程序
- 01
定義 conversation job
先決定系統是 respond、translate 或 transcribe;三者有不同 lifecycle。
- 02
選擇 transport
直接 media client 選 browser-oriented realtime transport;telephony 或 media pipeline 選 server-oriented streaming。
- 03
建立 turn states
追蹤 listening、committing、thinking、speaking、interrupted、tool-waiting、reconnecting 與 ended。
- 04
預算 tool latency
對無法在對話停頓內完成的 tool 設 deadline、ack cue 與 fallback language。
- 05
測試真實條件
評估噪音、口音、慢網路、device change、double-talk、reconnect 與 long session。
PASS / FAIL
驗收清單
- Long-lived API key 不會到 client。
- UI 顯示 listening 與 speaking state。
- 中斷會安全取消 stale output 與 tool work。
- Session log 能串起 transport、turn、tool 與 outcome。
WATCH / REJECT
失敗模式
- 把 demo microphone loop 當 production architecture。
- 忽略 echo、reconnect 或 overlapping speech。
- 讓 late tool result 修改更新的 conversation turn。