AI个人学习
和实操指南

使用 Amazon Bedrock、Amazon Connect、Amazon Lex、LangChain 和 WhatsApp 创建下一代聊天助手

本文由 LangChain 的 Harrison Chase、Erick Friis 和 Linda Ye 联合撰写。

生成式 AI 在未来几年将彻底变革用户体验。在这一过程中,关键的一步是引入能够智能使用工具的 AI 助手,帮助客户导航数字世界。在本文中,我们展示了如何部署一个上下文感知的 AI 助手。该助手基于 Amazon Bedrock 知识库Amazon Lex 和 Amazon Connect 构建,并使用 WhatsApp 作为交互渠道,为用户提供一种熟悉且便利的界面。


Amazon Bedrock 知识库为基础模型 (FMs) 和代理提供来自企业私有数据源的上下文信息,支持 检索增强生成 (RAG),以提供更相关、准确和定制化的回复。对于希望增强生成式 AI 应用程序的组织来说,该功能提供了一个强大的解决方案。通过与 Amazon Lex 和 Amazon Connect 的原生兼容性,它简化了领域特定知识的整合。通过自动化文档导入、分块和嵌入,消除了手动设置复杂向量数据库或自定义检索系统的需求,大幅降低了开发复杂性和时间。

这种解决方案提升了基础模型响应的准确性,降低了由于基于验证数据而产生的错误回答。相比维护自定义知识管理系统,该方案通过减少开发资源和运营成本提高了成本效率。通过 AWS 的无服务器服务,它的可扩展性可以快速适应不断增长的数据量和用户查询量。还利用 AWS 强大的安全基础设施来维护数据隐私和合规性。通过持续更新和扩充知识库,AI 应用程序能够始终跟上最新信息。选择 Amazon Bedrock 知识库后,组织可以专注于创造增值的 AI 应用程序,而 AWS 处理知识管理和检索的复杂性,从而以更少的努力更快地部署更准确、更强大的 AI 解决方案。

 

前置条件

要实现该解决方案,您需要具备以下条件:

 

解决方案概述

此解决方案使用多个关键的 AWS AI 服务来构建和部署 AI 助手:

  • Amazon Bedrock – Amazon Bedrock 是一个完全托管的服务,通过单一 API 提供来自领先 AI 公司(如 AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI 和 Amazon)的高性能基础模型 (FMs),以及构建具有安全性、隐私性和负责任 AI 的生成式 AI 应用所需的广泛功能。
  • Amazon Bedrock Knowledge Bases – 为 AI 助手提供来自公司私有数据源的上下文信息。
  • Amazon OpenSearch Service – 作为矢量存储,原生支持 Amazon Bedrock Knowledge Bases。
  • Amazon Lex – 用于构建 AI 助手的对话界面,包括定义意图和槽位。
  • Amazon Connect – 集成 WhatsApp,使 AI 助手能够在这一流行的消息应用程序中可用。
  • AWS Lambda – 运行代码以集成服务并实现构成 AI 助手核心逻辑的 LangChain agent。
  • Amazon API Gateway – 接收从 WhatsApp 触发的入站请求,并将请求路由到 AWS Lambda 进行进一步处理。
  • Amazon DynamoDB – 存储接收和生成的消息以支持对话记忆。
  • Amazon SNS – 处理来自 Amazon Connect 的出站响应的路由。
  • LangChain – 提供用于构建 LangChain agent 的强大抽象层,帮助基础模型 (FMs) 执行上下文感知推理。
  • LangSmith – 将 agent 的执行记录上传到 LangSmith,以增强可观测性,包括调试、监控以及测试与评估功能。

 

以下图示展示了架构。

使用 Amazon Bedrock、Amazon Connect、Amazon Lex、LangChain 和 WhatsApp 创建下一代聊天助手-1

 

流程描述

图中右侧用红色数字表示数据摄取过程:

  1. 将文件上传到 Amazon Simple Storage Service (Amazon S3) 数据源。
  2. 新文件触发 Lambda 函数。
  3. Lambda 函数调用知识库数据源的同步操作。
  4. Amazon Bedrock Knowledge Bases 从 Amazon S3 获取数据,对其进行切块,并通过选定的基础模型 (FM) 生成嵌入向量。
  5. Amazon Bedrock Knowledge Bases 将嵌入向量存储在 Amazon OpenSearch Service 中。

 

图中左侧用数字表示消息传递过程:

  1. 用户通过 WhatsApp 向托管在某处的 webhook 发送消息发起通信。
  2. Amazon API Gateway 将入站消息路由到由 AWS Lambda 执行的入站消息处理器。
  3. 入站消息处理器在 Amazon DynamoDB 中记录用户的联系信息。
  4. 对于首次使用的用户,入站消息处理器在 Amazon Connect 中建立新会话并记录到 DynamoDB。对于返回用户,则恢复其现有的 Amazon Connect 会话。
  5. Amazon Connect 将用户消息转发到 Amazon Lex 进行自然语言处理。
  6. Amazon Lex 触发由 Lambda 函数实现的 LangChain AI 助手。
  7. LangChain AI 助手从 DynamoDB 检索对话历史记录。
  8. 使用 Amazon Bedrock Knowledge Bases,LangChain AI 助手获取相关的上下文信息。
  9. LangChain AI 助手生成一个提示,结合上下文数据和用户查询,并将其提交给运行在 Amazon Bedrock 上的基础模型。
  10. Amazon Bedrock 处理输入并将模型的响应返回给 LangChain AI 助手。
  11. LangChain AI 助手将模型的响应传递回 Amazon Lex。
  12. Amazon Lex 将模型的响应传输到 Amazon Connect。
  13. Amazon Connect 将模型的响应发布到 Amazon Simple Notification Service (Amazon SNS)。
  14. Amazon SNS 触发出站消息处理器 Lambda 函数。
  15. 出站消息处理器从 Amazon DynamoDB 检索相关的聊天联系人信息。
  16. 出站消息处理器通过 Meta 的 WhatsApp API 将响应发送给用户。

 

部署此 AI 助手涉及三个主要步骤:

  1. 使用 Amazon Bedrock Knowledge Bases 创建知识库,并导入相关的产品文档、常见问题解答(FAQs)、知识文章和其他有助于 AI 助手回答用户问题的有用数据。数据应涵盖 AI 助手支持的关键用例和主题。
  2. 创建一个 LangChain agent 来驱动 AI 助手的逻辑。该代理在 Lambda 函数中实现,并使用知识库作为其主要工具进行信息查找。通过提供的 AWS CloudFormation 模板 自动部署代理和其他资源。请参阅下一部分的资源列表。
  3. 创建 Amazon Connect 实例 并配置 WhatsApp 集成。这使用户能够通过 WhatsApp 与 AI 助手聊天,提供一种熟悉的界面,并支持丰富的交互,如图像和按钮。WhatsApp 的普及性提高了 AI 助手的可访问性。

 

解决方案部署

我们提供了预构建的 AWS CloudFormation 模板,可在您的 AWS 账户中部署所需的全部内容。

  1. 如果尚未登录,请登录 AWS 控制台
  2. 选择以下 Launch Stack 按钮以打开 CloudFormation 控制台 并创建一个新栈。
  3. 输入以下参数:
    • StackName:为您的栈命名,例如 WhatsAppAIStack
    • LangchainAPIKey:通过 LangChain 生成的 API 密钥
区域 部署按钮 模板 URL(用于将现有栈升级到新版本) AWS CDK 栈(可根据需要自定义)
弗吉尼亚北部(us-east-1) 使用 Amazon Bedrock、Amazon Connect、Amazon Lex、LangChain 和 WhatsApp 创建下一代聊天助手-2 YML GitHub
  1. 勾选框以确认您正在创建 AWS Identity and Access Management (IAM) 资源,然后选择 Create Stack
  2. 等待栈创建完成,大约需要 10 分钟。完成后会创建以下内容:
  3. 将文件上传到为 WhatsApp 创建的数据源(Amazon S3)。一旦您上传文件,数据源将自动同步。
  4. 在 Amazon Lex 控制台中选择最近创建的助手进行测试。选择 English,然后选择 Test 并发送一条消息。

 

创建 Amazon Connect 实例并集成 WhatsApp

配置 Amazon Connect 以与您的 WhatsApp 企业账户集成,并为 AI 助手启用 WhatsApp 渠道:

  1. 在 AWS 控制台中的 Amazon Connect 中导航。如果尚未创建实例,请创建一个实例。在 Distribution settings 下复制您的 Instance ARN。稍后将需要此信息来链接您的 WhatsApp 企业账户。
  2. 选择您的实例,然后在导航面板中选择 Flows。向下滚动并选择 Amazon Lex。选择您的机器人并选择 Add Amazon Lex Bot
  3. 在导航面板中选择 Overview。在 Access Information 下选择 Log in for emergency access
  4. 在 Amazon Connect 控制台中,在导航面板的 Routing 下选择 Flows。选择 Create flow。将一个 Get customer input 块拖到流程中。选择该块。选择 Text-to-speech or chat text 并添加一个介绍消息,例如“Hello, how can I help you today?” 向下滚动并选择 Amazon Lex,然后选择您在第 2 步中创建的 Amazon Lex 机器人。
  5. 保存块后,添加另一个名为“Disconnect”的块。将 Entry 箭头连接到 Get customer input,并将 Get customer input 箭头连接到 Disconnect。选择 Publish
  6. 发布后,在导航面板底部选择 Show additional flow information。复制流程的 Amazon 资源名称(ARN),稍后将需要此信息来部署 WhatsApp 集成。以下截图显示了 Amazon Connect 控制台的流程。

使用 Amazon Bedrock、Amazon Connect、Amazon Lex、LangChain 和 WhatsApp 创建下一代聊天助手-3

  1. 根据 通过 Amazon Connect 提供 WhatsApp 消息作为渠道 中的详细信息部署 WhatsApp 集成。

 

测试解决方案

通过 WhatsApp 与 AI 助手互动,具体操作请参见以下演示:

使用 Amazon Bedrock、Amazon Connect、Amazon Lex、LangChain 和 WhatsApp 创建下一代聊天助手-1

 

清理

为避免持续产生费用,在完成使用后请删除资源:

  1. 删除 CloudFormation 堆栈。
  2. 删除 Amazon Connect 实例。

 

总结

本文介绍了如何通过集成 Amazon BedrockAmazon Lex 和 Amazon Connect 创建一个智能对话式 AI 助手,并将其部署到 WhatsApp

该解决方案将相关数据导入 Amazon Bedrock Knowledge Bases 知识库,使用 LangChain agent 实现,通过知识库回答问题,并通过 WhatsApp 为用户提供访问接口。此解决方案可提供一个可访问的智能 AI 助手,引导用户了解您的公司产品和服务。

可能的下一步包括根据具体用例自定义 AI 助手,扩展知识库,并使用 LangSmith 分析对话日志,以识别问题、改进错误并分解 FM 呼叫序列中的性能瓶颈。

未经允许不得转载:首席AI分享圈 » 使用 Amazon Bedrock、Amazon Connect、Amazon Lex、LangChain 和 WhatsApp 创建下一代聊天助手

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文