View a markdown version of this page

整合 - Amazon Nova

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

整合

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 應用程式的部署。

AgentCore 架構顯示用戶端應用程式透過 WebSocket 連線至使用 Nova Sonic 的執行期容器。

主要功能:

  • 雙向串流 - 原生支援 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 整合文件。

架構圖顯示 Amazon Bedrock 使用 WebRTC 和 Nova Sonic 與 的 LiveKit 整合。

運作方式:

  • 用戶端層: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 的原生支援。

架構圖顯示透過 VAD Amazon Transcribe、管道流程的語音輸入流程 Amazon Bedrock,以及透過 WebRTC 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 範例。此範例將示範:

架構圖顯示使用者透過 HTTPS 和 WebSocket 連線至靜態網站和speech-to-speech服務元件,以及與 Nova Sonic Amazon Bedrock 整合。
  • 使用 TypeScript 完成 CDK 基礎設施設定

  • 即時通訊的 WebSocket 伺服器實作

  • 使用 ECS 和 Fargate 進行容器部署

  • WebSocket 支援的 Application Load Balancer 組態

  • VPC 聯網和安全群組設定

  • CloudWatch 監控和記錄

  • 生產部署的最佳實務

多代理程式架構是廣泛使用的模式,用於設計處理複雜任務的 AI 助理。在採用 Nova 2 Sonic 技術的語音助理中,此架構會協調多個專門的代理程式,其中每個代理程式都會獨立運作,以啟用平行處理、模組化設計和可擴展的解決方案。

Nova Sonic 做為多代理程式系統中的協調器,執行兩個關鍵函數:

對話流程管理:確保在繼續對話的下一個步驟之前收集所有必要資訊。

目的分類:分析使用者查詢,並將其路由至適當的專業子代理程式。

架構圖顯示從使用者到三個處理身分驗證、銀行和抵押貸款服務的客服人員的問候通話流程。

上圖顯示使用多客服人員架構的銀行語音助理。對話流程從問候和收集使用者名稱開始,然後透過專業子代理處理與銀行或抵押貸款相關的查詢。

對話流程範例:

  1. 使用者連接到語音助理。

  2. Nova 2 Sonic:「您好!您的名字是什麼?」

  3. 使用者:「我的名字是 John」

  4. Nova 2 Sonic:「Hi John,我今天如何協助您?」

  5. 使用者:「我想要檢查我的帳戶餘額」

  6. Nova 2 Sonic:【身分驗證代理程式的路由】

  7. 身分驗證代理程式:「請提供您的帳戶 ID」

  8. 使用者:"12345"

  9. 身分驗證代理程式:【驗證身分】

  10. Nova 2 Sonic:【轉接至銀行客服人員】

  11. 銀行代理:「您目前的餘額為 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。

儲存庫:使用電話的範例音波聯絡中心