集成
Amazon Nova 2 Sonic 可与多种框架和平台集成,用于构建对话式人工智能应用程序。这些集成为常见使用案例提供了预先构建的组件和简化的 API。
Strands Agents
Strands Agents 是一个简单但功能强大的 SDK,采用模型驱动的方法来构建和运行人工智能代理。从简易对话助手到复杂自主工作流,从本地开发到生产部署,Strands Agents 均可随您的需求灵活扩展。
有关 Strands 框架的完整文档,请访问 Srands 官方文档
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 模型实例。region 参数指定部署模型所在的 AWS 区域。
async with BidiAgent(model=model, tools=[calculator]) as agent: await agent.run( inputs=[audio_io.input()], outputs=[audio_io.output(), text_io.output()] )
创建代理时需配置以下项:
-
Model:要使用的 Nova 2 Sonic 模型
-
Tools:代理可调用的工具列表(如计算器)
-
Inputs:麦克风音频输
-
Outputs:音频输出到扬声器,文本输出到控制台
框架集成
Amazon Nova 2 Sonic 可与各种框架和平台集成,用于构建高阶语音应用程序。以下示例展示了与主流框架的集成方案。
Amazon Bedrock AgentCore 为部署具有企业级安全性和可扩展性的 Nova 2 Sonic 应用程序,提供了托管运行时环境。AgentCore 负责底层基础设施、身份验证及 WebSocket 连接管理,简化了实时语音人工智能应用程序的部署流程。
主要特征:
-
双向流式传输:原生支持 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 集成文档
工作原理:
-
客户端层:网络、移动或桌面应用程序使用 LiveKit 的客户端 SDK 进行连接,这些软件开发工具包处理音频采集、WebRTC 流式传输和播放。
-
LiveKit 服务器:充当实时通信中心,管理 WebRTC 连接,路由音频流,并通过低延迟优化处理会话状态。
-
LiveKit Agent:基于 Python 的代理,从服务端接收音频,经 Nova Sonic 插件处理后,以流式方式返回响应。包括语音活动检测与轮次管理等内置功能。
-
Amazon Nova 2 Sonic:通过双向流式 API 处理音频流,执行语音识别、自然语言理解以及使用合成语音生成对话回复。
Pipecat 是一个用于构建语音和多模态对话式人工智能应用程序的框架。该框架提供了基于管道的模块化架构,可编排多个组件,使用 Amazon Nova Sonic 和其他 AWS 服务创建智能语音应用程序。
有关详细的实现示例与代码示例,请访问 PipeCat AWS 集成文档
主要特征:
-
管道架构:基于 Python 的模块化框架,用于合成语音人工智能组件,包括 ASR、NLU、TTS 等。
-
Pipecat 流程:用于构建复杂对话逻辑和工具执行的状态管理框架。
-
WebRTC 支持:内置与 Daily 和其他 WebRTC 提供商的集成,用于实时音频流式传输。
-
AWS 集成:原生支持 Amazon Bedrock、Amazon Transcribe 与 Amazon Polly。
此架构包括:
-
WebRTC 传输:实现客户端设备与应用程序服务器间的实时音频流式传输。
-
语音活动检测(VAD):Silero VAD 支持可配置的语音检测与噪声抑制。
-
语音识别:Amazon Transcribe 实现精准、实时的语音转文本。
-
自然语言理解:部署在 Bedrock 上的 Amazon Nova Pro,推理经过低延迟优化。
-
工具执行:采用 Pipecat Flows 实现 API 集成与后端服务调用。
-
回复生成:采用 Amazon Nova Pro,生成连贯、贴合上下文的应答内容。
-
文本转语音:搭载生成式语音的 Amazon Polly,输出自然逼真的语音。
借助 AWS CDK(云开发工具包),以基础设施即代码方式将 Nova Sonic 应用程序部署到 AWS。该方案可实现可复用、可版本控制的部署,并内置行业最佳实践。
部署选项
-
Amazon ECS(弹性容器服务):全托管式容器编排服务,集成应用程序负载均衡器,支持自动扩缩容与无服务器 Fargate 运行模式。
-
Amazon EKS(弹性 Kubernetes 服务):托管式 Kubernetes,适用于复杂编排、高级网络、多区域部署及丰富的工具生态体系。
-
AWS CDK:AWS CDK 支持使用熟悉的编程语言定义云基础设施。
有关使用 AWS CDK 部署 Nova Sonic 的完整生产就绪型示例,请参阅 GitHub 上的语音转语音 CDK 示例
-
使用 TypeScript 完成 CDK 基础设施设置
-
用于实时通信的 WebSocket 服务器实现
-
使用 ECS 与 Fargate 部署容器
-
用于提供 WebSocket 支持的应用程序负载均衡器配置
-
VPC 网络与安全组设置
-
CloudWatch 监控与日志记录
-
生产部署最佳实践
多代理架构是一种广泛采用的模式,用于设计处理复杂任务的人工智能助手。在基于 Nova 2 Sonic 构建的语音助手中,该架构可协调多个专用代理;各代理独立运行,从而实现并行处理、模块化设计与可扩展方案。
Nova Sonic 在多代理系统中充当编排工具,主要执行两大核心功能:
对话流程管理:确保在进入对话下一环节前,完成所有必要信息的收集。
意图分类:分析用户咨询内容,并将其分转接到对应的专用子代理处理。
上图展示了使用多代理架构的银行语音助手。对话流程先以问候开场并采集用户姓名,再通过专用子代理处理银行或按揭贷款相关咨询。
对话流程示例:
-
用户接入语音助手。
-
Nova 2 Sonic:“您好!请问您怎么称呼?”
-
用户:“我叫 John”
-
Nova 2 Sonic:“您好,John。今天有什么可以帮您?”
-
用户:“我想查询账户余额”
-
Nova 2 Sonic:[转接到身份验证代理]
-
身份验证代理:“请提供您的账号”
-
用户:“12345”
-
身份验证代理:[正在验证身份]
-
Nova 2 Sonic:[转接到银行代理]
-
银行代理:“账户当前余额为 5,431,10 美元”
虽然本示例展示了基于部署在 Amazon Bedrock AgentCore 上的 Strands Agents 框架实现的子代理,但该架构具备高度灵活性。您可以选择:
-
首选代理框架
-
任何 LLLM 提供商
-
自定义托管选项
-
不同的编排模式
优点:
-
模块化:各代理专注于特定领域,便于系统维护与更新。
-
可扩展性:需改动现有代理即可新增代理,支持系统按需扩展。
-
并行处理:多代理可同步运行,缩短复杂查询的响应时长。
-
专业化:各代理可针对专属任务优化,适配最优工具与知识库。
-
故障隔离:单个代理故障不影响其他模块,提升系统整体可靠性。
有关更多详情与代码示例,请参阅此博客
有关实操示例,请参阅 Nova Sonic 讲习会多代理实验室
Amazon Nova 2 Sonic 可与电话服务提供商对接,实现可通过通话访问的人工智能语音应用程序。本指南介绍其与 Twilio、Vonage 及其他基于 SIP 的系统的集成方案,用于搭建联络中心解决方案与语音代理。
Twilio:云通信平台,提供可编程语音与媒体流能力。
Vonage:全球通信 API 服务商,支持语音、WebSocket 音频流及 SIP 连接。
AWS 提供完整的示例实现方案,在联络中心环境中结合实时分析与电话集成功能展示 Nova Sonic 的应用程序。