综合介绍
MegaParse 是一个强大且多功能的文件解析工具,专为大语言模型(LLM)的数据处理优化而设计。无论是处理文本、PDF、PowerPoint 演示文稿还是 Word 文档,MegaParse 都能轻松应对,并确保在解析过程中不丢失任何信息。该工具由 QuivrHQ 开发,开源且免费使用,旨在提供快速高效的文件解析服务,支持多种文件格式,包括文本、PDF、PowerPoint、Excel、CSV 和 Word 文档。
功能列表
- 多功能解析器:支持多种文件类型,包括文本、PDF、PowerPoint、Excel、CSV 和 Word 文档。
- 无信息丢失:确保在解析过程中不丢失任何信息。
- 快速高效:设计核心注重速度和效率。
- 开源免费:开源项目,免费使用。
- 支持多种内容:支持解析表格、目录、页眉、页脚和图像。
三种解析模式:
- 基础解析器(UnstructuredParser)
- 视觉解析器(MegaParseVision) - 支持多模态模型如GPT-4V和Claude 3
- Llama解析器(LlamaParser) - 通过Llama Cloud提供增强解析能力
性能表现:
根据基准测试,MegaParseVision模式的相似度比率达到0.87,是目前性能最好的解析模式。
主要应用场景:
- 需要将各类文档导入到LLM系统中进行处理
- 需要保持文档格式和内容完整性的场景
- 批量文档处理任务
项目正在积极开发中,计划添加更多功能如:
- 改进表格检查器
- 增加模块化后处理
- 添加结构化输出支持
使用帮助
安装流程
- 安装 MegaParse:
pip install megaparse
- 配置 API 密钥:将您的 OpenAI 或 Anthropic API 密钥添加到
.env
文件中。 - 安装依赖:
- 对于图像和 PDF 文件,安装
poppler
和tesseract
。 - 如果使用 Mac,还需要安装
libmagic
:brew install libmagic
- 对于图像和 PDF 文件,安装
使用 MegaParse
- 导入 MegaParse:
from megaparse import MegaParse from langchain_openai import ChatOpenAI from megaparse.parser.unstructured_parser import UnstructuredParser parser = UnstructuredParser() megaparse = MegaParse(parser) response = megaparse.load("./test.pdf") print(response) megaparse.save("./test.md")
- 使用 MegaParse Vision:
from megaparse import MegaParse from langchain_openai import ChatOpenAI from megaparse.parser.megaparse_vision import MegaParseVision model = ChatOpenAI(model="gpt-4o", api_key=os.getenv("OPENAI_API_KEY")) parser = MegaParseVision(model=model) megaparse = MegaParse(parser) response = megaparse.load("./test.pdf") print(response) megaparse.save("./test.md")
使用 LlamaParse 提升结果
- 创建 Llama Cloud 账户并获取 API 密钥。
- 更改解析器为 LlamaParser:
from megaparse import MegaParse from langchain_openai import ChatOpenAI from megaparse.parser.llama_parser import LlamaParser parser = LlamaParser(api_key=os.getenv("LLAMA_CLOUD_API_KEY")) megaparse = MegaParse(parser) response = megaparse.load("./test.pdf") print(response) megaparse.save("./test.md")
作为 API 使用
- 使用 MakeFile:
在项目根目录下运行:make dev
- 访问文档:
打开浏览器访问localhost:8000/docs
查看不同的端点信息。