Tutorial: WebRTC con inoltro TURN con Amazon Kinesis Video Streams
In questo tutorial, creerai una connessione vocale WebRTC tra un client browser e un agente in esecuzione AgentCore su Runtime, utilizzando TURN gestito da Amazon Kinesis Video Streams (KVS) per l'inoltro multimediale. L'agente elabora l'audio in tempo reale utilizzando un modello di base Amazon Bedrock per la conversazione da voce a voce.
Al termine, disporrai di una connessione WebRTC funzionante in cui l'audio viene trasmesso in modo bidirezionale tra il browser e il tuo agente.
Questo tutorial richiede un VPC con uscita Internet per la connettività agli endpoint KVS TURN. Per ulteriori informazioni, consulta Considerazioni sull'accesso a Internet. Tutti gli altri prerequisiti vengono gestiti dall'applicazione di esempio. L'esempio utilizza la AgentCore CLI per la distribuzione in Runtime. AgentCore
Per l'applicazione di esempio completa, vedi WebRTC Voice Agent con KVS TURN attivo
Architecture
- Client del browser
-
Una pagina Web che acquisisce l'audio del microfono utilizzando l'API WebRTC del browser e riproduce la risposta audio dell'agente.
- AgentCore Runtime
-
Ospita l'agente e si collega al VPC dell'utente tramite un'interfaccia di rete elastica (ENI) in una sottorete privata.
- Agente
-
Un'applicazione Python distribuita su AgentCore Runtime che gestisce la segnalazione WebRTC e la gestione delle credenziali TURN attraverso l'
/invocationsendpoint e trasmette l'audio tra il client e un modello base. - VPC utente con uscita Internet
-
Fornisce la connettività di rete dall'agente al relay server KVS TURN. Il traffico proveniente dall'ENI si dirige verso la sottorete privata attraverso un gateway NAT e un gateway internet per raggiungere gli endpoint TURN.
- Server di inoltro KVS TURN
-
Inoltra il traffico multimediale tra il client del browser e l'agente. L'agente ottiene le credenziali TURN temporanee da KVS utilizzando l'API. GetIceServerConfig
Come funziona
-
Il client richiama l'agente per recuperare le credenziali KVS TURN e la configurazione del server ICE.
-
Il cliente crea un'offerta WebRTC e la invia all'agente. L'agente crea una connessione peer configurata con i server KVS TURN e restituisce una risposta.
-
Il cliente e l'agente si scambiano i candidati ICE per stabilire la connettività tramite il server TURN.
-
Una volta connesso, il client trasmette l'audio del microfono all'agente tramite WebRTC. L'agente inoltra l'audio a un modello base Amazon Bedrock e trasmette la risposta vocale del modello al cliente.