View a markdown version of this page

教程:WebRTC 使用亚马逊 Kinesis Video Streams 进行 TURN 中继 Amazon Kinesis Video Streams - Amazon Bedrock AgentCore

教程:WebRTC 使用亚马逊 Kinesis Video Streams 进行 TURN 中继 Amazon Kinesis Video Streams

在本教程中,您将使用 Amazon Kinesis Video Streams (KVS) 托管 TURN 进行媒体中继,在浏览器客户端和运行时 AgentCore 上运行的代理之间建立 WebRTC 语音连接。该代理使用 Amazon Bedrock 基础模型实时处理音频,用于语音转语音对话。

完成后,WebRTC连接将正常运行,其中音频在浏览器和代理之间双向传输。

本教程需要具有互联网出口的 VPC 才能连接 KVS TURN 端点。有关更多信息,请参阅互联网访问注意事项。所有其他先决条件均由示例应用程序处理。该示例使用 AgentCore CLI 部署到 AgentCore 运行时。

有关完整的示例应用程序,请参阅开启 KVS 的 WebRTC 语音代理。 GitHub

架构

架构图显示了运行时 AgentCore 上的 WebRTC,KVS TURN 通过 VPC 进行中继。
浏览器客户端

一个使用浏览器WebRTC API捕获麦克风音频并播放代理音频响应的网页。

AgentCore 运行时间

托管代理并通过私有子网中的弹性网络接口 (ENI) 连接到用户的 VPC。

座席

部署到 AgentCore 运行时的 Python 应用程序,它通过端点处理 WebRTC 信令和 TURN 凭据管理,并在/invocations客户端和基础模型之间流式传输音频。

具有互联网出站的用户 VPC

提供从代理到 KVS TURN 中继服务器的网络连接。流量从私有子网中的 ENI 通过 NAT 网关和互联网网关路由到达 TURN 端点。

KVS TURN 中继服务器

在浏览器客户端和代理之间中继媒体流量。代理使用 API 从 KVS 获取临时的 TURN 证书。GetIceServerConfig

工作原理

  1. 客户端调用代理来获取 KVS TURN 凭据和 ICE 服务器配置。

  2. 客户创建WebRTC报价并将其发送给代理。代理创建配置有 KVS TURN 服务器的对等连接并返回答案。

  3. 客户端和代理交换 ICE 候选以通过 TURN 服务器建立连接。

  4. 连接后,客户端将通过 WebRTC 将麦克风音频流式传输到代理。代理将音频转发给 Amazon Bedrock 基础模型,并将该模型的口语回复流回客户。