LlamaParse:高效的文档解析工具

在处理PDF、PPT等格式的文档时,解析其中的复杂对象(如表格、图形等)一直是一个挑战。传统的解析技术往往难以准确解读和提取这些编码信息。为了应对这一普遍问题,软件开发社区推出了多种库和框架,如LLMSherpa和unstructured.io等,它们为解析复杂PDF提供了强大而灵活的解决方案。

最近,LlamaParse加入了这一工具列表。LlamaParse由Llama Index开发,这是一个备受推崇的LLM框架。因此,LlamaParse可以与Llama Index直接集成,这种无缝集成是一个显著优势,因为它简化了实施过程,并确保了两个工具之间的更高兼容性。总之,LlamaParse是一个有前景的新工具,它使解析复杂PDF变得更加容易和高效。

学习目标

识别文档解析挑战:理解解析带有嵌入式对象的复杂PDF的困难。

LlamaParse介绍:了解LlamaParse是什么以及它与Llama Index的无缝集成。

设置和初始化:创建LlamaCloud账户,获取API密钥,并安装必要的库。

实现LlamaParse:按照步骤初始化LLM,加载和解析文档。

创建向量索引和查询数据:学习如何创建向量存储索引,设置查询引擎,并从解析的文档中提取特定信息。

目录

使用LlamaParse在PDF上创建RAG应用程序的步骤

步骤1:获取API密钥

步骤2:安装所需的库

步骤3:设置环境变量

步骤4:初始化LLM和嵌入模型

步骤5:解析文档

步骤6:创建向量索引和查询引擎

步骤7:查询索引

步骤8:将所有内容整合在一起

创建RAG应用程序的步骤

步骤1:获取API密钥

LlamaParse是LlamaCloud平台的一部分,因此需要拥有LlamaCloud账户才能获得API密钥。首先,必须在LlamaCloud上创建账户并登录以创建API密钥。

步骤2:安装所需的库

现在打开Jupyter Notebook/Colab并安装所需的库。在这里,只需要安装两个库:llama-index和llama-parse。将使用OpenAI的模型进行查询和嵌入。 !pip install llama-index !pip install llama-parse

步骤3:设置环境变量

import os os.environ['OPENAI_API_KEY'] = 'sk-proj-****' os.environ["LLAMA_CLOUD_API_KEY"] = 'llx-****'

步骤4:初始化LLM和嵌入模型

from llama_index.llms.openai import OpenAI from llama_index.embeddings.openai import OpenAIEmbedding from llama_index.core import Settings embed_model = OpenAIEmbedding(model="text-embedding-3-small") llm = OpenAI(model="gpt-3.5-turbo-0125") Settings.llm = llm Settings.embed_model = embed_model

步骤5:解析文档

from llama_parse import LlamaParse from llama_index.core.node_parser import MarkdownElementNodeParser documents = LlamaParse(result_type="markdown").load_data("./Table_2021.pdf") node_parser = MarkdownElementNodeParser(llm=llm, num_workers=8) nodes = node_parser.get_nodes_from_documents(documents) base_nodes, objects = node_parser.get_nodes_and_objects(nodes)

步骤6:创建向量索引和查询引擎

from llama_index.core import VectorStoreIndex recursive_index = VectorStoreIndex(nodes=base_nodes + objects) recursive_query_engine = recursive_index.as_query_engine(similarity_top_k=5)

步骤7:查询索引

query = 'Extract the table as a dict and exclude any information about 2020. Also include % var' response = recursive_query_engine.query(query) print(response)

步骤8:将所有内容整合在一起

from llama_index.llms.openai import OpenAI from llama_index.embeddings.openai import OpenAIEmbedding from llama_index.core import Settings from llama_parse import LlamaParse from llama_index.core.node_parser import MarkdownElementNodeParser from llama_index.core import VectorStoreIndex embed_model = OpenAIEmbedding(model="text-embedding-3-small") llm = OpenAI(model="gpt-3.5-turbo-0125") Settings.llm = llm Settings.embed_model = embed_model documents = LlamaParse(result_type="markdown").load_data("./Table_2021.pdf") node_parser = MarkdownElementNodeParser(llm=llm, num_workers=8) nodes = node_parser.get_nodes_from_documents(documents) base_nodes, objects = node_parser.get_nodes_and_objects(nodes) recursive_index = VectorStoreIndex(nodes=base_nodes + objects) recursive_query_engine = recursive_index.as_query_engine(similarity_top_k=5) query = 'Extract the table as a dict and exclude any information about 2020. Also include % var' response = recursive_query_engine.query(query) print(response)

LlamaParse是一个高效的工具,可以从PDF文件等不同文档类型中提取复杂对象,只需几行代码。然而,需要注意的是,要充分利用这个工具,需要一定程度的LLM框架(如llama index)的工作经验。

LlamaParse在处理不同复杂性的任务中显示出其价值。然而,像技术领域的任何其他工具一样,它并非完全免疫于错误。因此,强烈建议独立进行彻底的应用程序评估或利用现有的评估工具。评估库,如Ragas、Truera等,提供了评估结果的准确性和可靠性的指标。这一步确保了潜在问题在应用程序推向生产环境之前被识别和解决。

LlamaParse是由Llama Index团队创建的工具。它能够从PDF等文档中提取复杂的嵌入式对象,只需几行代码。

LlamaParse提供免费和付费计划。免费计划允许每天解析多达1000页。

LlamaParse目前支持10+种文件类型(.pdf、.pptx、.docx、.html、.xml等)。

LlamaParse是LlamaCloud平台的一部分,因此需要LlamaCloud账户才能获得API密钥。

使用LlamaParse,可以用自然语言提供指令来格式化输出。它甚至支持图像提取。

Q1. Llama Index是什么?

A.LlamaIndex是构建LLM应用程序的主要LLM框架之一,与LangChain一起,它有助于将自定义数据源连接到大型语言模型(LLMs),是构建RAG应用程序的广泛使用的工具。

Q2. LlamaParse是什么?

A. LlamaParse是Llama Index提供的一个工具,可以从PDF、PPT等文档中提取复杂的表格和图形。因此,LlamaParse可以与Llama Index直接集成,允许使用Llama Index提供的广泛代理和工具。

Q3. LlamaParse与Llama Index有何不同?

A. Llama Index是一个用于构建自定义LLM应用程序的LLM框架,并提供各种工具和代理。LlamaParse专门专注于从文档中提取复杂的嵌入式对象,如PDF、PPT等。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485