创建一个使用 Amazon Bedrock Agents 的电商产品推荐聊天机器人
关键要点
这篇文章介绍了如何使用 Amazon Bedrock Agents 和基础模型 (FMs) 建立一个电商产品推荐聊天机器人。该聊天机器人能够与用户进行自然对话,了解他们的偏好并推荐合适的产品。通过 Amazon Bedrock Agents,开发人员可以轻松地构建和部署生成性人工智能模型,提升客户体验。
小熊加速器免费版许多电商平台希望提供类似人类的聊天机器人,帮助用户为亲朋好友选择礼物。为了提升客户体验,聊天机器人需要以自然的对话方式与用户互动,了解他们的偏好与需求。例如,接受礼物的人的性别、礼物的场合以及所需产品的类别等。基于用户的讨论,聊天机器人应能够查询电商产品目录,过滤结果,并推荐最合适的产品。
Amazon Bedrock 是一项完全托管的服务,提供来自领先人工智能公司如 AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI 和 Amazon的高性能基础模型 (FMs),支持通过单一 API 构建生成 AI 应用,确保安全性、隐私及负责任的 AI 使用。
Amazon Bedrock Agents 是一个功能,可以使生成 AI 应用在公司系统和数据源之间执行多步骤任务。本文将展示如何使用 Amazon Bedrock Agents 和 Amazon Bedrock 中可用的 FMs 构建电商产品推荐聊天机器人。
解决方案概述
传统的基于规则的聊天机器人在处理开放式对话的微妙之处和复杂性时往往表现不佳,导致用户体验不佳。此外,手动编写所有可能的对话流程和产品筛选逻辑既耗时又容易出错,尤其是在产品目录不断增长的情况下。
为了解决这个问题,您需要一个使用最新生成 AI 进展的解决方案,以创建自然的对话体验。该解决方案应该与现有的产品目录 API 无缝集成,并根据用户的响应动态调整对话流程,从而减少大量编码的需要。
借助 Amazon Bedrock Agents,您可以构建智能聊天机器人,能够自然地与用户交谈,理解他们的偏好,并从目录中高效地检索和推荐最相关的产品。Amazon Bedrock Agents 简化了生成 AI 模型的构建和部署过程,使企业能够创建引人入胜且个性化的对话体验,而无需精通机器学习 (ML)。
在我们的用例中,利用 Amazon Bedrock Agents 创建一个推荐聊天机器人,邀请用户描述他们想为哪位收礼人购买礼物以及相关场合。代理查询存储在 Amazon DynamoDB 表中的产品信息,使用实现为 AWS Lambda 函数的 API。代理调整 API 输入,根据与用户的讨论过滤产品,例如性别、场合和类别。在获取用户的礼物偏好后,代理将基于用户的偏好返回最相关的产品。
以下图表展示了解决方案架构。
如上图所示,电商应用首先使用代理与用户进行对话并生成产品推荐。代理通过一个由 Lambda 支持的 API 获取产品信息。最后,Lambda 函数从 DynamoDB 中查找产品数据。
前提条件
您需要拥有一个 AWS 账户,用户或角色至少需具备以下 AWS 身份和访问管理 (IAM) 策略和权限:
AWS 管理策略IAM 操作AmazonBedrockFullAccessiamCreateRoleAWSMarketplaceManageSubscriptionsiamCreatePolicyAWSLambdaReadOnlyAccessiamAttachRolePolicyAmazonDynamoDBReadOnlyAccess使用 AWS CloudFormation 部署解决方案资源
在创建代理之前,您需要设置产品数据库和 API。我们使用 AWS CloudFormation 模板创建一个 DynamoDB 表以存储产品信息,并创建一个 Lambda 函数作为检索产品详细信息的 API。
在撰写本文时,您可以使用以下任一 AWS 区域来部署解决方案:美国东部 (弗吉尼亚北部)、美国西部 (俄勒冈州)、亚太 (孟买、悉尼)、欧洲 (法兰克福、巴黎)、加拿大 (中央) 或南美 (圣保罗)。请访问 Amazon Bedrock Agents 支持的区域与模型 获取更新。
要部署模板,请选择 启动堆栈:
此模板创建一个名为 Products 的 DynamoDB 表,具有以下属性:productname (分区键)、category、gender 和 occasion。它还为每个属性定义了一个全局二级索引 (GSI),以实现高效查询。
此外,模板设置了一个名为 GetProductDetailsFunction 的 Lambda 函数,作为检索产品详细信息的 API。该 Lambda 函数接受查询参数,如 category、gender 和 occasion。它基于提供的参数构建一个过滤表达式,并扫描 DynamoDB 表以检索匹配的产品。如果没有提供参数,它将检索表中所有产品,并返回前 100 个产品。
模板还创建了另一个 Lambda 函数,称为 PopulateProductsTableFunction,用于生成样本数据以存储在 Products 表中。CloudFormation 模板包括一个自定义资源,该资源将在模板部署过程中运行 PopulateProductsTableFunction 函数一次,以添加 100 个样本产品项,包含各种产品名称、描述、类别、性别和场合的组合。
您可以选择性地更新样本产品项或用自己的产品数据替换它。为此,请打开 DynamoDB 控制台,选择 浏览项,并选择 Products 表。选择 扫描 然后选择 运行 以查看和编辑当前项目,或选择 创建项目 以添加新项目。如果您的数据具有与样本产品项不同的属性,则需要调整 Lambda 函数 GetProductDetailsFunction 的代码、OpenAPI 架构以及接下来小节中使用的代理说明。
创建代理
现在您已经搭建好基础设施,可以创建代理。第一步是请求模型访问权限。
在 Amazon Bedrock 控制台中,选择导航窗格中的 模型访问。选择 启用特定模型。选择您需要访问的模型在本文中,我们选择 Claude 3 Sonnet。等待模型访问状态变为 访问已授予。
现在您可以创建代理。我们使用 CloudFormation 模板创建代理和将调用 Lambda 函数的操作组。
要部署模板,选择 启动堆栈:现在您可以检查堆栈创建的代理详细信息。
在 Amazon Bedrock 控制台中,选择导航窗格中的 代理。选择代理 productrecommendationagent,然后选择 在代理构建器中编辑。代理指令 部分包含一组指导代理如何与用户沟通和使用 API 的指令。您可以根据不同用例和业务场景调整指令,以及可用的 API。代理的主要目标是与用户进行对话,收集有关收礼人性别、礼物场合和所需类别的信息。根据这些信息,代理将查询 Lambda 函数以检索和推荐合适的产品。
您的下一步是检查使代理能够调用 Lambda 函数的操作组。
在 操作组 部分,选择 GetProductRecommendations 操作组。您可以看到 操作组调用 部分选择了 GetProductDetailsFunction Lambda 函数。
在 操作组架构 部分,您可以看到 OpenAPI 架构,使代理了解 API 的描述、输入、输出和可在与用户交谈时使用的操作。
现在您可以使用 测试代理 面板与聊天机器人进行交谈。
测试聊天机器人
以下截图显示了示例对话,聊天机器人在调用 API 后推荐产品。

在示例对话中,聊天机器人询问相关问题来确定收礼人的性别、场合和所需类别。在收集到足够的信息后,它查询 API 并展示符合用户偏好的推荐产品列表。
您可以通过选择 显示追踪 来查看每个响应的推理。以下截图显示了代理如何决定根据讨论使用不同的 API 过滤器。
在 rationale 字段中,您可以看到代理如何为每次互动做出决策。此追踪数据可以帮助您理解推荐背后的原因。记录此信息有助于您未来优化代理的推荐。
清理
完成以下步骤以清理您的资源:
在 AWS CloudFormation 控制台中,删除堆栈 AgentStack。然后删除堆栈 Productstableandapi。结论
本文向您展示了如何使用 Amazon Bedrock Agents 创建一个对话式聊天机器人,帮助用户找到完美的礼物。该聊天智能地收集用户偏好,查询后端 API 以检索相关产品详细信息,并向用户呈现其推荐。这种方法展示了 Amazon Bedrock 代理在构建引人入胜且具有上下文感知的对话体验方面的能力。
我们建议您在使用 Amazon Bedrock Agents 时遵循最佳实践。例如,使用 AWS CloudFormation 创建和配置代理可以帮助您减少人为错误,并在不同环境和区域中重新创建代理。此外,使用一套标准问题及其预期答案自动测试代理可以测试代理指令的质量,并将 Amazon Bedrock 上不同模型的输出与您的用例进行比较。
访问 Amazon Bedrock Agents 了解更多功能和细节。
关于作者
Mahmoud Salaheldin 是 AWS 的高级解决方案架构师,致力于帮助中东、北非和土耳其的客户,协助企业、数字化企业和独立软件供应商创新新产品,以提高客户体验和业务效率。他是一名生成 AI 大使,同时也是一个容器社区成员。他居住在阿联酋迪拜,喜欢骑摩托车和旅行。
标签 AI/ML、生成 AI、零售
基于 AI 的投资研究助手,利用多模态数据:亚马逊 Bedrock Agents 的应用 机器学习博
多模态数据的投资研究AI助手:亚马逊Bedrock代理的应用由Omar Ashton、Jia (Vivian) Li、Jose Rojas、Mohan Musti、Sovik Nath和Uchenna...