통합
Amazon Nova 2 Sonic을 다양한 프레임워크 및 플랫폼과 통합하여 대화형 AI 애플리케이션을 빌드할 수 있습니다. 이러한 통합을 통해 일반적인 사용 사례에 대해 미리 구축된 구성 요소와 단순화된 API가 제공됩니다.
Strands Agents
Strands Agents는 AI 에이전트를 빌드하고 실행하는 모델 기반 접근 방식을 채택하는 단순하지만 강력한 SDK입니다. 단순한 대화형 어시스턴트부터 복잡한 자율 워크플로, 로컬 개발부터 프로덕션 배포에 이르기까지 Strands Agents는 필요에 따라 규모가 조정됩니다.
Strands 프레임워크에 대한 포괄적인 설명서는 공식 Strands 설명서
Strands BidiAgent에서는 영구 스트리밍 연결을 통해 실시간 오디오 및 텍스트 상호 작용을 제공합니다. 기존 요청-응답 패턴과 달리, 이 에이전트는 중단, 동시 처리 및 지속적인 오디오 응답을 지원하여 장기 대화를 유지 관리합니다.
사전 조건:
-
Python 3.8 이상 설치
-
Amazon Bedrock에 대한 액세스 권한으로 구성된 AWS의 자격 증명
-
Python async/await 구문에 대한 기본적인 지식
코드 예제:
설치:
필수 패키지를 설치합니다.
pip install strands-agents strands-agents-tools
다음 예제를 실행합니다.
import asyncio from strands.experimental.bidi.agent import BidiAgent from strands.experimental.bidi.io.audio import BidiAudioIO from strands.experimental.bidi.io.text import BidiTextIO from strands.experimental.bidi.models.novasonic import BidiNovaSonicModel from strands_tools import calculator async def main(): """Test the BidirectionalAgent API.""" # Audio and Text input/output utility audio_io = BidiAudioIO(audio_config={}) text_io = BidiTextIO() # Nova Sonic model model = BidiNovaSonicModel(region="us-east-1") async with BidiAgent(model=model, tools=[calculator]) as agent: print("New BidiAgent Experience") print("Try asking: 'What is 25 times 8?' or 'Calculate the square root of 144'") await agent.run( inputs=[audio_io.input()], outputs=[audio_io.output(), text_io.output()] ) if __name__ == "__main__": try: asyncio.run(main()) except KeyboardInterrupt: print("\nConversation ended by user") except Exception as e: print(f"Error: {e}") import traceback traceback.print_exc()
from strands.experimental.bidi.agent import BidiAgent from strands.experimental.bidi.io.audio import BidiAudioIO from strands.experimental.bidi.io.text import BidiTextIO from strands.experimental.bidi.models.novasonic import BidiNovaSonicModel from strands_tools import calculator
-
BidiAgent: 양방향 대화를 오케스트레이션하는 기본 에이전트 클래스
-
BidiAudioIO: 음성 상호 작용에 대한 오디오 입력 및 출력 처리
-
BidiTextIO: 트랜스크립션 및 응답에 대한 텍스트 출력 제공
-
BidiNovaSonicModel Nova 2 Sonic 모델 래퍼
-
Calculator: 수학 작업을 위한 사전 빌드된 도구
audio_io = BidiAudioIO(audio_config={}) text_io = BidiTextIO()
BidiAudioIO는 마이크 입력 및 스피커 출력을 관리하는 반면, BidiTextIO는 콘솔에 텍스트 트랜스크립션 및 응답을 표시합니다.
model = BidiNovaSonicModel(region="us-east-1")
Nova Sonic 모델 인스턴스를 생성합니다. 리전 파라미터는 모델이 배포되는 AWS 리전을 지정합니다.
async with BidiAgent(model=model, tools=[calculator]) as agent: await agent.run( inputs=[audio_io.input()], outputs=[audio_io.output(), text_io.output()] )
에이전트는 다음을 사용하여 생성됩니다.
-
모델: 사용할 Nova 2 Sonic 모델
-
도구: 에이전트가 직접 호출할 수 있는 도구 목록(예: 계산기)
-
입력: 마이크의 오디오 입력
-
출력: 화자로의 오디오 출력 및 콘솔로의 텍스트 출력
프레임워크 통합
Amazon Nova 2 Sonic을 다양한 프레임워크 및 플랫폼과 통합하여 정교한 음성 애플리케이션을 빌드할 수 있습니다. 다음 예제에서는 널리 사용되는 프레임워크와의 통합 패턴을 보여줍니다.
Amazon Bedrock AgentCore는 엔터프라이즈급 보안 및 확장성을 갖춘 Nova 2 Sonic 애플리케이션을 배포하기 위한 관리형 런타임 환경을 제공합니다. AgentCore는 인프라, 인증 및 WebSocket 연결을 처리하여 실시간 음성 AI 애플리케이션의 배포를 단순화합니다.
주요 기능:
-
양방향 스트리밍 - 실시간 이벤트 처리 및 짧은 지연 시간 통신을 바탕으로 Nova Sonic의 전이중 스트리밍 인터페이스에 대한 기본 지원.
-
WebSocket 인프라 - 자동 조정, 연결 관리 및 오류 복구를 지원하는 프로덕션 지원 WebSocket 서버.
-
컨테이너 배포 - 수평적 스케일링 및 독립 버전 관리를 통해 Nova Sonic 애플리케이션을 관리형 인프라에 컨테이너로 배포합니다.
-
엔터프라이즈 보안 - IAM 및 SigV4를 통한 세분화된 인증, VPC 격리 및 포괄적인 감사 로깅.
아키텍처는 클라이언트 애플리케이션이 SigV4 인증을 사용하여 WebSocket을 통해 AgentCore 런타임에 연결하는 방법을 보여줍니다. 컨테이너화된 환경에는 WebSocket 서버, 애플리케이션 로직 및 Nova Sonic 클라이언트가 포함되며, 모두 양방향 스트리밍 API를 통해 Nova Sonic과 통신합니다.
이점:
-
단순화된 작업: AgentCore가 인프라, 규모 조정 및 신뢰성을 관리하는 동안 애플리케이션 로직에 집중합니다.
-
엔터프라이즈 보안: 프로덕션 배포에 대한 기본 제공 인증, 권한 부여 및 규정 준수 기능.
-
비용 효율성: 자동 조정 및 리소스 최적화에서 사용한 만큼만 비용을 지불합니다.
-
개발자 생산성: 관리형 WebSocket 인프라 및 컨테이너 배포를 통해 프로덕션으로 이전 시간을 단축합니다.
사용 사례
-
보안 인증을 사용하는 고객 서비스 음성 어시스턴트
-
IAM 통합이 필요한 엔터프라이즈 음성 애플리케이션
-
격리된 배포가 포함된 다중 테넌트 음성 플랫폼
-
규정 준수 및 감사 추적이 필요한 음성 지원 애플리케이션
AgentCore를 사용하여 Nova Sonic을 배포하는 방법에 대한 자세한 내용은 Amazon Bedrock AgentCore 설명서
LiveKit은 실시간 오디오 및 비디오 애플리케이션을 빌드하기 위한 오픈 소스 플랫폼입니다. Amazon Nova 2 Sonic과의 통합을 통해 개발자는 복잡한 오디오 파이프라인 또는 신호 프로토콜을 관리하지 않고도 대화형 음성 인터페이스를 빌드할 수 있습니다.
자세한 구현 예제와 코드 예제는 LiveKit AWS 통합 설명서
작동 방식:
-
클라이언트 계층: 웹, 모바일 또는 데스크톱 애플리케이션은 오디오 캡처, WebRTC 스트리밍 및 재생을 처리하는 LiveKit의 클라이언트 SDK를 사용하여 연결됩니다.
-
LiveKit 서버: 실시간 통신 허브 역할을 수행하며 WebRTC 연결을 관리하고, 오디오 스트림을 라우팅하며, 지연 시간이 짧은 최적화로 세션 상태를 처리합니다.
-
LiveKit 에이전트: 서버에서 오디오를 수신하여 Nova Sonic 플러그인을 통해 이를 처리하고 응답을 다시 스트리밍하는 Python 기반 에이전트입니다. 음성 활동 탐지 및 턴 관리와 같은 기본 제공 기능을 포함합니다.
-
Amazon Nova 2 Sonic: 양방향 스트리밍 API를 통해 오디오 스트림을 처리하면서 음성 인식과 자연어 이해를 수행하고 합성된 음성으로 대화 응답을 생성합니다.
Pipecat은 음성 및 멀티모달 대화형 AI 애플리케이션을 빌드하기 위한 프레임워크입니다. Amazon Nova Sonic 및 기타 AWS 서비스를 사용하여 지능형 음성 애플리케이션을 생성하기 위해 여러 구성 요소를 오케스트레이션하는 모듈식 파이프라인 기반 아키텍처를 제공합니다.
자세한 구현 예제 및 코드 샘플은 PipeCat AWS 통합 설명서
주요 기능:
-
파이프라인 아키텍처: ASR, NLU, TTS 등을 비롯해 음성 AI 구성 요소를 구성하기 위한 모듈식 Python 기반 프레임워크.
-
Pipecat 흐름: 복잡한 대화형 로직 및 도구 실행을 구축하기 위한 상태 관리 프레임워크.
-
WebRTC 지원: 실시간 오디오 스트리밍에 대한 Daily 및 기타 WebRTC 제공업체와의 기본 제공 통합.
-
AWS 통합: Amazon Bedrock, Amazon Transcribe 및 Amazon Polly에 대한 기본 지원입니다.
아키텍처에는 다음이 포함됩니다.
-
WebRTC 전송: 클라이언트 디바이스와 애플리케이션 서버 간 실시간 오디오 스트리밍.
-
음성 활동 탐지(VAD): 구성 가능한 음성 탐지 및 노이즈 억제 기능이 있는 Silero VAD.
-
음성 인식: 정확한 실시간 음성-텍스트 변환을 위한 Amazon Transcribe.
-
자연어 이해: 지연 시간에 최적화된 추론을 지원하는 Bedrock 기반 Amazon Nova Pro.
-
도구 실행: API 통합 및 백엔드 서비스 직접 호출을 위한 Pipecat 흐름.
-
응답 생성: 일관된 컨텍스트 인식 응답을 위한 Amazon Nova Pro.
-
텍스트-음성: 생생한 음성 출력을 위한 생성형 음성을 사용하는 Amazon Polly.
AWS 클라우드 개발 키트(CDK)와 함께 코드형 인프라를 사용하여 AWS에 Nova Sonic 애플리케이션을 배포합니다. 이 접근 방식에서는 모범 사례가 기본적으로 제공되는 반복 가능한 버전 제어 배포를 제공합니다.
배포 옵션
-
Amazon Elastic Container Service(ECS): Application Load Balancer 통합, 오토 스케일링 및 서버리스 Fargate 실행을 통한 완전관리형 컨테이너 오케스트레이션.
-
Amazon Elastic Kubernetes Services(EKS): 복잡한 오케스트레이션, 고급 네트워킹, 다중 리전 배포 및 광범위한 툴링 에코시스템을 위한 관리형 Kubernetes.
-
AWS CDK: AWS CDK를 사용하면 익숙한 프로그래밍 언어를 사용하여 클라우드 인프라를 정의할 수 있습니다.
AWS CDK를 사용하여 Nova Sonic을 배포하는 완전한 프로덕션 지원 예제는 GitHub의 Speech-to-Speech CDK Sample
-
TypeScript를 사용하여 CDK 인프라 설정 완료
-
실시간 통신을 위한 WebSocket 서버 구현
-
ECS 및 Fargate를 사용하는 컨테이너 배포
-
WebSocket 지원을 위한 Application Load Balancer 구성
-
VPC 네트워킹 및 보안 그룹 설정
-
CloudWatch 모니터링 및 로깅
-
프로덕션 배포 모범 사례
다중 에이전트 아키텍처는 복잡한 태스크를 처리하는 AI 어시스턴트를 설계하는 데 널리 사용되는 패턴입니다. Nova 2 Sonic에서 지원하는 음성 어시스턴트에서 이 아키텍처는 여러 전문 에이전트를 조정하며, 각 에이전트는 독립적으로 작동하여 병렬 처리, 모듈식 설계 및 규모 조정 가능한 솔루션을 지원합니다.
Nova Sonic은 다중 에이전트 시스템에서 오케스트레이터 역할을 하며 다음과 같은 두 가지 주요 기능을 수행합니다.
대화 흐름 관리: 대화의 다음 단계를 진행하기 전에 필요한 모든 정보가 수집되었는지 확인합니다.
의도 분류: 사용자 문의를 분석하여 적절한 전문 하위 에이전트로 라우팅합니다.
위 다이어그램에서는 다중 에이전트 아키텍처를 사용하는 뱅킹 음성 어시스턴트를 보여줍니다. 대화 흐름은 인사말과 사용자 이름 수집으로 시작한 다음, 전문 하위 에이전트를 통해 뱅킹 또는 모기지와 관련된 문의를 처리합니다.
대화 흐름 예제:
-
사용자가 음성 어시스턴트에 연결합니다.
-
Nova 2 Sonic: "안녕하세요! 이름은 어떻게 되세요?"
-
사용자: "내 이름은 John이라고 해."
-
Nova 2 Sonic: "안녕하세요, John. 오늘 어떻게 도와드릴까요?"
-
사용자: "내 계정 잔액을 확인하고 싶어."
-
Nova 2 Sonic: [인증 에이전트로 라우팅]
-
인증 에이전트: "계정 ID를 제공하세요."
-
사용자: "12345"
-
인증 에이전트: [자격 증명 확인]
-
Nova 2 Sonic: [뱅킹 에이전트로 라우팅]
-
뱅킹 에이전트: "현재 잔액은 5,431,10 USD입니다."
이 예제에서는 Amazon Bedrock AgentCore에 배포된 Strands Agents 프레임워크를 사용하는 하위 에이전트를 보여주지만, 이 아키텍처는 유연합니다. 선택 항목:
-
선호하는 에이전트 프레임워크
-
모든 LLM 공급자
-
사용자 지정 호스팅 옵션
-
여러 오케스트레이션 패턴
이점:
-
모듈성: 각 에이전트는 특정 도메인에 집중하므로 시스템을 더 쉽게 유지 관리하고 업데이트할 수 있습니다.
-
확장성: 기존 에이전트를 수정하지 않고도 새 에이전트를 추가하여 필요에 따라 시스템을 확장할 수 있습니다.
-
병렬 처리: 여러 에이전트가 동시에 작동하여 복잡한 쿼리의 응답 시간을 개선할 수 있습니다.
-
전문성: 가장 적합한 도구와 지식 베이스를 사용하여 각 에이전트를 특정 태스크에 맞게 최적화할 수 있습니다.
-
장애 격리: 한 에이전트가 실패해도 다른 에이전트는 계속 작동하여 전체 시스템 신뢰성을 개선합니다.
자세한 내용과 코드 예제는 이 블로그
실습 샘플은 Nova Sonic Workshop Multi-Agent Lab
Amazon Nova 2 Sonic은 텔레포니 제공업체와 통합되어 전화를 통해 AI 기반 음성 애플리케이션에 액세스할 수 있습니다. 이 가이드에서는 고객 센터 솔루션 및 음성 에이전트를 빌드하기 위한 Twilio, Vonage 및 기타 SIP 기반 시스템과의 통합을 다룹니다.
Twilio: 프로그래밍 가능한 음성 및 미디어 스트리밍 기능을 갖춘 클라우드 통신 플랫폼.
Vonage: 음성, WebSocket 오디오 스트리밍 및 SIP 연결을 사용하는 글로벌 통신 API.
AWS는 실시간 분석 및 텔레포니 통합을 통해 고객 센터 환경에서 Nova Sonic을 보여주는 포괄적인 샘플 구현을 제공합니다.