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 음성 연결을 구축합니다. 에이전트는 speech-to-speech 대화를 위해 Amazon Bedrock 파운데이션 모델을 사용하여 실시간으로 오디오를 처리합니다.

완료되면 오디오가 브라우저와 에이전트 간에 양방향으로 스트리밍되는 WebRTC 연결이 작동합니다.

이 자습서에서는 KVS TURN 엔드포인트에 연결하려면 인터넷 송신이 있는 VPC가 필요합니다. 자세한 내용은 인터넷 액세스 고려 사항 섹션을 참조하세요. 다른 모든 사전 조건은 샘플 애플리케이션에서 처리합니다. 이 샘플은 AgentCore 런타임에 배포하기 위해 AgentCore CLI를 사용합니다.

전체 샘플 애플리케이션은 GitHub의 KVS TURN을 사용하는 WebRTC Voice Agent를 참조하세요.

아키텍처

VPC를 통해 KVS TURN이 릴레이되는 AgentCore 런타임의 WebRTC를 보여주는 아키텍처 다이어그램입니다. AgentCore
브라우저 클라이언트

브라우저 WebRTC API를 사용하여 마이크 오디오를 캡처하고 에이전트의 오디오 응답을 재생하는 웹 페이지입니다.

AgentCore 런타임

에이전트를 호스팅하고 프라이빗 서브넷의 탄력적 네트워크 인터페이스(ENI)를 통해 사용자의 VPC에 연결합니다.

에이전트

/invocations 엔드포인트를 통해 WebRTC 신호 및 TURN 자격 증명 관리를 처리하고 클라이언트와 파운데이션 모델 간에 오디오를 스트리밍하는 AgentCore 런타임에 배포된 Python 애플리케이션입니다.

인터넷 송신이 있는 사용자 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 파운데이션 모델로 전달하고 모델의 음성 응답을 클라이언트로 다시 스트리밍합니다.