View a markdown version of this page

教學課程:使用 Amazon Kinesis Video Streams 轉送具有 TURN 的 WebRTC - Amazon Bedrock AgentCore

教學課程:使用 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

架構圖顯示透過 VPC 轉送 KVS TURN 的 AgentCore 執行期上的 WebRTC。
瀏覽器用戶端

使用瀏覽器 WebRTC API 擷取麥克風音訊並播放客服人員音訊回應的網頁。

AgentCore 執行期

託管代理程式,並透過私有子網路中的彈性網路界面 (ENI) 連接到使用者的 VPC。

客服人員

部署到 AgentCore 執行期的 Python 應用程式,透過/invocations端點處理 WebRTC 訊號和 TURN 憑證管理,並在用戶端和基礎模型之間串流音訊。

具有網際網路輸出的使用者 VPC

提供從代理程式到 KVS TURN 轉送伺服器的網路連線。透過 NAT 閘道和網際網路閘道從私有子網路中的 ENI 路由到 TURN 端點的流量。

KVS TURN 轉送伺服器

轉送瀏覽器用戶端與代理程式之間的媒體流量。代理程式會使用 GetIceServerConfig API 從 KVS 取得臨時 TURN 登入資料。

運作方式

  1. 用戶端會叫用代理程式來擷取 KVS TURN 登入資料和 ICE 伺服器組態。

  2. 用戶端會建立 WebRTC 優惠,並將其傳送給客服人員。代理程式會建立使用 KVS TURN 伺服器設定的對等連線,並傳回答案。

  3. 用戶端和代理程式會交換 ICE 候選項目,以透過 TURN 伺服器建立連線。

  4. 連線後,用戶端會透過 WebRTC 將麥克風音訊串流至客服人員。代理程式會將音訊轉送至 Amazon Bedrock 基礎模型,並將模型的語音回應串流回用戶端。