概述
AWS 云端 QnABot 是一个支持生成式人工智能(AI)的多渠道、多语言对话界面(聊天机器人),可响应客户的问题、答案和反馈。它允许您跨多个通道部署功能齐全的聊天机器人,包括聊天、语音、短信和 Amazon Alexa。
优势
通过智能多部分交互提供个性化教程和问答支持。从 QnABot 设置中轻松导入和导出问题。
使用 Amazon Kendra 自然语言处理(NLP)功能更好地理解人类问题。使用 Amazon Bedrock(一种提供高性能基础模型的托管服务)构建对话式应用程序。
自动化客户支持工作流程。实现成本节约并更好地服务您的客户,以便他们能够快速获得准确的答案和帮助。
利用意图和时段匹配来实现多样化的问答工作流程。通过大型语言模型(LLM)和检索增强生成(RAG),利用自然语言理解、上下文管理和多轮对话。
技术详情
您可以使用实施指南和适当的 AWS CloudFormation 模板自动部署此架构。如果您想使用 VPC 进行部署,请首先部署一个具有两个私有子网和两个公共子网的 VPC,这些子网分布在两个可用区中,然后使用 QnABot VPC AWS CloudFormation 模板。否则,请使用 QnABot Main AWS CloudFormation 模板。
第 1 步
管理员将解决方案部署到他们的 AWS 账户中,打开内容设计器用户界面(UI)或 Amazon Lex Web 客户端,并使用 Amazon Cognito 进行身份验证。
第 2 步
进行身份验证后,Amazon API Gateway 和 Amazon Simple Storage Service(Amazon S3)将提供内容设计器 UI 的内容。
第 3 步
管理员在内容设计器中配置问题和答案,UI 向 API Gateway 发送请求以保存问题和答案。
第 4 步
内容设计器 AWS Lambda 函数将 Amazon OpenSearch Service 中的输入保存在问题库索引中。如果使用文本嵌入,这些请求将通过托管在 Amazon SageMaker 或 Amazon Bedrock 上的 LLM 生成嵌入,然后保存到 OpenSearch 上的问题库中。
第 5 步
聊天机器人用户通过 Web 客户端 UI、Amazon Alexa 或 Amazon Connect 与 Amazon Lex 交互。
第 6 步
Amazon Lex 将请求转发到 Bot fulfillment Lambda 函数。用户还可以通过 Amazon Alexa 设备向该 Lambda 函数发送请求。
第 7 步
用户和聊天信息存储在 Amazon DynamoDB 中,以消除后续问题与先前问答上下文之间的歧义。
第 8 步
Bot fulfillment Lambda 函数接受用户的输入,并使用 Amazon Comprehend 和 Amazon Translate(如有必要)将非母语请求翻译为部署期间选择的母语,然后在 OpenSearch 服务中查找答案。
如果使用文本生成和文本嵌入等 LLM 功能,这些请求将先通过 SageMaker 或 Amazon Bedrock 上托管的各种 LLM 来生成搜索查询和嵌入,然后将其与 OpenSearch 上的问题库中保存的查询和嵌入进行比较。
第 9 步
如果 OpenSearch 问题库未返回任何匹配项,则 Bot fulfillment Lambda 函数将按如下方式转发请求:
第 9A 步
如果将 Amazon Kendra 索引配置为回退,并且 OpenSearch 问题库未返回任何匹配项,则 Bot fulfillment Lambda 函数会将请求转发到 Amazon Kendra。文本生成 LLM 可以选择性地用于创建搜索查询并从返回的文档摘录中合成响应。
第 9B 步
如果配置了 Amazon Bedrock 知识库 ID,则 Bot fulfillment Lambda 函数会将请求转发到 Amazon Bedrock 知识库。Bot Fulfillment Lambda 函数利用 RetrieveAndGenerate API Gateway API 来获取用户查询的相关结果,增强基础模型的提示并返回响应。
第 10 步
用户与 Bot fulfillment Lambda 函数的交互生成日志和指标数据,这些数据被发送到 Amazon Data Firehose,然后再发送到 Amazon S3 进行后续数据分析。
第 11 步
OpenSearch 控制面板可用于查看使用历史记录、记录的话语、未命中话语、正面用户反馈和负面用户反馈,还可以创建自定义报告。