使用 Amazon Bedrock 知识库自动化 QA 邮件回复 机器学习博客

使用 Amazon Bedrock 知识库自动化问答邮件响应

文章重点

在这篇文章中,我们探讨了如何通过使用 Amazon Bedrock 知识库和 AWS 服务来自动化企业中的问答邮件响应。主要内容包括:

  • 利用生成式 AI 提高邮件管理的准确性和效率。
  • 结合检索增强生成(RAG)技术和知识库,以提升自动化响应的准确性。
  • 提供详细的解决方案架构与实施步骤,方便读者参考。

在商业客户的沟通中,电子邮件依然是一个重要的渠道,尤其在人力资源(HR)领域,回复咨询常常消耗员工资源,造成延误。所需的广泛知识使得手动回复邮件变得繁琐。未来,高度自动化将在这一领域发挥重要作用。

使用可以帮助企业提高电子邮件管理和自动化的准确性和效率。这项技术使得仅需对复杂案例进行人工审核,从而实现自动化响应,简化操作并提升整体生产力。

检索增强生成(RAG)与知识库的结合提升了自动化响应的准确性。RAG中检索型和生成型模型的组合允许访问数据库并生成准确且具上下文相关性的回复。通过可靠的信息来源,系统能提供更优质的回答。这种混合方法确保了自动化回复不仅与上下文相关,而且在事实准确性上也得到保障,从而提升了沟通的可信度。

在本文中,我们将展示如何使用和(AmazonSES)来自动化对邮件查询的回应,这两个都是完全托管的服务。通过将用户的查询与相关的公司领域信息联接,Amazon Bedrock知识库可以提供个性化的回复。通过将基础模型(FMs)与内部公司数据源结合使用,Amazon Bedrock知识库能够实现更高的响应准确性和相关性。Amazon SES 是一种电子邮件服务,提供通过自身的电子邮件地址和域发送和接收邮件的简便方式。

检索增强生成

RAG是一种将信息检索融入自然语言生成过程的方法。它包括两个主要工作流程:数据提取和文本生成。数据提取工作流程为文档和问题创建语义嵌入,并在向量数据库中存储文档嵌入。通过比较向量与问题嵌入的相似度,文本生成工作流程选择与之相关的文档片段来增强提示。获取的信息使模型能够生成更具知识性和准确性的回答。

Amazon Bedrock 知识库

针对 RAG 工作流程,Amazon Bedrock提供的托管知识库是存储非结构化数据的语义向量数据库。该托管服务简化了部署和扩展,使开发人员能够专注于构建 RAG 应用程序,而无需担心基础设施管理。有关 RAG 和 Amazon Bedrock知识库的详细信息,请参见。

解决方案概述

在本篇文章中,所展示的解决方案能够自动回复电子邮件查询,采用以下解决方案架构。主要功能包括增强 RAG 支持的知识库以及自动化邮件响应。

![使用 Amazon Bedrock知识库自动化邮件回复](https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2024/11/07/Automate- 删除)

用于填充知识库的工作流程包含如下步骤,如架构图所示:

  1. 用户将公司和领域特定的信息,如政策手册,上传到(Amazon S3)桶。
  2. 该桶被指定为知识库数据源。
  3. Amazon S3 调用一个 函数,同步数据源与知识库。
  4. Lambda 函数通过调用 StartIngestionJob API 函数启动数据提取。知识库将数据源中的文档拆分成可管理的小块,以便高效检索。知识库设置为使用作为其向量存储,并在 Amazon Bedrock 上使用 嵌入文本模型来创建嵌入。在此步骤中,文档被转换为嵌入并存储在 OpenSearch 无服务器向量存储的知识库中,同时保留原始文档的跟踪。

使用生成式 AI 和知识库自动化邮件响应的工作流程包括以下步骤:

  1. 客户向您域内配置的邮箱发送自然语言邮件询问,例如 [email protected]
  2. Amazon SES 接收邮件并将整个邮件内容发送到一个 S3 桶,使用唯一的邮件标识符作为对象键。
  3. 当邮件在 S3 桶中被接收时,触发一个 规则并启动一个 状态机,以协调生成和发送邮件响应的过程。
  4. 一个 Lambda 函数从 Amazon S3 中检索邮件内容。
  5. 记录邮件标识符和接收时间戳到一个 表中。您可以使用该 DynamoDB 表来监控和分析生成的邮件响应。
  6. 利用邮件询问的正文,Lambda 函数创建一个提示查询并调用 Amazon Bedrock 的 RetrieveAndGenerate API 函数来生成响应。
  7. Amazon Bedrock 知识库使用 Amazon Titan 嵌入模型将提示查询转换为向量嵌入,然后查找语义相似的文档片段。随后,通过将这些从向量存储中检索到的片段扩展提示,整个提示与额外的上下文一起发送到大型语言模型(LLM)以生成响应。在此解决方案中,我们使用 作为 LLM,利用额外的上下文生成用户响应。Anthropic 的 Claude Sonnet 3.5 速度快、价格合理且多才多艺,能够处理各种任务,例如日常对话、文本分析、总结和文档问答。
  8. 一个 Lambda 函数将生成的响应构建为电子邮件回复,并通过 Amazon SES 将邮件回复发送给客户。邮件追踪和处置信息会在 DynamoDB 表中更新。
  9. 若未能自动生成邮件回复,则 Lambda 函数会将原邮件转发给内部支持团队,由他们进行审核并回复客户,同时在 DynamoDB 表中更新邮件处置信息。

前置条件

要设置此解决方案,您应具备以下前置条件:

  • 可在其上安装和运行(AWS CLI)工具的本地计算机或虚拟机(VM)。
  • 准备好本地环境以部署(AWS CDK)堆栈,按中的说明操作。可以使用 cdk bootstrap aws://{ACCOUNT_NUMBER}/{REGION} 来引导环境。
  • 有一个有效的域名,并拥有配置权限。如果您在中注册并管理一个域名,AWS CDK 将为您配置 Amazon SES。如果您的域名在其他地方管理,则需要根据后文所述进行一些手动步骤。
  • 启用嵌入和查询的 Amazon Bedrock 模型。有关更多信息,请参见。默认情况下,以下模型需要启用:
  • Amazon Titan Text Embeddings V2
  • Anthropic 的 Claude 3.5 Sonnet

部署解决方案

要部署该解决方案,请完成以下步骤:

  1. 配置 SES 域身份,以允许 Amazon SES 发送和接收消息。
    如果您希望接收 Route 53 管理的域的电子邮件地址,只需提供 ROUTE53_HOSTED_ZONE 上下文变量,SES将为您自动配置。如果您的域是在其他帐户或注册商之外的注册域,您可以参考手动验证域身份,并参考手动添加 Amazon SES 接收电子邮件所需的 MX 记录。
  2. 克隆该存储库并导航到根目录: git clone https://github.com/aws-samples/automated-emails-for-bedrock-knowledgebases.git && cd automated-emails-for-bedrock-knowledgebases
  3. 安装依赖: npm install
  4. 部署 AWS CDK 应用,替换 {EMAIL_SOURCE} 为将接收查询的电子邮件地址, {EMAIL_REVIEW_DEST} 为内部审核的电子邮件地址, {HOSTED_ZONE_NAME} 为您的域名: cdk deploy --context emailSource={EMAIL_SOURCE} --context emailReviewDest={EMAIL_REVIEW_DEST} --context route53HostedZone {HOSTED_ZONE_NAME}

此时,您已经在沙箱模式下配置了 Amazon SES与经过验证的域身份。现在可以向该域中的地址发送邮件。如果需要向具有不同域名的用户发送邮件,您需要。

将域文档上传到 Amazon S3

现在您已经运行了知识库,您需要将要查询的原始数据填充到向量存储中。为此,请将原始文本数据上传到作为知识库数据源的 S3 桶中:

  1. 从 AWS CDK 输出中找到桶名(KnowledgeBaseSourceBucketArn/Name)。
  2. 通过 Amazon S3 控制台或 AWS CLI 上传您的文本文件。

如果您在测试此解决方案,我们建议使用以下中的文档。请将文件上传到 markdown 或 PDF文件夹中。您的知识库将自动将这些文件同步到向量数据库。

测试解决方案

要测试该解决方案,请向“sourceEmail”上下文参数中定义的电子邮件地址发送邮件。如果您选择上传样本 HR 文档,可以使用以下示例问题:

  • “我有多少天的 PTO?”
  • “我该向谁报告 HR 违规?”

清理

部署解决方案会产生费用。要清理资源,请从项目文件夹运行以下命令: cdk destroy

结论

在这篇文章中,我们讨论了电子邮件作为商业用户沟通渠道的重要角色及手动邮件回复的挑战。我们的描述概述了 RAG 架构和 Amazon Bedrock知识库的使用,以自动化邮件响应,提升 HR 优先级并改善用户体验。最后,我们创建了一个解决方案架构并在 GitHub仓库中提供了样本代码,用于使用知识库自动生成和发送上下文邮件响应。

如需更多信息,请参阅和。


关于作者

删除) Darrin Weber 是 AWS 的高级解决方案架构师,协助客户实现安全、可扩展和创新的 AWS 解决方案,拥有超过 25年的架构、应用设计和开发、数字转型以及物联网的经验。在不使用创新的云解决方案来转型和优化业务时,Darrin 喜欢徒步旅行或打皮克球。

删除) Marc Luescher 是 AWS的高级解决方案架构师,帮助企业客户取得成功,专注于威胁检测、事件响应和数据保护。他在网络、安全和可观察性方面有丰富的经验。之前,他曾在医疗行业的技术架构和安全岗位工作。工作之余,Marc喜欢和他的 3 只狗、4 只猫以及 20 多只鸡在一起,并练习柜子制作和木工技能。

删除) Matt Richards 是 AWS 的高级解决方案架构师,帮助零售行业的客户。曾作为 AWS客户,拥有软件工程和解决方案架构的背景,现在专注于帮助其他客户实现应用现代化和数字转型。在工作之外,Matt 对音乐、唱歌和在多个团体中打鼓充满热情。

Leave a Reply

Required fields are marked *