概述

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 Service 上的问题库中。
此外,内容设计器会将默认和自定义配置设置保存到 Amazon Dynamo DB 中。
第 5 步
该助手的用户通过 Web 客户端 UI、Amazon Alexa 或 Amazon Connect 与 Amazon Lex 交互。
第 6 步
Amazon Lex 将请求转发到 Bot Fulfillment Lambda 函数。用户还可以通过 Amazon Alexa 设备向该 Lambda 函数发送请求。
注意:启用流式传输后,聊天客户端会使用 Amazon Lex 会话标识符(sessionId),通过 API Gateway V2 建立 WebSocket 连接。
第 7 步
用户和聊天信息存储在 DynamoDB 中,以消除后续问题与先前问答上下文之间的歧义。
第 8 步
Bot fulfillment Lambda 函数使用 Amazon Comprehend,必要时还会使用 Amazon Translate 将非母语请求翻译成用户在部署期间选择的母语。然后,该函数会查询 OpenSearch Service,以检索合适的答案。
第 9 步
如果使用大型语言模型(LLM)功能,例如文本生成和文本嵌入,这些请求将首先通过 Amazon Bedrock 上托管的各种基础模型。这将生成搜索查询和嵌入,然后与保存在 OpenSearch Service 问题库中的内容进行比较。
第 9A 步
如果启用了预处理护栏,则会在潜在有害的用户输入到达问答机器人应用程序之前对其进行扫描和阻止。这是防止处理恶意或不当查询的第一道防线。
第 9B 步
如果针对 LLM 或 Amazon Bedrock 知识库使用 Amazon Bedrock 护栏,则能够在 LLM 推理过程中应用上下文防护和安全控制,以确保生成恰当的答案。
步骤 9C
如果启用了后处理护栏,则会在最终回复通过执行 Lambda 函数发送给客户端之前,对其中潜在有害的内容进行扫描、屏蔽或拦截。这是最后一道防线,确保正确屏蔽个人身份信息(PII)等敏感信息,并拦截不当内容。
第 10 步
如果 OpenSearch Service 问题库或文本段落未返回任何匹配项,则 Bot fulfillment Lambda 函数将按如下方式转发请求:
第 10A 步
如果将 Amazon Kendra 索引配置为回退,并且 OpenSearch Service 问题库未返回任何匹配项,则 Bot Fulfillment Lambda 函数会将请求转发到 Amazon Kendra。可选择性地将文本生成 LLM 用于创建搜索查询并从返回的文档摘录中合成回复。
第 10B 步
如果配置了 Amazon Bedrock 知识库 ID,则 Bot Fulfillment Lambda 函数会将请求转发到 Amazon Bedrock 知识库。Bot Fulfillment Lambda 函数利用 RetrieveAndGenerate 或 RetrieveAndGenerateStream API 来获取用户查询的相关结果,增强基础模型的提示并返回回复。
第 11 步
启用流式传输后,可通过检索增强生成(RAG)技术优化根据文本段落或外部数据来源进行的 LLM 回复。回复会使用相同的 Amazon Lex 会话 ID,通过 WebSocket 连接进行流式传输,而最终回复则通过执行 Lambda 函数进行处理。
第 12 步
用户与 Bot Fulfillment 函数的交互会被记录下来,生成的指标数据会发送至 Amazon Data Firehose,然后转发到 Amazon S3,以便日后进行数据分析。
第 13 步
OpenSearch 控制面板可用于查看各种分析数据,包括使用历史、记录的话语、无匹配结果的话语、用户正面反馈、用户负面反馈,以及创建自定义报告的功能。
第 14 步
管理员可以使用 Amazon CloudWatch 监控服务日志,并借助 QnABot 创建的 CloudWatch 控制面板监控部署的运行状况。