利用 Amazon Bedrock 在 Amazon SageMaker Unified Studio 中通过几次点击创建与您公司系统交互的生成式 AI 代理
保持运营效率的持续压力是各种规模的公司都面临的挑战。数据量不断增加、系统日益复杂以及需要管理的客户互动数量庞大,进一步加剧了这一挑战。传统的手动流程和信息源之间经常脱节的性质会导致严重的瓶颈。这些障碍会减慢决策速度,并阻碍团队将时间和精力投入到真正有价值的高价值工作中。生成式 AI 代理代表了一种变革性的解决方案。这些代理可以自动与公司的现有系统连接,执行各种任务,并提供即时见解。这使得组织能够有效地扩展其运营,而不会相应地增加复杂性。
Amazon Bedrock in SageMaker Unified Studio 直接解决了这些普遍存在的挑战。它提供了一个用于构建 AI 驱动解决方案的统一服务。该平台集中了客户数据并支持自然语言交互,使其直观且易于使用。一个关键优势是它与现有应用程序的无缝集成。它还整合了基本的 Amazon Bedrock 功能,包括广泛的基础模型 (FM) 选择、提示工程功能、用于上下文理解的知识库、用于任务执行的代理、用于工作流编排的流程、用于性能监控的评估工具以及用于负责任的 AI 开发的护栏。用户可以通过其组织的单点登录 (SSO) 系统方便地访问这套全面的 AI 功能。这促进了团队成员之间的协作,并允许改进 AI 应用程序,而无需直接访问 AWS 管理控制台。
用于自动化工作流程的生成式 AI 驱动的代理
Amazon Bedrock in SageMaker Unified Studio 使您能够创建和部署复杂的生成式 AI 代理。这些代理可以与您组织的应用程序、数据库甚至第三方系统无缝集成。这种级别的集成支持跨整个技术堆栈的自然语言交互。聊天代理充当关键桥梁,将复杂的信息系统与用户友好的通信连接起来。通过利用 Amazon Bedrock 函数和 Amazon Bedrock 知识库,代理能够连接到不同的数据源。这些来源可以包括用于实时项目状态跟踪的 JIRA API,以及用于检索客户信息的客户关系管理 (CRM) 系统。代理还可以更新项目任务、管理用户偏好等等。
这种全面的功能为组织内的各个团队提供了显著的好处。销售和营销团队可以快速访问客户信息及其首选会议时间。项目经理可以有效地管理 JIRA 任务和时间表,优化项目工作流程。由 AI 代理促进的这一简化流程可提高整个组织的生产力并改善客户互动。
解决方案概述
Amazon Bedrock 提供了一个受管控的协作环境,全部在 SageMaker Unified Studio 中,用于构建和共享生成式 AI 应用程序。让我们深入研究一个实际的示例解决方案,该解决方案演示了客户管理代理的实现:
- **Agentic Chat:**可以使用 Amazon Bedrock 的聊天应用程序功能构建复杂的 agentic 聊天应用程序。此聊天应用程序可以与使用其他 AWS 服务(例如用于无服务器计算的 AWS Lambda 和用于创建和管理 API 的 Amazon API Gateway)轻松构建的函数无缝集成。
- **数据管理:**SageMaker Unified Studio 与 Amazon DataZone 结合,通过其集成服务提供全面的数据管理解决方案。组织管理员可以对成员访问 Amazon Bedrock 模型和功能的权限进行精细控制。这确保了安全的身份管理和精细的访问控制,从而维护数据安全性和合规性。
在我们深入研究 AI 代理的部署之前,最好先了解一下架构的关键步骤。
工作流程如下:
- **用户身份验证和交互:**用户首先使用其组织在 AWS IAM Identity Center 中的 SSO 凭证登录 SageMaker Unified Studio。通过身份验证后,用户使用自然语言与聊天应用程序交互,提出问题或提出请求。
- **函数调用:**Amazon Bedrock 聊天应用程序智能地利用预定义的函数来检索相关信息。此函数可能旨在从数据库中获取 JIRA 状态更新或客户信息。检索是通过使用 API Gateway 的安全端点执行的。
- **安全访问和 Lambda 触发:**聊天应用程序使用安全存储在 AWS Secrets Manager 中的随机生成的 API 密钥向 API Gateway 进行身份验证,以安全访问指定的端点。根据用户的请求,将触发相应的 Lambda 函数。
- **操作执行:**现在已激活的 Lambda 函数执行用户请求的特定操作。这涉及使用代理提供的必要参数调用 JIRA API 或查询数据库。该代理旨在处理各种任务,包括:
- 提供特定客户的简要概述。
- 列出与特定客户的最近互动。
- 检索指定客户的会议偏好。
- 检索与特定项目关联的未结 JIRA 票证列表。
- 更新特定 JIRA 票证的截止日期。
先决条件
要按照此解决方案实施并构建您自己的客户管理代理,您需要满足以下先决条件:
- **AWS 账户:**需要一个有效的 AWS 账户才能访问必要的服务。
- **SageMaker Unified Studio 访问权限:**需要用户在 SageMaker Unified Studio 中访问 Amazon Bedrock。
- **模型访问权限:**您需要对 Amazon Bedrock 上的 Amazon Nova Pro 进行模型访问。确保此模型在受支持的 AWS 区域中可用。
- **JIRA 设置:**需要 JIRA 应用程序、其相应的 JIRA URL 以及与您的帐户关联的 JIRA API 令牌才能与 JIRA 集成。
假设您对 AWS 上的基本无服务器概念有基本的了解,包括 API Gateway、Lambda 函数和 IAM Identity Center。虽然本文不会提供这些服务的深入定义,但我们将在 SageMaker Unified Studio 中提供的新的 Amazon Bedrock 功能的上下文中演示它们的用例。
部署解决方案
要部署客户管理代理解决方案,请按照下列步骤操作:
- **下载代码:**首先从提供的 GitHub 存储库下载必要的代码。
- **检索 JIRA 凭证:**获取 Lambda 函数的
JIRA_API_KEY_ARN
、JIRA_URL
和JIRA_USER_NAME
的值。这些凭证将用于向您的 JIRA 实例进行身份验证。 - **启动 CloudFormation 堆栈:**利用提供的 AWS CloudFormation 模板。有关在您首选的 AWS 区域中启动堆栈的详细说明,请参阅“从 CloudFormation 控制台创建堆栈”的文档。
- API Gateway URL:成功部署 CloudFormation 堆栈后,导航到输出选项卡。找到并记下
ApiInvokeURL
值。此 URL 表示您的 API Gateway 的端点。 - **Secrets Manager 配置:**访问 Secrets Manager 控制台。找到与
JIRA_API_KEY_ARN
、JIRA_URL
和JIRA_USER_NAME
对应的密钥。 - 更新密钥值:为每个密钥选择检索密钥选项。将步骤 2 中获得的相应变量复制到密钥纯文本字符串中。这将安全地存储您的 JIRA 凭证。
- **登录 SageMaker Unified Studio:**使用您组织的 SSO 凭证登录 SageMaker Unified Studio。
创建新项目
基础设施准备就绪后,让我们在 SageMaker Unified Studio 中创建一个新项目:
- **项目创建:**在 SageMaker Unified Studio 登录页面上,启动新项目的创建。
- **项目命名:**为您的项目分配一个描述性名称(例如,
crm-agent
)。 - 配置文件选择:选择生成式 AI 应用程序开发配置文件并继续。
- **默认设置:**接受默认设置并继续。
- 确认:查看项目配置并选择创建项目进行确认。
构建聊天代理应用程序
现在,让我们构建解决方案的核心——聊天代理应用程序:
聊天代理启动:在
crm-agent
项目登录页面中,找到右侧的新建部分。选择聊天代理以开始构建您的应用程序。
这将显示您的代理应用程序的配置列表。**模型选择:**在模型部分下,选择 Amazon Bedrock 支持的所需基础模型 (FM)。对于此
crm-agent
,我们将选择 Amazon Nova Pro。**系统提示定义:**在系统提示部分,提供以下提示。此提示将指导代理的行为和响应。您可以选择包含用户输入和模型响应的示例,以进一步优化其性能。
您是一名客户关系管理代理,负责帮助销售人员规划其与客户的工作。您将获得一个 API 端点。此端点可以提供公司概况、公司互动历史记录(会议时间和备注)、公司会议偏好(会议类型、星期几和时间)等信息。您还可以查询 Jira 任务并更新其时间表。收到响应后,将其整理成可读的格式。如果输出是编号列表,请使用换行符和数字将其格式化。
函数创建:在函数部分,选择创建新函数。此函数将定义代理可以执行的操作。
**函数命名:**为您的函数指定一个描述性名称,例如
crm_agent_calling
。函数模式:对于函数模式,使用 GitHub 存储库中提供的 OpenAPI 定义。此模式定义函数的输入和输出参数。
身份验证配置:对于身份验证方法,选择**API 密钥(最多 2 个密钥)**并输入以下详细信息:
- 对于密钥发送位置,选择标头。
- 对于密钥名称,输入
x-api-key
。 - 对于密钥值,输入 Secrets Manager API 密钥。
**API 服务器端点:**在 API 服务器部分,输入您从 CloudFormation 输出中获取的端点 URL(
ApiInvokeURL
)。函数完成:选择创建以完成函数创建。
应用程序保存:在聊天代理应用程序的函数部分,选择您刚刚创建的函数,然后选择保存以完成应用程序创建。
示例交互
让我们探索一些关于如何使用此聊天代理的实际示例:
用例 1:CRM 分析师检索客户详细信息
CRM 分析师可以使用自然语言检索存储在数据库中的客户详细信息。以下是他们可能提出的一些示例问题:
- “请简要介绍一下客户 C-jkl101112。”
- “列出客户 C-def456 最近的 2 次互动。”
- “客户 C-mno131415 更喜欢哪种沟通方式?”
- “根据客户 C-ghi789 的偏好和我们上次的互动,推荐最佳联系时间和渠道。”
代理在收到这些请求后,将智能地查询数据库并以清晰简洁的格式提供相应的答案。
用例 2:项目经理管理 JIRA 票证
项目经理可以使用代理来列出和更新 JIRA 票证。以下是一些示例交互:
- “项目 ID CRM 的未结 JIRA 任务是什么?”
- “请将 JIRA 任务 CRM-3 更新为 1 周后。”
代理将访问 JIRA 看板,获取相关的项目信息,并提供未结 JIRA 任务的列表。它还将根据用户的请求更新特定任务的时间表。
清理
为防止产生不必要的费用,请执行以下清理步骤:
- **删除 CloudFormation 堆栈:**删除您之前部署的 CloudFormation 堆栈。
- **删除函数组件:**删除您在 Amazon Bedrock 中创建的函数组件。
- **删除聊天代理应用程序:**删除 Amazon Bedrock 中的聊天代理应用程序。
- **删除域:**删除 SageMaker Unified Studio 中的域。
成本
在 SageMaker Unified Studio 中使用 Amazon Bedrock 不会产生任何单独的费用。但是,您将需要为服务中使用的各个 AWS 服务和资源付费。Amazon Bedrock 采用即用即付模式,这意味着您只需为使用的资源付费,没有最低费用或预付承诺。
如果您需要有关定价计算的进一步帮助,或者对优化特定用例的成本有疑问,建议联系 AWS 支持或咨询您的客户经理。他们可以根据您的需求提供量身定制的指导。