Unstructured 推出 Extract:从文档中提取结构化数据
Unstructured 在其文档处理工作流中新增 Extract 节点,支持通过 LLM 或正则表达式从文档中提取结构化 JSON 数据,适用于智能文档处理、数据库记录生成等场景。
Unstructured 宣布在其文档处理工作流中引入一个新的富集节点——Extract,旨在直接从文档中提取结构化数据。Unstructured 的标准工作流通常包括分区器(Partitioner)将内容拆分为类型化的文档元素、富集(Enrichments)添加上下文和元数据、分块器(Chunker)准备检索用的块、以及嵌入器(Embedder)生成搜索向量。这些节点共同使数据更适合用于 RAG、Agent AI 和模型微调。而现在,Extract 节点被添加到了工作流中,位于目的地节点之前,为用户提供了一种从非结构化文档中提取结构化 JSON 记录的能力。
与传统的检索用途不同,许多场景需要的是结构化的数据库记录而非文本块。例如,客户订单表单需要提取客户 ID、行项目和总计;医疗发票需要患者详情和手术代码;房地产列表、财务报表、会议日程等也都需要一致格式的 JSON 输出。Extract 允许用户预先使用 JSON Schema 定义输出结构——该模式遵循 OpenAI Structured Outputs 格式——然后 Unstructured 会自动从源文档中提取数据并映射到定义的结构中。
Extract 节点支持两种提取方法:基于 LLM 的提取和基于正则表达式的提取。LLM 提取适用于需要理解内容含义的任务,例如判断会议是否与 AI 相关,或从非结构化医疗笔记中提取结构化患者记录。正则表达式提取则适用于模式固定的数据,如发票号、日期、金额、电子邮件地址等。用户可以通过可视化模式构建器(在工作流编辑器中)或直接上传 JSON 文件来定义提取模式。对于正则表达式模式,需为每个字段定义模式名称和正则表达式。
当工作流运行时,Extract 节点会输出一种新的文档元素类型 DocumentData,该元素位于结果顶部,其元数据中的 extracted_data 字段包含映射后的结构化数据。其他文档元素保持不变,因此同一工作流可以同时生成用于向量检索的块和用于数据库的结构化记录,无需二选一。
Extract 节点构建在 Unstructured 的分区和富集层之上,继承了处理复杂布局、扫描文件、多列 PDF、表格、图像和手写内容的能力。用户只需定义输出形状,Unstructured 负责读取和理解文档。这使得 Extract 非常适合金融、医疗、法律、运营等领域的智能文档处理(IDP)。以往这类任务需要专门的提取系统或大量人工,而现在可以将其集成到现有工作流中,无需额外基础设施。
用户可以通过工作流编辑器直接测试提取效果——拖入本地文件,运行包含 Extract 节点的流程,即可并排查看原始文档和结构化输出。满意后,连接源和目的地连接器并作为作业运行。此外,Extract 节点完全可通过 Unstructured Python SDK 和 API 以编程方式访问。Extract 节点现已可用,用户可免费注册并测试自己的文档。