教學課程:使用 Amazon Kinesis Video Streams 轉送具有 TURN 的 WebRTC
在本教學課程中,您會使用 Amazon Kinesis Video Streams (KVS) 受管 TURN 進行媒體轉送,在瀏覽器用戶端與在 AgentCore 執行時間上執行的代理程式之間建置 WebRTC 語音連線。客服人員使用 Amazon Bedrock 基礎模型即時處理音訊,以進行speech-to-speech對話。
完成後,您會有一個正常運作的 WebRTC 連線,其中音訊會在瀏覽器和代理程式之間雙向串流。
本教學課程需要具備網際網路輸出的 VPC,才能連線至 KVS TURN 端點。如需詳細資訊,請參閱網際網路存取考量。所有其他先決條件均由範例應用程式處理。此範例使用 AgentCore CLI 來部署至 AgentCore 執行期。
如需完整範例應用程式,請參閱 GitHub 上的 WebRTC 客服人員與 KVS TURN
Architecture
- 瀏覽器用戶端
-
使用瀏覽器 WebRTC API 擷取麥克風音訊並播放客服人員音訊回應的網頁。
- AgentCore 執行期
-
託管代理程式,並透過私有子網路中的彈性網路界面 (ENI) 連接到使用者的 VPC。
- 客服人員
-
部署到 AgentCore 執行期的 Python 應用程式,透過
/invocations端點處理 WebRTC 訊號和 TURN 憑證管理,並在用戶端和基礎模型之間串流音訊。 - 具有網際網路輸出的使用者 VPC
-
提供從代理程式到 KVS TURN 轉送伺服器的網路連線。透過 NAT 閘道和網際網路閘道從私有子網路中的 ENI 路由到 TURN 端點的流量。
- KVS TURN 轉送伺服器
-
轉送瀏覽器用戶端與代理程式之間的媒體流量。代理程式會使用 GetIceServerConfig API 從 KVS 取得臨時 TURN 登入資料。
運作方式
-
用戶端會叫用代理程式來擷取 KVS TURN 登入資料和 ICE 伺服器組態。
-
用戶端會建立 WebRTC 優惠,並將其傳送給客服人員。代理程式會建立使用 KVS TURN 伺服器設定的對等連線,並傳回答案。
-
用戶端和代理程式會交換 ICE 候選項目,以透過 TURN 伺服器建立連線。
-
連線後,用戶端會透過 WebRTC 將麥克風音訊串流至客服人員。代理程式會將音訊轉送至 Amazon Bedrock 基礎模型,並將模型的語音回應串流回用戶端。