在 Azure 中自动执行文档分类
本文介绍可用于处理各种文档的体系结构。 该体系结构使用 Azure Functions 的 Durable Functions 功能来实现管道。 管道通过 Azure AI 文档智能处理文档,以便进行文档拆分、命名实体识别(NER)和分类。 文档内容和元数据用于基于检索扩充生成(RAG)的自然语言处理(NLP)。
体系结构
下载此体系结构的 Visio 文件。
工作流
用户将文档文件上传到 Web 应用。 该文件包含各种类型的多个嵌入文档,例如 PDF 或多页标记图像文件格式(TIFF)文件。 文档文件存储在 Azure Blob 存储中 (1a) 中。 为了启动管道处理,Web 应用会将命令消息添加到 Azure 服务总线队列(1b)。
命令消息可触发 Durable Functions 业务流程。 该消息包含相关元数据,可标识要处理的文档文件的 Blob 存储位置。 每个 Durable Functions 实例仅处理一个文档文件。
分析活动函数调用文档智能分析文档 API,该 API 传递要处理的文档文件的存储位置。 分析函数读取并标识文档文件中的每个文档。 此函数将每个嵌入文档的名称、类型、页面范围和内容返回到业务流程。
元数据存储活动函数将每个文档的文档类型、位置、页面范围信息保存在 Azure Cosmos DB 存储中。
嵌入 活动函数使用语义内核对每个文档进行分块并为每个区块创建嵌入。 嵌入内容和关联内容将发送到 Azure AI 搜索,并存储在已启用矢量的索引中。 相关 ID 也会添加到搜索文档,以便搜索结果可以与 Azure Cosmos DB 中相应文档元数据匹配。
语义内核从 NLP 的 AI 搜索向量存储中检索嵌入内容。
用户可以使用 NLP 与其数据聊天。 此会话由从矢量存储中检索到的已断开数据提供支持。 若要查找 Azure Cosmos DB 中的文档记录,用户使用搜索结果集中包含的相关 ID。 记录包括指向 Blob 存储中原始文档文件的链接。
组件
Durable Functions 是 Azure Functions 的一项功能,可用于在无服务器计算环境中编写有状态函数。 在此体系结构中,服务总线队列中的消息触发持久函数实例。 然后,此实例启动并协调文档处理管道。
Azure Cosmos DB 是一个全球分布式多模型数据库,可在解决方案中用于跨任意数量的地理区域缩放吞吐量和存储容量。 综合服务级别协议 (SLA) 可保证吞吐量、延迟、可用性和一致性。 此体系结构使用 Azure Cosmos DB 作为文档分类信息的元数据存储。
Azure 存储,它是适用于数据、应用和工作负载的一组云服务,可以大规模缩放,并且很安全。 其中包括 Blob 存储、Azure 文件存储、Azure 表存储和 Azure 队列存储。 此体系结构使用 Blob 存储来存储用户上传和 Durable Functions 管道处理的文档文件。
服务总线 是一个完全托管的企业消息代理,其中包含消息 队列 和发布-订阅 主题。 此体系结构使用服务总线触发持久函数实例。
Azure 应用服务提供了一个框架,用于构建、部署和缩放 Web 应用。 应用服务的 Web 应用功能是一项基于 HTTP 的工具,可用于托管 Web 应用程序、REST API 和移动后端。 使用 Web 应用可采用 .NET、.NET Core、Java、Ruby、Node.js、PHP 或 Python 进行开发。 应用程序可以轻松地在基于 Windows 和基于 Linux 的环境中运行和缩放。 在此体系结构中,用户通过应用服务托管的 Web 应用与文档处理系统进行交互。
文档智能 是一项服务,可用于从文档、窗体和图像中提取见解。 此体系结构使用文档智能来分析文档文件,并提取嵌入的文档以及内容和元数据信息。
AI 搜索 为 Web、移动和企业应用程序中的私有、多样化的内容提供了丰富的搜索体验。 此体系结构使用 AI 搜索 向量存储 为提取的文档内容和元数据信息的嵌入编制索引,以便用户可以使用 NLP 搜索和检索文档。
语义内核 是一个框架,可用于将大型语言模型(LLM)集成到应用程序中。 此体系结构使用语义内核为存储在 AI 搜索中的文档内容和元数据信息创建嵌入内容和元数据信息。
Azure OpenAI 服务 提供对 OpenAI 的强大模型的访问权限。 此体系结构使用 Azure OpenAI 为用户提供与文档处理系统交互的自然语言界面。
备选方法
此解决方案将元数据存储在 Azure Cosmos DB 中,以促进全局分发。 Azure SQL 数据库是永久性存储文档元数据和信息的另一种方法。
若要触发持久函数实例,可以使用其他消息传送平台,包括 Azure 事件网格。
语义内核是用于创建嵌入的多个选项之一。 还可以 Azure 机器学习 或 Azure AI 服务 来创建嵌入。
若要为用户提供自然语言界面,可以在 Azure AI Foundry 中使用其他语言模型。 该平台支持来自不同提供商的各种模型,包括 Mistral、Meta、Cohere 和 Hugging Face。
方案详细信息
在此体系结构中,管道可标识文档文件中的文档,按类型对其进行分类,并存储可用于后续处理的信息。
许多公司需要管理和处理批量扫描的文档,以及包含多个不同文档类型(例如 PDF 或多页 TIFF 图像)。 这些文档往往来自组织外部,而接收公司无法控制格式。
由于这些约束,组织必须构建自己的文档分析解决方案,这些解决方案可以包括自定义技术和手动流程。 例如,有人可能会按文档类型进行手动分类,并为每个文档添加分类限定符。
其中许多自定义解决方案都基于状态机工作流模式。 解决方案使用数据库系统来保留工作流状态,并使用轮询服务来检查它们需要处理的状态。 维护和改进这些解决方案可以提高处理复杂性和工作量。
组织需要可靠、可缩放且可复原的解决方案,以便处理和管理组织文件类型的文档标识和分类。 这款解决方案每天可处理数百万个文档,且可对处理管道的成功或失败进行全面观测。
NLP 允许用户以对话方式与系统交互。 用户可以提出有关文档的问题,并根据文档的内容接收答案。
可能的用例
使用此解决方案可以:
报告标题。 许多政府机构和市政当局管理着纸质记录,尚未使用数字记录形式。 有效的自动化解决方案可以生成一个文件,其中包含满足文档请求所需的所有文档。
管理维修记录。 你可能需要扫描纸质记录(如飞机、机车和机械维修记录)并将其发送给外部组织。
办理许可证。 市、县许可部门保持使用为许可证检查报告生成的纸质文件。 你可以拍摄多份检查文档并自动识别、分类和搜索这些记录。
分析计划图。 零售和消费品公司通过商店货架计划图分析管理库存和合规性。 你可以拍摄商店货架的照片,并从不同的产品中提取标签信息,以便自动识别、分类和量化产品信息。
注意事项
这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改进工作负荷质量的指导原则。 有关详细信息,请参阅 Well-Architected Framework。
可靠性
可靠性有助于确保应用程序能够履行对客户的承诺。 有关详细信息,请参阅可靠性设计评审核对清单。
可靠的工作负载同时具有复原能力和可用性。 复原能力是指系统从故障中恢复并继续正常运行的能力。 复原能力的目标是在故障发生后将应用程序恢复到可完全正常运行的状态。 可用性衡量的是用户在需要时能否访问你的工作负载。
若要确保 Azure OpenAI 终结点的可靠性与可用性,请考虑对 多个 Azure OpenAI 部署或实例使用生成 API 网关。 后端负载均衡器支持轮循机制、加权和基于优先级的负载均衡。 借助此功能,可以灵活地定义满足特定要求的 Azure OpenAI 负载分发策略。
有关解决方案组件可靠性的详细信息,请参阅 Azure 联机服务的 SLA 信息。
成本优化
成本优化侧重于减少不必要的开支和提高运营效率的方法。 有关详细信息,请参阅成本优化设计评审核对清单。
此体系结构的最大成本是 AI 搜索中的 Azure OpenAI 模型令牌使用情况、文档智能图像处理和索引容量要求。
要优化成本:
使用预配的吞吐量单位(PTU)和服务 预留 来 节省可预测的 AI 成本 ,而不是基于令牌的消耗。
针对区域部署和运营纵向扩展计划进行 AI 搜索规划。
使用预留容量和生命周期策略 来对存储帐户进行权限化。
对体系结构使用即用即付策略,并根据需要 横向扩展 ,而不是在开始时投资大规模资源。 随着解决方案的成熟,可以使用 应用服务预留 来帮助降低成本(如果适用)。
考虑你的体系结构中的机会成本,以及在先发优势与“快速跟进”战略之间的平衡。 要估计初始成本和运营成本,可使用定价计算器。
性能效率
性能效率是指工作负荷能够高效地缩放以满足用户需求。 有关详细信息,请参阅性能效率设计评审核对清单。
这款解决方案可能会在你处理大量数据时暴露出性能瓶颈。 若要确保解决方案的性能效率正确,请确保了解并规划 Azure Functions 缩放选项、 AI 服务自动缩放和 Azure Cosmos DB 分区。
Azure OpenAI PTU 提供有保证的性能和可用性,以及 全局部署。 这些部署使用 Azure 全局基础结构将客户流量动态路由到具有客户推理请求的最佳可用性的数据中心。
作者
Microsoft维护本文。 以下参与者撰写了本文。
主要作者:
- Kevin Kraus | 首席 Azure 技术专家
其他参与者:
- 布赖恩·斯威格 |首席 Azure 技术专家
若要查看非公开的LinkedIn个人资料,请登录LinkedIn。
后续步骤
介绍性文章:
- 什么是 Blob 存储?
- 什么是服务总线?
- 什么是 Durable Functions?
- 什么是 Azure AI Foundry?
- 什么是 Azure OpenAI?
- 什么是文档智能?
- 什么是 AI 搜索?
- 什么是 AI 搜索矢量存储?
- 应用服务入门
- Azure Cosmos DB 简介
产品文档: