本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
整合
Amazon Nova 2 Sonic 可與各種架構和平台整合,以建置對話式 AI 應用程式。這些整合為常見使用案例提供預先建置的元件和簡化APIs。
Strands 代理程式
Strands Agents 是一種簡單但功能強大的 SDK,採用模型驅動方法來建置和執行 AI 代理器。從簡單的對話助理到複雜的自主工作流程,從本機開發到生產部署,Strands Agents 可根據您的需求進行擴展。
如需 Strands 架構的完整文件,請造訪官方 Strands 文件
Strands BidiAgent 透過持久性串流連線提供即時音訊和文字互動。與傳統的請求回應模式不同,此代理程式會維護長時間執行的對話,並支援中斷、並行處理和持續音訊回應。
先決條件:
-
已安裝 Python 3.8 或更新版本
-
AWS 已設定可存取 Amazon Bedrock 的登入資料
-
基本熟悉 Python 非同步/等待語法
程式碼範例:
安裝:
安裝必要的套件:
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 模型包裝函式
-
計算器:數學操作的預先建置工具
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 整合文件。
運作方式:
-
用戶端層:Web、行動或桌面應用程式會使用 LiveKit 的用戶端 SDKs 進行連線,該 SDK 會處理音訊擷取、WebRTC 串流和播放。
-
LiveKit 伺服器:充當即時通訊中樞、管理 WebRTC 連線、路由音訊串流,以及使用低延遲最佳化處理工作階段狀態。
-
LiveKit 代理程式:Python 型代理程式,可接收來自伺服器的音訊、透過 Nova Sonic 外掛程式處理音訊,並將回應串流回去。包括語音活動偵測和轉彎管理等內建功能。
-
Amazon Nova 2 Sonic:透過雙向串流 API 處理音訊串流、執行語音辨識、自然語言理解,以及使用合成語音產生對話式回應。
Pipecat 是建置語音和多模式對話式 AI 應用程式的架構。它提供模組化的管道型架構,可協調多個元件,以使用 Amazon Nova Sonic 和其他 AWS 服務建立智慧型語音應用程式。
如需詳細的實作範例和程式碼範例,請參閱 PipeCat AWS 整合文件。
主要功能:
-
管道架構:模組化 Python 架構,用於編寫語音 AI 元件,包括 ASR、NLU、TTS 等。
-
Pipecat 流程:用於建置複雜對話邏輯和工具執行的狀態管理架構。
-
WebRTC 支援:內建與每日和其他 WebRTC 供應商整合,以進行即時音訊串流。
-
AWS 整合:Amazon Bedrock、Amazon Transcribe 和 Amazon Polly 的原生支援。
架構包括:
-
WebRTC 傳輸:用戶端裝置和應用程式伺服器之間的即時音訊串流。
-
語音活動偵測 (VAD):具有可設定語音偵測和雜訊抑制的 Silero VAD。
-
語音辨識:Amazon Transcribe 可提供準確的即時speech-to-text轉換。
-
自然語言理解:Amazon Nova Pro on Bedrock 搭配延遲最佳化推論。
-
工具執行:適用於 API 整合和後端服務呼叫的 Pipecat Flows。
-
回應產生:Amazon Nova Pro 提供一致的內容感知回應。
-
Text-to-speech:具有生成語音的 Amazon Polly,可提供逼真的語音輸出。
透過 AWS CDK (雲端開發套件) 將 Nova Sonic 應用程式部署至 AWS 使用基礎設施做為程式碼。此方法提供可重複、版本控制的部署,並內建最佳實務。
部署選項
-
Amazon ECS (彈性容器服務):具有 Application Load Balancer 整合、自動擴展和無伺服器 Fargate 執行的全受管容器協同運作。
-
Amazon EKS (彈性 Kubernetes 服務):適用於複雜協同運作、進階聯網、多區域部署和廣泛工具生態系統的受管 Kubernetes。
-
AWS CDK: AWS CDK 可讓您使用熟悉的程式設計語言定義雲端基礎設施。
如需使用 AWS CDK 部署 Nova Sonic 的完整生產就緒範例,請參閱 GitHub Speech-to-Speech CDK 範例
-
使用 TypeScript 完成 CDK 基礎設施設定
-
即時通訊的 WebSocket 伺服器實作
-
使用 ECS 和 Fargate 進行容器部署
-
WebSocket 支援的 Application Load Balancer 組態
-
VPC 聯網和安全群組設定
-
CloudWatch 監控和記錄
-
生產部署的最佳實務
多代理程式架構是廣泛使用的模式,用於設計處理複雜任務的 AI 助理。在採用 Nova 2 Sonic 技術的語音助理中,此架構會協調多個專門的代理程式,其中每個代理程式都會獨立運作,以啟用平行處理、模組化設計和可擴展的解決方案。
Nova Sonic 做為多代理程式系統中的協調器,執行兩個關鍵函數:
對話流程管理:確保在繼續對話的下一個步驟之前收集所有必要資訊。
目的分類:分析使用者查詢,並將其路由至適當的專業子代理程式。
上圖顯示使用多客服人員架構的銀行語音助理。對話流程從問候和收集使用者名稱開始,然後透過專業子代理處理與銀行或抵押貸款相關的查詢。
對話流程範例:
-
使用者連接到語音助理。
-
Nova 2 Sonic:「您好!您的名字是什麼?」
-
使用者:「我的名字是 John」
-
Nova 2 Sonic:「Hi John,我今天如何協助您?」
-
使用者:「我想要檢查我的帳戶餘額」
-
Nova 2 Sonic:【身分驗證代理程式的路由】
-
身分驗證代理程式:「請提供您的帳戶 ID」
-
使用者:"12345"
-
身分驗證代理程式:【驗證身分】
-
Nova 2 Sonic:【轉接至銀行客服人員】
-
銀行代理:「您目前的餘額為 5,431,10 美元」
雖然此範例示範使用部署在 Amazon Bedrock AgentCore 上的 Strands Agents 架構的子代理程式,但架構具有彈性。您可以選擇:
-
您偏好的代理程式架構
-
任何 LLM 供應商
-
自訂託管選項
-
不同的協同運作模式
優點:
-
模組化:每個代理程式都專注於特定網域,讓系統更容易維護和更新。
-
可擴展性:新增客服人員而不修改現有的客服人員,讓您的系統能夠隨您的需求成長。
-
平行處理:多個客服人員可以同時運作,改善複雜查詢的回應時間。
-
專業:可以使用最適當的工具和知識庫,針對其特定任務最佳化每個代理程式。
-
故障隔離:如果一個代理程式失敗,其他代理程式會繼續運作,改善整體系統可靠性。
如需更多詳細資訊和程式碼範例,請參閱此部落格
如需實作範例,請參閱 Nova Sonic Workshop Multi-Agent Lab
Amazon Nova 2 Sonic 與電話服務供應商整合,讓採用 AI 技術的語音應用程式可以透過電話進行存取。本指南涵蓋與 Twilio、Vonage 和其他以 SIP 為基礎的系統整合,用於建置聯絡中心解決方案和語音客服人員。
Twilio:具有可程式設計語音和媒體串流功能的雲端通訊平台。
Vonage:具有語音、WebSocket 音訊串流和 SIP 連線能力的全域通訊 APIs。
AWS 提供全方位的範例實作,在具有即時分析和電話整合的聯絡中心環境中示範 Nova Sonic。
儲存庫:使用電話的範例音波聯絡中心