使用 Amazon Textract 在 Amazon Bedrock 上自定义大型复杂文档的知识库

了解如何将 Amazon Textract 的高精度文本提取与 Amazon Bedrock 的生成式 AI 相结合,为大型复杂文档自定义 Amazon Bedrock 知识库。这篇文章展示了如何提取和预处理 PDF 和图像,然后大规模查询公用事业账单,以实现更快、更准确的客户交互。

来源:亚马逊云科技 _机器学习

对于每月处理数千份公用事业账单的客户服务团队来说,准确解析和分析复杂的多页文档是一项持续的挑战。不一致的格式、密集的表格和多样化的布局使得快速提取正确的信息变得困难。这会导致响应延迟、计费错误和客户沮丧。随着文档量的增长,这些低效率问题会更加严重,导致组织无法对手中已有的数据采取行动。

Amazon Bedrock 与 Amazon Textract 集成,提供检索和生成功能来解决此问题。通过将 Amazon Textract 中结构化和非结构化内容的高精度提取与 Amazon Bedrock 的生成式 AI 功能相结合,组织可以从手动搜索文档转变为以编程方式查询文档。这可以从大规模的公用事业账单中释放出可操作的见解,并提供更快、更准确的客户交互。

在这篇文章中,我们演示了如何与复杂的 PDF 和图像格式的公用事业账单聊天、解析它们、分析内容并标记相关表格,以帮助大型语言模型 (LLM) 提取最有用的信息。您可以在 GitHub 上找到本文的代码。

用例概述

客户服务支持团队收到大量有关公用事业账单的查询,涉及账单、使用情况、付款和客户服务等各个领域。该团队努力有效地解析和分析这些查询,这些查询有多种格式,包括 PDF、DOCX、TXT、HTML 和 XLSX。从这些文档中提取相关信息的手动过程非常耗时且容易出错,从而导致响应时间延迟和客户不满意。

为了解决问题陈述,客户最初尝试直接使用公用事业账单实施检索增强发电 (RAG) 解决方案。然而,他们很快就遇到了重大问题。用于从这些文档中提取信息的大型语言模型 (LLM) 缺少关键细节,并且在某些情况下会产生幻觉并提供不正确或不相关的信息。这使客户意识到,仅以原始形式加载文档和公用事业账单并不能产生可靠、准确的响应。

客户服务支持团队需要一个强大的解决方案来准确提取和分析各种公用事业账单中的信息,这些账单有多种格式:PDF、DOCX、TXT、HTML、PNG 和 XLSX。该团队的目标是构建一个基于 RAG 的解决方案,能够可靠地提取相关信息,例如帐号、账单详细信息和付款指令,从而为客户查询提供准确、及时的响应。

客户最初的方法是将原始公用事业账单直接输入 RAG 模型。这种方法有几个缺点:

  • 数据提取不完整:法学硕士很难提取所有必要的信息,经常丢失关键细节,例如截止日期、付款金额和帐号。
  • 幻觉:模型偶尔会生成不正确或不相关的信息,导致客户服务响应混乱和错误。
  • 格式可变性:公用事业账单的不同格式(PDF、DOCX、TXT、HTML、XLSX)给法学硕士带来了挑战,导致不同文档类型的表现不一致。
  • 支持的类型

    当前支持以下文件类型:PDF、DOCX、TXT、HTML、XLSX 和 PNG。

    PDF(便携式文档格式)。

  • DOCX(Microsoft Word 文档)。
  • TXT(纯文本文件)。
  • 摘要
  • 观察到这些问题后,客户很快意识到需要一种更复杂的方法。仅仅将原始文档加载到 RAG 模型中是不够的。该团队需要一种方法来预处理和增强公用事业账单,以便法学硕士能够准确提取和使用必要的信息。
  • Amazon Textract 可以从多页 PDF 文档中提取文本,包括具有复杂布局和嵌入图像的文档。
  • Amazon Textract 可以解析并提取 Word 文档中的文本,包括表格、图像和其他嵌入对象。
  • 可以解析纯文本文件以提取文本内容。
  • HTML(超文本标记语言)。
  • Amazon Textract 可以从 HTML 文件中提取文本,包括标签内的结构化数据。
  • XLSX(Microsoft Excel 电子表格)。
  • 虽然 Amazon Textract 主要是一种文本提取工具,但它可以从 Excel 电子表格中提取文本,包括单元格内容和表格数据。
  • PNG(便携式网络图形)。
  • Amazon Textract 可以从 PNG 文件中提取文本。

    解决方案概述

  • 为了应对这些挑战,客户可以选择将文本提取服务 Amazon Textract 与 Amazon Bedrock 集成。此集成提供以下功能:
  • 高级文本提取:Amazon Textract 预处理公用事业账单,从各种格式中提取文本并捕获所有相关信息。
  • 数据清理和丰富:对提取的数据进行清理和丰富,以去除噪声和不相关信息,以便仅将最相关的细节输入到 RAG 模型中。
  • 上下文理解:Amazon Textract 使用上下文理解来准确标记提取的数据,使 LLM 更轻松地处理和生成准确的响应。

    通过实施此方法,客户服务团队旨在构建更可靠的基于 RAG 的解决方案。该解决方案可以准确地提取和使用公用事业账单中的信息,从而缩短响应时间并提高客户满意度。

    部署解决方案

    为了部署解决方案,已创建一个 shell 脚本,用于创建 AWS CloudFormation 堆栈并根据解决方案的需要部署依赖项资源。

  • 要运行 shell 脚本,请按照下列步骤操作:
  • 从 GitHub 克隆存储库。
  • 导航到自定义知识库目录。
  • 打开终端并运行 bash custom_kb_deployment_setup.sh。这将为您部署 AWS CloudFormation 堆栈。

  • CloudFormation 堆栈在您的帐户中创建以下资源:
  • AWS Lambda 执行角色。
  • 用于 Lambda 函数的 Lambda 层。
  • 两个 Lambda 函数。
  • 一个 Amazon Simple Storage Service (Amazon S3) 存储桶。
  • 一个 Amazon OpenSearch 无服务器集群。
  • Amazon Bedrock 知识库。
  • Amazon Bedrock 知识库的 AWS Identity and Access Management (IAM) 角色。

    部署后步骤

    堆栈完成部署后,完成以下步骤来配置解决方案。

  • 配置 Amazon S3
  • 打开 Amazon S3 控制台。
  • 找到创建的名为 document-- 的 S3 存储桶。
  • 创建一个名为 raw_files 的文件夹。
  • 将提供的公用事业账单从存储库上传到 raw_files。

  • 自动化处理
  • 文件上传会触发文档解析器 Lambda 函数。
  • Amazon Textract 作业处理原始文件。
  • 处理后的文件保存到 parsed_files 文件夹中。
  • 第二个 Lambda 函数将文件处理为 TXT 格式。
  • 最终输出保存到 parsed_kb_documents 文件夹中。

  • 知识库设置
  • 打开 Amazon Bedrock 控制台并导航到 Amazon Bedrock 知识库,这是用于构建检索增强生成解决方案的完全托管功能。
  • 在左侧导航窗格中,选择知识库。
  • 选择新创建的知识库。
  • 选择数据源。
  • 选择数据源并选择“同步”。
  • 等待同步完成。

  • 测试应用程序
  • 打开 Amazon Bedrock 控制台并选择知识库。
  • 选择文本知识库。
  • 在配置下,选择 Amazon Nova Micro 型号。有关按 AWS 区域划分的模型可用性,请参阅 Amazon Bedrock 中按 AWS 区域划分的支持的模型。
  • 在右侧的文本框中,您现在可以询问与水电费账单相关的问题。

    图 1:使用自定义知识库解决方案的输出

    图 2:没有自定义知识库解决方案的输出

    本指南概述了使用 AWS 服务的自定义知识库解决方案的部署过程。该解决方案使用 AWS CloudFormation 自动创建基本资源,包括 Lambda 函数、S3 存储桶、OpenSearch Serverless 集群和 Amazon Bedrock 知识库。部署过程运行一个 shell 脚本,该脚本启动部署解决方案所需的 CloudFormation 堆栈创建。

    部署后步骤包括配置 S3 存储桶、上传示例文档以及设置 Amazon Bedrock 知识库。该解决方案自动处理上传的文档,将其转换为适合知识库的格式。

    结论

    此自定义知识库解决方案演示了如何集成多个 AWS 服务来创建智能文档处理和查询系统。通过使用 CloudFormation 进行部署,该解决方案可以在不同环境中创建一致、可重复的基础设施。从原始文件上传到知识库集成的自动化文档处理管道显示了可扩展、高效处理大型文档集的潜力。

    负责任的人工智能考虑因素

    在生产中部署基于 RAG 的解决方案时,为可靠、值得信赖的输出实施保护措施非常重要。Amazon Bedrock Guardrails 提供可配置的控件来过滤有害内容、阻止拒绝的主题以及编辑输入和输出中的敏感信息。此外,基础验证通过评估模型响应是否得到检索的源文档的支持,有助于检测和减少幻觉。对于生产部署,我们建议打开这些控件,以在知识库交互中保持准确性、合规性和用户信任。

    对于处理大量结构化文档(例如本例中的公用事业账单)的组织来说,该解决方案尤其有价值。它提供了一种从这些文档中提取、处理和查询信息的简化方法,有可能提高运营效率并支持更复杂的数据分析。未来的增强功能可能包括扩展处理的文档类型、与其他 AWS 服务集成以进行更复杂的分析,或者开发用户友好的前端界面以更轻松地与知识库交互。

    关于作者

    鲁沙布·洛坎德

    杰维思·阿努马拉

    阿什什·巴甘 (Ashish Bhagam)

    总体而言,该解决方案为希望在 AWS 上构建智能文档处理和查询系统的组织提供了坚实的起点,并且可以根据特定业务需求灵活地进行自定义和扩展。

    Rushabh 是一名高级数据和 AI 工程师,负责 AWS 专业服务分析实践。他帮助客户实施大数据、机器学习和分析解决方案。工作之余,他喜欢与家人共度时光、阅读、跑步和打高尔夫球。

    Jeevith 是 AWS 专业服务部的高级数据架构师,专门设计可扩展的云架构并指导客户完成数字化转型之旅。他帮助组织利用 AWS 服务实现应用程序现代化、优化成本并推动创新。工作之余,他喜欢旅行、指导有抱负的技术人员和徒步旅行。

    Ashish 是一名从事 AWS 专业服务分析实践的数据架构师。他帮助客户设计和实施可扩展的数据解决方案,并使他们的数据架构现代化。工作之余,他喜欢观看板球比赛并与家人共度美好时光。