一、关于 LlamaParse
- github : https://github.com/run-llama/llama_parse
- LlamaCloud 文档:https://docs.cloud.llamaindex.ai/
LlamaParse是LlamaCloud的一部分,是一个GenAI原生文档解析器,可以为任何下游LLM用例(RAG、代理)解析复杂的文档数据。
它真的很擅长以下方面:
- ✅广泛的文件类型支持:使用文本、表格、视觉元素、奇怪的布局等解析各种非结构化文件类型(. pdf、.pptx、.docx、.xlsx、.html)。
- ✅表识别:将嵌入的表准确地解析为文本和半结构化表示。
- ✅多模态解析和分块:将视觉元素(图像/图表)提取为结构化格式,并使用最新的多模态模型返回图像块。
- ✅自定义解析:输入自定义提示指令以按您想要的方式自定义输出。
LlamaParse直接与LlamaIndex集成。
价格
免费计划每天最多1000页。默认情况下,付费计划每周免费7k页+每增加一页0.3c。有一个沙盒可用于测试APIhttps://cloud.llamaindex.ai/parse↗。
如果您是一家对企业RAG解决方案和/或LlamaParse的大容量/本地使用感兴趣的公司,请与我们交谈。
LlamaCloud
LlamaCloud是 LlamaIndex 的e2e企业RAG平台,它提供开箱即用、生产就绪的连接器、索引和对复杂数据源的检索。LlamaIndex 提供SaaS和VPC选项。
LlamaCloud目前可通过waitlist获得(通过创建一个帐户加入)。如果您对最先进的质量和集中您的RAG工作感兴趣,请与我们联系。
例子
可以在示例文件夹中找到几个端到端索引示例
二、使用入门
首先,登录并从https://cloud.llamaindex.ai/api-key↗获取api密钥。
然后,确保您安装了最新的LlamaIndex版本。
**注意:**如果您从v0.9升级。X,我们建议遵循我们的迁移指南,并先卸载以前的版本。
pip uninstall llama-index # run this if upgrading from v0.9.x or older
pip install -U llama-index --upgrade --no-cache-dir --force-reinstall
最后,安装软件包:
pip install llama-parse
现在您可以运行以下命令来解析您的第一个PDF文件:
import nest_asyncio
nest_asyncio.apply()
from llama_parse import LlamaParse
parser = LlamaParse(
api_key="llx-...", # can also be set in your env as LLAMA_CLOUD_API_KEY
result_type="markdown", # "markdown" and "text" are available
num_workers=4, # if multiple files passed, split in `num_workers` API calls
verbose=True,
language="en", # Optionally you can define a language, default=en
)
# sync
documents = parser.load_data("./my_file.pdf")
# sync batch
documents = parser.load_data(["./my_file1.pdf", "./my_file2.pdf"])
# async
documents = await parser.aload_data("./my_file.pdf")
# async batch
documents = await parser.aload_data(["./my_file1.pdf", "./my_file2.pdf"])
三、与文件对象一起使用
您可以直接解析文件对象:
import nest_asyncio
nest_asyncio.apply()
from llama_parse import LlamaParse
parser = LlamaParse(
api_key="llx-...", # can also be set in your env as LLAMA_CLOUD_API_KEY
result_type="markdown", # "markdown" and "text" are available
num_workers=4, # if multiple files passed, split in `num_workers` API calls
verbose=True,
language="en", # Optionally you can define a language, default=en
)
with open("./my_file1.pdf", "rb") as f:
documents = parser.load_data(f)
# you can also pass file bytes directly
with open("./my_file1.pdf", "rb") as f:
file_bytes = f.read()
documents = parser.load_data(file_bytes)
四、SimpleDirectoryReader
您还可以将解析器集成 为SimpleDirectoryReader
中的默认PDF加载器:
import nest_asyncio
nest_asyncio.apply()
from llama_parse import LlamaParse
from llama_index.core import SimpleDirectoryReader
parser = LlamaParse(
api_key="llx-...", # can also be set in your env as LLAMA_CLOUD_API_KEY
result_type="markdown", # "markdown" and "text" are available
verbose=True,
)
file_extractor = {".pdf": parser}
documents = SimpleDirectoryReader(
"./data", file_extractor=file_extractor
).load_data()
完整的SimpleDirectoryReader
留档可以在LlamaIndex文档中找到。
2024-09-25(二)