View a markdown version of this page

集成 - Amazon Nova

集成

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 在多代理系统中充当编排工具,主要执行两大核心功能:

对话流程管理:确保在进入对话下一环节前,完成所有必要信息的收集。

意图分类:分析用户咨询内容,并将其分转接到对应的专用子代理处理。

上图展示了使用多代理架构的银行语音助手。对话流程先以问候开场并采集用户姓名,再通过专用子代理处理银行或按揭贷款相关咨询。

对话流程示例:

  1. 用户接入语音助手。

  2. Nova 2 Sonic:“您好!请问您怎么称呼?”

  3. 用户:“我叫 John”

  4. Nova 2 Sonic:“您好,John。今天有什么可以帮您?”

  5. 用户:“我想查询账户余额”

  6. Nova 2 Sonic:[转接到身份验证代理]

  7. 身份验证代理:“请提供您的账号”

  8. 用户:“12345”

  9. 身份验证代理:[正在验证身份]

  10. Nova 2 Sonic:[转接到银行代理]

  11. 银行代理:“账户当前余额为 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 的应用程序。

存储库:支持电话功能的 Sonic 联络中心示例