利用 Amazon Bedrock、Amazon Connect、Amazon Lex、LangChain 和 WhatsApp 打造新型聊天助手

Olawale Olaleye
难度
200 - 中级
时间
20 分钟
前提条件

海外区域: 注册 / 登录 亚马逊云科技

上次更新时间
2024 年 10 月 23 日

在未来几年里,生成式 AI 将彻底改变用户体验,这已成为大势所趋。在这个过程中,关键的一步在于引入 AI 助手,通过 AI 助手以智能方式使用工具,从而帮助客户驾驭数字环境。在本文中,我们将演示如何部署基于上下文的 AI 助手。这个解决方案基于 Amazon Bedrock Knowledge BasesAmazon Lex 和 Amazon Connect 而构建,以 WhatsApp 为渠道,采用的是为用户所熟知且简单易用的界面。

可将您公司的私有数据源导入 Amazon Bedrock Knowledge Bases,为基础模型 (FM) 和智能体提供上下文信息,实现检索增强生成 (RAG),从而生成相关性更高、更准确的定制化响应。此外,此解决方案也为生成式 AI 驱动型应用提供了强大的增强功能。基于与 Amazon Lex 和 Amazon Connect 的原生兼容性,此功能简化了将特定领域知识整合到对话式 AI 应用中的过程。凭借自动化文档摄取、分块和嵌入,无需手动设置复杂的向量数据库或自定义检索系统,这大大降低了开发难度、节省了不少时间。

基础模型响应的准确度最终得以提升,并且由于数据已经过验证,减少了幻觉现象。与维护自定义知识管理系统相比,此解决方案最大限度地减少了开发资源并降低运营成本,进而提高成本效益。由于使用 AWS 无服务器服务,该解决方案具有可扩展性,可快速扩展以处理不断增长的数据量和用户查询量。AWS 稳健的安全基础设施为维护数据隐私和监管合规性提供了保障。由于知识库不断更新和补充内容,AI 应用始终能够获取最新信息。通过使用 Amazon Bedrock Knowledge Bases,组织可以将复杂的知识管理和检索则交由 AWS 处理,自己则专注于开发增值 AI 应用,以便更轻松、更快速地部署更准确、更强大的 AI 解决方案。

前提条件

要实施此解决方案,需要满足以下前提条件:

解决方案概述

该解决方案利用多项 AWS AI 服务来构建和部署 AI 助手:

  • Amazon Bedrock:是一项全托管服务,通过单个 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI 和 Amazon Titan 等顶级 AI 公司的高性能基础模型,以及丰富多样的功能,可协助客户构建具备高安全性和隐私性的负责任生成式 AI 应用解决方案
  • Amazon Bedrock Knowledge Bases:基于公司的私有数据源,为 AI 助手提供上下文信息
  • Amazon OpenSearch Service:用作 Amazon Bedrock Knowledge Bases 原生支持的向量存储
  • Amazon Lex:为 AI 助手构建对话界面,包括定义意图 (Intent) 和槽位 (Slot)
  • Amazon Connect:能与 WhatsApp 等集成,因此用户可以在热门消息应用上使用 AI 助手
  • AWS Lambda:运行代码来集成服务,以及实现构成 AI 助手核心逻辑的 LangChain 智能体 (Agent)
  • Amazon API Gateway:接收从 WhatsApp 触发的传入请求,并将请求路由到 AWS Lambda 以供进一步处理
  • Amazon DynamoDB:存储接收和生成的消息,以便记忆对话内容
  • Amazon SNS:路由自 Amazon Connect 传出的响应消息
  • LangChain:为构建 LangChain Agent 提供了一个强大的抽象层,可帮助基础模型基于上下文进行推理
  • LangSmith:将 Agent 追踪上传到 LangSmith 以增强可观察性,包括调试、监控、测试和评估功能

下图展示了该解决方案的架构。

流程描述

上图右侧的红色数字展示了数据摄取过程:

  1. 将文件上传到 Amazon Simple Storage Service (Amazon S3) 存储桶,以作为数据源
  2. 新文件触发 Lambda 函数
  3. Lambda 函数调用知识库数据源同步操作
  4. Amazon Bedrock Knowledge Bases 从 Amazon S3 获取数据,将数据分块,然后通过您选择的基础模型生成嵌入
  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,由 Amazon Lex 对消息进行自然语言处理。
  6. Amazon Lex 触发 LangChain AI 助手,此 AI 助手由一个 Lambda 函数实现。
  7. LangChain AI 助手从 DynamoDB 检索对话历史记录。
  8. LangChain AI 助手使用 Amazon Bedrock Knowledge Bases 来获取相关上下文信息。
  9. LangChain AI 助手会编译一个提示 (prompt),其中包含上下文数据和用户的查询,然后将其提交给在 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 创建知识库,提取相关的产品文档、常见问题、知识文章和其他有用的数据,AI 助手可以使用这些数据来回答用户提出的问题。知识数据应涵盖 AI 助手需要支持的关键使用场景和主题。
  2. 创建为 AI 助手逻辑提供支持的 LangChain Agent。该 Agent 由一个 Lambda 函数实现,将知识库作为查找信息的首要数据源。通过提供的 AWS CloudFormation 模板自动部署 Agent 和其他资源。有关需要部署的资源列表,请参阅下一章节。
  3. 创建 Amazon Connect 实例并配置 WhatsApp 集成。Amazon Connect 实例与 WhatsApp 集成是为了让用户可以使用 WhatsApp 与 AI 助手聊天。这样,用户可以通过熟悉的界面(如图标和按钮等)与 AI 助手进行交互。由于 WhatsApp 普及度高,有助于提高 AI 助手的易用性。

解决方案部署

我们提供了一个预构建的 AWS CloudFormation 模板,可供您在 AWS 账户中部署所需的一切资源。

  1. 登录 AWS 控制台(如果尚未登录)。
  2. 点击以下 Launch Stack(启动堆栈)按钮,进入 AWS CloudFormation 控制台以创建新堆栈。
  3. 配置以下参数:
    • StackName:堆栈名称,例如 WhatsAppAIStack
    • LangchainAPIKey:通过 LangChain 生成的 API 密钥

 

区域 “部署”按钮 模板 URL:可将现有堆栈升级到新版本 AWS CDK 堆栈,可根据需要进行自定义
弗吉尼亚北部 (us-east-1) launch stack YML GitHub

 4. 勾选确认创建 AWS Identity and Access Management (IAM) 资源的确认复选框,然后单击 Create Stack(创建堆栈)。

 5. 等待大约 10 分钟以便堆栈创建完成。在此堆栈中创建了以下内容:

 6. 将文件上传到为 WhatsApp 创建的数据源(Amazon S3 存储桶)。上传文件后,数据源将自动同步。

 7. 要测试 Agent,请登录 Amazon Lex 控制台,选择最近创建的助手。选择 English(英语),单击 Test(测试),然后发送一条消息。

创建 Amazon Connect 实例并集成 WhatsApp

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

  1. 导航到 AWS 管理控制台中的 Amazon Connect。如果还没有 Amazon Connect 实例,先创建一个实例。在 Distribution settings(分配设置)下,复制 Instance ARN(实例 ARN)对应的值。关联 WhatsApp 企业账户时,将需要使用 Amazon Connect 实例的 ARN。
  2. 选择实例,然后在导航栏中选择 Flows(工作流)。向下滚动页面,找到并选择 Amazon Lex。选择机器人,然后选择 Add Amazon Lex Bot(添加 Amazon Lex 机器人)。
  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 集成时,需要使用该 ARN。以下屏幕截图展示了 Amazon Connect 控制台上的工作流配置。

 7. 部署 WhatsApp 集成,详见通过 Amazon Connect 将 WhatsApp 作为消息传递渠道

测试解决方案

使用 WhatsApp 与 AI 助手互动,如以下视频所示:

清理资源

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

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

总结

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

该解决方案将相关数据提取到 Amazon Bedrock Knowledge Bases,实现了根据知识库中的数据回答问题的 LangChain Agent,并通过 WhatsApp 实现用户与 AI Agent 之间的交互。这样就成功构建了一个可访问的智能 AI 助手,用于引导用户了解您公司的产品和服务。

接下来,您还可以进一步实现更多功能,例如为特定业务使用场景定制 AI 助手,扩展知识库,以及使用 LangSmith 分析对话日志,从而发现问题、改正错误以及打破基础模型调用序列中的性能瓶颈。

更多教程

快速搭建容量高达 35GB 的免费个人网盘

本教程将介绍如何搭建一个没有使用限制的免费私人网盘。

构建企业专属智能客服机器人

本文将演示如何结合多种服务,打造企业专属的智能客服。

使用生成式 AI 构建多语言问答知识库

使用多种服务,构建可汇总搜索结果的多语言知识库。

查看全部教程 >>

免费套餐

AWS 海外区域

拓展海外业务或个人体验
免费使用 100 余种云产品或服务, 长达 12 个月

AWS 中国区域

发展中国业务
免费使用 40 余种核心云服务产品,长达 12 个月