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 Runtime で実行されているエージェントの間に WebRTC 音声接続を構築します。エージェントは、speech-to-speech上げ会話用の Amazon Bedrock 基盤モデルを使用して音声をリアルタイムで処理します。

完了すると、ブラウザとエージェント間でオーディオが双方向にストリーミングされる WebRTC 接続が動作します。

このチュートリアルでは、KVS TURN エンドポイントへの接続にインターネット出力を備えた VPC が必要です。詳細については、「インターネットアクセスに関する考慮事項」を参照してください。その他の前提条件はすべて、サンプルアプリケーションによって処理されます。このサンプルでは、AgentCore CLI を使用して AgentCore ランタイムにデプロイします。

完全なサンプルアプリケーションについては、GitHub の「KVS TURN を使用した WebRTC Voice Agent」を参照してください。

アーキテクチャ

VPC 経由で中継する KVS TURN を使用した AgentCore ランタイムの WebRTC を示すアーキテクチャ図。
ブラウザクライアント

ブラウザ WebRTC API を使用してマイクオーディオをキャプチャし、エージェントのオーディオレスポンスを再生するウェブページ。

AgentCore ランタイム

エージェントをホストし、プライベートサブネットの Elastic Network Interface (ENI) を介してユーザーの VPC にアタッチします。

[エージェント]

/invocations エンドポイントを介して WebRTC シグナリングと TURN 認証情報管理を処理し、クライアントと基盤モデルの間で音声をストリーミングする AgentCore ランタイムにデプロイされた Python アプリケーション。

インターネット出力を使用するユーザー VPC

エージェントから KVS TURN リレーサーバーへのネットワーク接続を提供します。トラフィックは、プライベートサブネットの ENI から NAT ゲートウェイとインターネットゲートウェイを経由して TURN エンドポイントに到達します。

KVS TURN リレーサーバー

ブラウザクライアントとエージェント間のメディアトラフィックを中継します。エージェントは、GetIceServerConfig API を使用して KVS から一時的な TURN 認証情報を取得します。

仕組み

  1. クライアントは エージェントを呼び出して、KVS TURN 認証情報と ICE サーバー設定を取得します。

  2. クライアントは WebRTC オファーを作成し、エージェントに送信します。エージェントは、KVS TURN サーバーで設定されたピア接続を作成し、回答を返します。

  3. クライアントとエージェントは ICE 候補を交換して、TURN サーバーを介した接続を確立します。

  4. 接続されると、クライアントは WebRTC を介してマイクオーディオをエージェントにストリーミングします。エージェントは音声を Amazon Bedrock 基盤モデルに転送し、モデルの音声レスポンスをクライアントにストリーミングします。