From PDFs to insights: Architecting an intelligent document processing pipeline with AWS generative AI services

TL;DR · AI 摘要
AWS 通过 Amazon Bedrock Data Automation 实现智能文档处理,支持多模态内容分析与自动化提取,提升处理效率与准确性。
核心要点
- Amazon Bedrock Data Automation 支持最多 3,000 页和 500 MB 的单次 API 请求。
- BDA 自动分类文档并匹配处理蓝图,减少人工干预需求。
- 结合 Amazon Bedrock Knowledge Base 和 Strands Agent 可实现跨文档的上下文理解。
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- 智能文档处理管道
- Amazon Bedrock Data Automation
- 功能
- 多模态内容分析
- 自动分类与匹配处理蓝图
- 支持 3,000 页和 500 MB 的 API 请求
- 解决方案架构
- 输入处理层
- 提取与存储层
- 智能层
- 智能代理协调层
金句 / Highlights
值得收藏与分享的关键句。
BDA 自动拆分文档并分类,匹配处理蓝图,减少人工排序需求。
BDA 支持最多 3,000 页和 500 MB 的单次 API 请求,适用于大规模文档处理。
结合 Amazon Bedrock Knowledge Base 和 Strands Agent 可实现跨文档的上下文理解。
从 PDF 到洞察:使用 AWS 生成式 AI 服务构建智能文档处理管道 | 人工智能
从 PDF 到洞察:使用 AWS 生成式 AI 服务构建智能文档处理管道
组织每天处理数以百万计的文档,包括保险索赔、发票、法律合同和医疗记录。虽然传统的光学字符识别(OCR)解决方案可以提取文本,但它们无法理解复杂文档中嵌入的上下文、关系或含义。这种限制会带来需要人工干预的瓶颈,从而增加处理时间和成本,并可能引入错误。
Amazon Bedrock Data Automation(BDA)提供了一个统一的 API 体验,用于从多模态内容(包括文档、图像、视频和音频文件)中提取有意义的洞察。与专注于文本提取的传统解决方案不同,BDA 理解文档上下文,验证提取的数据,并为准确性提供置信度评分。BDA 通过一个处理管道处理文档,该管道自动化复杂的任务,包括文档分类、提取、标准化和验证。当提交文档时,BDA 会自动沿逻辑边界拆分文档,将每个部分分类为适当的文档类型,并将其匹配到正确的处理蓝图。这种智能路由消除了手动文档分类和多个 AI 模型的编排需求。该服务支持多种文件格式,每项 API 请求支持最多 3,000 页和 500 MB,使其适合大规模处理各种类型的文档。
本文概述了在 AWS 上构建一个成本效益高且可扩展的智能文档处理管道的开发过程,该管道由 Amazon Bedrock 及其功能提供支持。BDA 是 Amazon Bedrock 中的一项托管服务,用于自动从文档中提取洞察。我们展示了 BDA 如何提取和分析文档内容,同时 Amazon Bedrock AgentCore Runtime 上托管的 Strands Agent 协调专门的处理任务,而 Amazon Bedrock Knowledge Base 则实现了跨多个文档的上下文理解。通过在统一架构中结合这些功能,组织可以以最小的开发工作量改造其文档处理工作流程。
解决方案概述
我们的智能文档处理管道结合生成式 AI 与编排的工作流,自动提取、分析视觉图表、图形和图表,并从文档中提取洞察,同时在多个数据源之间保持上下文和关系。该解决方案通过四个集成的层次处理文档:
- 输入处理层:文档上传触发处理编排和状态机协调。
- 提取和存储层:原始文本和表格提取、图像和视觉元素分析以及可扩展的数据集成。
- 智能层:知识库摄入与语义搜索、多模态基础模型(FM)分析以及大型语言模型(LLM)驱动的解释。
- 智能代理协调层:协调代理和专用任务代理。
架构组件
输入处理层
输入处理层是该解决方案的基础。该层负责接收和路由传入文档的初始处理。当文档到达指定的 Amazon Simple Storage Service(Amazon S3)存储桶时,会触发处理工作流,支持包括 PDF 和扫描文档(以 PDF 格式)在内的多种格式。
BDA 是输入处理层的核心提取引擎,通过统一的 API 处理文档拆分、分类和内容提取。AWS Step Functions 协调工作流,以最大化 BDA 在提取和存储层中的能力,为整个过程提供操作可见性和控制。以下是详细的协调流程:
- 文档摄入:各种格式的文件到达 S3 存储桶。每种格式都通过统一的 API 进行处理,无需进行特定于格式的预处理。
- 元数据记录:工作流在 Amazon DynamoDB 中记录文档元数据,用于跟踪、审计和报告。这包括文件类型、大小、提交时间和处理状态。
- 页数分析:工作流检查页数以优化处理策略。BDA 自动处理文档拆分,并可处理最多 3,000 页的文档。Step Functions 中的页数检查有助于为异步任务设置适当的超时值,并对异常大的文档进行监控和告警。
- BDA 处理调用:工作流使用 InvokeDataAutomationAsync API 启动异步 BDA 任务。BDA 然后自动执行以下操作:沿逻辑边界拆分文档(每个拆分最多 20 页)。将每个部分分类为文档类型。如果使用自定义输出,将文档匹配到适当的蓝图。蓝图是提前配置的工件,定义了提取逻辑,必须在 BDA 处理之前设置。提取所有内容,包括文本、表格、表单和视觉元素。
- 使用任务令牌的异步处理:工作流存储一个任务令牌并等待 BDA 任务完成。这种模式可以实现高效的资源利用,并允许同时处理数千个文档。
- 错误处理和路由:全面的错误处理管理各种场景,包括成功处理、验证错误、超时和不支持的文件类型,确保没有文档丢失,并记录所有问题以便审查。
这种协调方法为自动化文档分析提供了高度可扩展的无服务器流水线,并在每个处理阶段中包含适当的分支逻辑和异常管理。
提取和存储层
该层是该解决方案的核心,BDA 在此层中作为将原始内容转换为结构化、可操作数据的核心引擎。我们将在下一节中提供更多详细信息。
Amazon Bedrock Data Automation 是主要的处理引擎,提供两种灵活的输出选项:
- 标准输出:根据数据类型提供常用信息,包括文档摘要、按阅读顺序提取的文本、表格和图表标题,以及生成性见解。标准输出可以通过项目进行自定义,以启用或禁用特定的提取功能,如页眉、页脚、标题和图表,具体取决于您的处理需求。
- 使用蓝图进行自定义输出 – 这个想法是为每种文档类型创建一个蓝图,因为您使用相同的指令集从相同类型的文档中提取通用信息。然而,对于不同类型的文档,您需要不同的蓝图来提取不同的信息。例如,您希望从护照中提取的信息与从银行对账单中提取的信息不同,因此这两种文档类型需要单独的蓝图。所有银行对账单都应仅使用一个蓝图进行处理,因为无论银行或格式如何,您希望从银行对账单中提取的信息类型都应相同。蓝图通过定义特定字段、数据格式和提取指令,允许对提取的信息进行精确控制。项目可以包含最多40个文档蓝图,BDA会自动将每个文档匹配到适当的蓝图。这使得在单一统一的工作流程中处理各种文档类型(如发票、合同和表格)成为可能。
此外,BDA还提供以下功能:
- 通过单一接口处理多模态内容的统一API体验
- 跨多个区域的跨区域推理能力,以提高处理性能
- 内置的安全保障,包括视觉定位和置信度评分以确保准确性
- 支持自定义蓝图,以对特定文档类型的标准输出格式进行标准化
视觉分析处理利用BDA的功能,从图表、图示、图表和视觉元素中提取见解,而传统光学字符识别(OCR)解决方案无法解释这些内容。在进行图表标题生成时,BDA会在输出中提供图像裁剪,并且还会从这些视觉元素中生成详细的文本描述和结构化数据,这些数据将包含在后续的工作流程中。例如,当BDA处理一个图表时,它会产生以下内容:
- 描述图表内容和目的的生成标题
- 从图表中提取的数据点和趋势
- 从图示和流程图中提取的结构关系
- 将视觉元素与其在文档中的位置相链接的边界框坐标
下游处理中的所有文档格式:所有支持的文档格式(PDF、PNG、JPG、TIFF、DOC、DOCX)都通过统一的API进行处理。BDA提取的内容,包括对视觉元素的描述,然后可以手动配置用于在Amazon Bedrock知识库中进行索引和向量化,以实现对各种文档类型的语义搜索。请注意,BDA还内置了与知识库的集成,它可以在文档被摄入知识库时充当解析器,使用BDA的标准输出(不需要蓝图)。这个下游工作流程会从BDA接收包含所有提取信息的结构化JSON输出,从而实现无论原始文件格式如何都能进行一致的处理。
从文档中提取数据包括:
- 保留布局的阅读顺序文本提取
- 保留单元格关系的表格结构识别
- 表单字段检测和键值对提取
- 包括图表、图形和图示的视觉元素分析,以及生成的标题
- 用于提取元素精确位置跟踪的边界框坐标
- 保留上下文的文档级和页面级摘要
智能层
这一层是该解决方案的认知引擎。要使 Amazon Bedrock 知识库能够与 Amazon OpenSearch Serverless 配合使用,从而通过语义搜索和检索增强生成(RAG)功能将原始内容转化为可操作的见解,必须对 Amazon Bedrock 知识库进行配置。以下部分将提供更详细的说明。
通过以下方式,Amazon Bedrock 知识库与 Amazon OpenSearch Serverless 结合,实现语义搜索和 RAG 工作流程:
- 为智能查询对处理后的文档内容进行索引
- 为文档集合中的相似性搜索维护向量嵌入
- 支持跨越多个文档和数据源的复杂查询
Amazon Bedrock FMs 分析视觉内容,包括图表和图形解释、文档布局理解,以及文本和视觉组件之间的跨模态关系检测。
代理协调层
这一层组织了该解决方案的智能。Amazon Bedrock AgentCore Runtime 上的 Strands 代理通过根据请求类型将请求路由到适当的专用代理,并协调复杂文档分析中的跨代理通信,管理整体处理工作流程。
专用任务代理处理特定的文档处理功能:
- 市场分析代理用于处理金融市场报告和投资文档。
- 投资顾问代理用于处理投资组合分析和顾问文档。
- 外部 API 代理通过安全的 API 连接与金融数据提供商、监管数据库和市场情报平台集成,实现实时的第三方数据整合。
- 协调代理通过将外部 API 代理提供的实时市场数据与存储在 Amazon Bedrock 知识库中的历史数据进行比较,执行交叉引用验证。
实施架构
处理管道采用事件驱动的方法进行文档处理,将多个专用层整合到一个连贯的工作流程中。它遵循一个逻辑顺序,每一步都建立在前一步的基础上。这一过程从文档上传开始,触发 Amazon S3 事件,启动状态机,并通过多模态处理从各种内容类型中提取意义。管道继续通过代理协调,根据文档特性指导处理,然后进行知识库索引以实现智能检索。这种系统化的方法最终实现洞察的生成和与业务系统的集成,从而从原始文档到可操作的智能,形成一个全面的处理旅程。
文档处理流程
AWS Step Functions 协调文档处理管道,处理文档分类、多模态提取、数据验证和知识库集成。
代理交互流程
面向用户的层通过与处理后的文档语料库进行自然语言交互、协调代理对专用代理的监督以及智能地将查询分发到合适的处理代理,提供智能查询处理。
解决方案演示
用例:商业地产物业分析
一家商业地产投资公司每月收到超过 200 份物业评估报告。这些报告包含以下内容:
- 带有地图、分区信息和物业描述的物业概述文档。
- 嵌入在 PDF 中的财务分析电子表格,展示现金流预测、资本回报率和投资回报率计算。
- 显示可比物业销售、租金率和市场趋势的市场比较图表。
- 带有注释和测量数据的物业照片和平面图。
- 法律文件,包括产权报告、环境评估和分区合规性文件。
- 展示随时间变化的入住率、租金账单和维护成本的历史表现图表。
分析师访问该解决方案,并将文档上传到该解决方案中。
实施
此实现展示了我们的生成式 AI 服务如何通过文档处理功能,将房地产投资分析进行转变,具体如下:
文档分类:系统自动识别文档类型,提取物业元数据(包括地址和建筑面积),并将不同文档部分路由到相应的处理代理。
多模态内容提取:
- 市场分析师代理处理嵌入的财务图表,提取净运营收入预测和资本回报率趋势。
- Amazon Bedrock 数据自动化视觉功能分析物业照片,识别状况指标和平面图效率比率。
- 跨文档关系分析验证预测现金流与历史表现数据的一致性。
自然语言查询:投资专业人士可以使用自然语言查询处理信息,例如“显示预期 IRR 超过 12% 且债务覆盖率超过 1.25 的物业”或“将 NOI 增长预测与类似资产的实际市场表现进行比较”。
结果
每处物业的处理时间从 3-4 小时减少到 15-20 分钟,用于初步筛选。自动化提取消除了人工转录错误,而跨文档验证识别了不一致之处。公司可以处理大量机会,并识别出可能被忽视的有吸引力的投资。
可扩展性验证:该解决方案已在大规模上进行了测试,通过 BDA 管道成功同时处理了超过 50,000 个 PDF 文档。该解决方案在处理大规模数据时,对包括合同、财务报告和技术规格在内的各种文档类型保持了高准确性。借助 AWS Step Functions 和异步 BDA 处理的无服务器架构,该解决方案实现了大规模并行处理能力,而不会出现性能下降,展示了该解决方案在企业级文档处理工作负载上的准备就绪程度。
部署
完整的 AWS 云开发工具包(AWS CDK)实现通过基础设施即代码(IaC)原则来提供整个架构。部署创建了四个主要的堆栈组件,与我们的架构层级对齐,并包括针对开发、预发布和生产环境的特定环境配置。
先决条件
在实施此解决方案之前,请确保您具备以下条件:
- 一个具有适当权限的 AWS 账户,可以创建 IAM 角色、AWS Lambda 函数、Step Functions、Amazon DynamoDB、Amazon 弹性容器注册表(Amazon ECR)和 S3 存储桶。
- 在您希望部署解决方案的 AWS 区域中启用 Amazon Bedrock FMs 的访问权限。
- Amazon Bedrock 数据自动化已在可用区域中启用。BDA 目前在八个区域提供服务,包括欧洲(法兰克福)、欧洲(伦敦)、欧洲(爱尔兰)、亚太(孟买)、亚太(悉尼)、美国西部(俄勒冈)、美国东部(北弗吉尼亚)以及 AWS GovCloud(美国西部)区域。
- 对 AWS CDK 和 Python 有一定的了解,用于基础设施部署。
- 理解文档处理工作流程和业务需求。
- 用于测试和验证的示例文档。
完整的 CDK 实现可在我们的公共 GitHub 仓库中找到:使用 Bedrock Agents 的智能文档处理。
要部署此解决方案,请运行以下命令:
# 快速启动部署
git clone https://github.com/aws-samples/sample-pdf-to-insights-idp-solution
cd sample-pdf-to-insights-idp-solution
./deploy.sh –profile default –environment UAT成本优化策略
以下是在保持此解决方案处理效果的同时,管理运营成本的一些有效方法。
智能路由
根据文档的复杂性,将其路由到适当的处理级别。简单的文本文档使用基础提取,而包含表格和图像的复杂文档则使用更高级的处理技术。
批量处理
在适当的情况下,将多个文档合并为一个 Amazon Bedrock 数据自动化请求,以提高成本效益,同时遵守服务限制。
存储生命周期管理
实施 Amazon S3 生命周期策略,根据访问模式自动将已处理文档转移到成本较低的存储层级。
安全与合规
该架构通过 AWS KMS 密钥对文档和处理结果进行加密、AWS PrivateLink 连接以在 VPC 边界内实现安全的 API 访问,以及在所有组件中使用基于最小权限原则的 IAM 角色,实现了企业级安全性。
清理
为了避免持续收费,请删除此解决方案创建的资源:
- 按依赖关系的反向顺序删除 AWS CDK 堆栈
- 清空并删除包含已处理文档的 S3 存储桶
- 删除 Amazon Bedrock 代理和知识库
- 删除 Amazon CloudWatch 日志组和指标
要删除所有创建的资源,请运行以下命令:# 清理部署./cleanup.sh –profile default –environment UAT
结论
组织可以结合 Amazon Bedrock 数据自动化和基于代理的协调架构,将文档处理从传统的成本中心转变为战略业务资产。通过自动提取和分析视觉图表、图形和图表,并在保持数据源之间上下文和关系的同时从文档中提取见解,组织可以释放之前被非结构化内容所束缚的价值。多层架构为可扩展、成本效益高的文档处理奠定了基础,能够适应不同的工作负载,同时保持高准确性。视觉分析功能提供了嵌入在图表、图形和图像中的有价值见解,并可用于商业智能和决策制定。从针对您最常见的文档类型和视觉分析需求的集中式概念验证开始,然后随着您对服务的了解和对特定准确性和性能需求的掌握,逐步扩展解决方案。
要了解更多关于 Amazon Bedrock 数据自动化的内容,请访问 Amazon Bedrock 数据自动化文档。如需体验智能文档处理,请查看 GitHub 上的 IDP 工作坊。该架构的完整 CDK 实现代码可在 AWS Samples 仓库中找到,其中包括部署说明和配置示例。
关于作者
'"`