跳到正文
LlamaIndex:产品、工程与评测·· 2024-07-25精选AI 评分62

LlamaIndex 推出 LlamaExtract Beta:从非结构化文档抽取结构化数据

Introducing LlamaExtract Beta: structured data extraction in just a few clicks

AI 导读

LlamaIndex 发布 LlamaExtract beta,这是一个托管服务,可从非结构化文档中抽取结构化数据:能从候选文档集推断 schema(用户可后续编辑),并按指定 schema 抽取字段值。

推荐理由

原文来自 LlamaIndex 官方,介绍了从文档推断 schema 并抽取结构化数据的用法,读者可以评估它在 RAG 数据处理管线中的适配性。

正文 · AI 翻译

从非结构化数据中进行结构化提取,既是 LLM 自身的一个核心用例,也是用于检索和 RAG 用例的数据处理中的关键组成部分。今天,我们很高兴地宣布 LlamaExtract 的 beta 版本发布,这是一项托管服务,可让你从非结构化文档中执行结构化提取。

它的功能如下:

  1. 从一组现有的候选文档中推断出 schema。你可以选择稍后编辑此 schema。
  2. 根据指定的 schema(无论是从上一步推断出来的、由人工指定的,还是两者兼有)从一组文档中提取值。

LlamaParse 用户可以通过 UI 和 API 使用 LlamaExtract。目前,schema 推断的上限为 5 个文件,每个文件最多 10 页。给定现有 schema 后,schema 提取按文档逐个进行。

LlamaExtract 目前处于 beta 阶段,这意味着它是一个实验性功能,我们正在努力改进它,使其更具可扩展性和可用性。请将任何问题报告到我们的 Github!

立即探索我们的免费和付费方案。

LLM 应用需要一套新的数据 ETL 技术栈。这个数据加载、转换和索引层对于针对非结构化数据的下游 RAG 和 agent 用例至关重要。

我们构建了 LlamaParse 和 LlamaParse 来满足这些 ETL 需求,并为生产环境中复杂文档上的数千条生产流水线提供支持。通过与用户和客户合作,我们意识到除了 chunk 级嵌入之外,自动化元数据提取也是转换环节(ETL 中的“T”)的重要组成部分;它是提高对大量非结构化数据的透明度和控制力的核心必要组成部分。

这促使我们构建了 LlamaExtract 的初始版本——旨在为你的非结构化数据自动化数据转换。

操作演示

LlamaExtract 是一个 API,它还有一个 python 客户端,当然还有 LlamaParse 中的 Web UI。

使用 UI 进行原型设计

LlamaExtract UI 允许你对提取任务进行原型设计。点击左侧的“Extraction (beta)”标签后,你可以点击“Create a new schema”来定义一个新的提取任务,这会带你进入 schema 创建界面:

将你的文件拖放到 UI 中。点击“Next”启动 schema 推断——推断出的 JSON schema 将显示在下方“Schema”部分中:

这遵循 Pydantic JSON schema 格式;推断完成后,你可以完全自由地自定义和修改推断出的 schema。schema 可视化将反映你的更改。

一旦你对 schema 满意,就可以启动提取,它将返回最终的 JSON 对象,其中包含符合该 schema 的提取键和值。

我们正在对 UI 进行一些核心改进,例如将 schema 推断和提取解耦、允许用户预定义 schema 等。如需更大的灵活性,请查看下面的 API。

使用 API 创建提取工作流

该 API 允许用户更灵活地集成 schema 推断和提取。要通过我们的客户端包访问 API,请按照以下步骤操作:

pip install llama-extract

你可以选择推断一个 schema,或指定你自己的 schema(也可以先推断,然后通过编程方式按你的喜好修改它)。如果你希望使用 LlamaExtract 的 schema 推断能力,请执行:

from llama_extract import LlamaExtract

extractor = LlamaExtract()

extraction_schema = extractor.infer_schema("Test Schema", ["./file1.pdf","./file2.pdf"])

如果你愿意,也可以直接指定 schema,而不是让它自行推断。最简单的方式是定义一个 Pydantic 对象,然后将其转换为 JSON schema:

from pydantic import BaseModel, Field

class ResumeMetadata(BaseModel):
    """Resume metadata."""

    years_of_experience: int = Field(..., description="Number of years of work experience.")
    highest_degree: str = Field(..., description="Highest degree earned (options: High School, Bachelor's, Master's, Doctoral, Professional")
    professional_summary: str = Field(..., description="A general summary of the candidate's experience")
    
extraction_schema = extractor.create_schema("Test Schema", ResumeMetadata)

无论你如何获得 schema,现在都可以执行提取:

extractions = extractor.extract(extraction_schema.id, ["./file3.pdf","./file4.pdf"])

你可以看到提取出的数据:

print(extractions[0].data)

一些示例用例

LlamaExtract 使用 LlamaParse 作为其底层解析器,能够处理复杂的文档类型(注意:原生多模态提取即将推出!)通过我们初步的探索,以下是一些 LlamaExtract 具有价值的数据集:

  • 简历:从候选人资料中提取结构化标注,如学校、工作经历、YOE
  • 收据和发票:提取行项目、总价及其他数字。
  • 产品页面:根据用户定义的 schema 对产品进行结构化和分类。

查看 LlamaExtract 客户端仓库的示例部分,了解更多可能性。

通过向社区开放,我们很高兴能快速改进用户体验、可扩展性和性能。以下是功能路线图:

  • 多模态提取
  • 在 UI 中将 schema 创建与提取解耦
  • 支持人在环路的 schema 创建,作为一等用户体验
  • 使自动化 schema 推断和提取在更长的文档(例如 10K 文件)上更加稳健

试用一下

LlamaExtract 面向所有用户开放。你无需从等待名单中被放行!只需在 cloud.llamaindex.ai 创建一个账户即可使用 UI;你也可以查看我们的 python 客户端。要开始使用,请尝试以下 notebook 之一:

如果你对更广泛的 LlamaParse 功能感兴趣,加入我们的等待名单。

来源:LlamaIndex:产品、工程与评测 · llamaindex.ai