如今,各个组织需要处理海量的非结构化数据,这些数据以各种格式存在,包括文档、图像、音频文件和视频文件。过去,从这些不同格式的数据中提取有意义的见解,需要复杂的处理流程和大量的开发工作。但是,生成式人工智能技术正在彻底改变这一领域,它提供了强大的功能,可以自动处理、分析这些不同文档格式的数据并从中提取见解,从而大大减少了手动工作量,同时提高了准确性和可扩展性。
借助 Amazon Bedrock Data Automation 和 Amazon Bedrock Knowledge Bases,您现在可以轻松构建强大的多模态 RAG 应用程序。它们共同使组织能够有效地处理、组织和检索其多模态内容中的信息,从而改变他们管理和使用非结构化数据的方式。
本文将引导您构建一个全栈应用程序,该应用程序使用 Amazon Bedrock Data Automation 处理多模态内容,将提取的信息存储在 Amazon Bedrock 知识库中,并通过基于 RAG 的问答界面启用自然语言查询。
实际应用案例
Amazon Bedrock Data Automation 和 Amazon Bedrock Knowledge Bases 的集成,为跨各个行业处理大量非结构化数据提供了强大的解决方案,例如:
- 在医疗保健领域,组织需要处理大量的患者记录,包括医疗表格、诊断图像和咨询录音。Amazon Bedrock Data Automation 可以自动提取和构建这些信息,而 Amazon Bedrock Knowledge Bases 则允许医务人员使用自然语言查询,例如“患者上次的血压读数是多少?”或“显示糖尿病患者的治疗历史”。
- 金融机构每天都会处理成千上万份文档,从贷款申请到财务报表。Amazon Bedrock Data Automation 可以提取关键的财务指标及合规信息,而 Amazon Bedrock Knowledge Bases 则允许分析师提出如下问题:“最新的季度报告中提到了哪些风险因素?”或“显示所有具有高信用评分的贷款申请”。
- 律师事务所需要处理大量的案件文件,其中包含法院文件、证据照片和证人证词。Amazon Bedrock Data Automation 可以处理这些不同的来源,而 Amazon Bedrock Knowledge Bases 则允许律师查询“关于 3 月 15 日的事件,提出了什么证据?”或“找到所有提及被告的证人陈述”。
- 媒体公司可以使用此集成来实现智能的上下文广告投放。Amazon Bedrock Data Automation 处理视频内容、字幕和音频以了解场景上下文、对话和情绪,同时分析广告资产和广告活动要求。然后,Amazon Bedrock Knowledge Bases 允许进行复杂的查询,以将广告与适当的内容时刻匹配,例如“查找包含体育器材广告的积极户外活动场景”或“识别讨论旅游业的旅游广告片段”。这种智能的上下文匹配提供了更相关有效的广告投放,同时保持了品牌安全。
这些示例展示了 Amazon Bedrock Data Automation 的提取功能与 Amazon Bedrock Knowledge Bases 的自然语言查询相结合,如何改变组织与其非结构化数据交互的方式。
解决方案概述
此综合解决方案演示了 Amazon Bedrock 在处理和分析多模态内容(文档、图像、音频文件和视频文件)方面的高级功能,它通过三个关键组件来实现:Amazon Bedrock Data Automation、Amazon Bedrock Knowledge Bases 和通过 Amazon Bedrock 提供的基础模型。用户可以上传各种类型的内容,包括音频文件、图像、视频或 PDF,以进行自动处理和分析。
当您上传内容时,Amazon Bedrock Data Automation 会使用标准或自定义蓝图对其进行处理,以提取有价值的见解。提取的信息将以 JSON 格式存储在 Amazon Simple Storage Service (Amazon S3) 存储桶中,而作业状态通过 Amazon EventBridge 进行跟踪并保存在 Amazon DynamoDB 中。该解决方案执行提取的 JSON 的自定义解析,以创建与知识库兼容的文档,然后将其存储在 Amazon Bedrock Knowledge Bases 中并进行索引。
通过直观的用户界面,该解决方案会同时显示上传的内容及其提取的信息。用户可以通过基于检索增强生成 (RAG) 的问答系统与处理的数据进行交互,该系统由 Amazon Bedrock 基础模型提供支持。这种集成的方法使组织能够有效地处理、分析和从各种内容格式中获得见解,同时使用使用 AWS Cloud Development Kit (AWS CDK) 部署的强大且可扩展的基础设施。
架构
以下架构图说明了解决方案的流程:
- 用户与前端应用程序交互,通过 Amazon Cognito 进行身份验证。
- API 请求由 Amazon API Gateway 和 AWS Lambda 函数处理。
- 文件上传到 S3 存储桶以进行处理。
- Amazon Bedrock Data Automation 处理文件并提取信息。
- EventBridge 管理作业状态并触发后处理。
- 作业状态存储在 DynamoDB 中,处理的内容存储在 Amazon S3 中。
- Lambda 函数解析处理的内容,并在 Amazon Bedrock Knowledge Bases 中进行索引。
- 基于 RAG 的问答系统使用 Amazon Bedrock 基础模型来回答用户查询。
前提条件
后端
对于后端,您需要具备以下前提条件:
- 一个 AWS 账户。
- Python 3.11 或更高版本。
- Docker。
- GitHub(如果使用代码存储库)。
- AWS CDK。有关更多详细信息和前提条件,请参阅 AWS CDK 入门。
- 在 Amazon Bedrock 中启用对基础模型的访问:
- Anthropic 的 Claude 3.5 Sonnet v2.0
- Amazon Nova Pro v1.0
- Anthropic 的 Claude 3.7 Sonnet v1.0
前端
对于前端,您需要具备以下前提条件:
- Node/npm: v18.12.1
- 已部署的后端。
- 至少一个用户已添加到相应的 Amazon Cognito 用户池(进行身份验证的 API 调用所必需)。
您需要的一切都以开源代码的形式在我们的 GitHub 存储库中提供。
部署指南
此示例应用程序代码库被组织成以下关键文件夹:
samples/bedrock-bda-media-solution