综合介绍
Marker 是一个基于深度学习的文档处理工具,旨在将 PDF 文件快速准确地转换为 Markdown 格式。它支持多种文档类型,特别优化了书籍和科学论文的转换。Marker 能够去除页眉页脚等多余内容,格式化表格和代码块,并提取和保存图像。它还可以将大部分公式转换为 LaTeX 格式,支持在 GPU、CPU 或 MPS 上运行。
功能列表
- 将 PDF 文件转换为 Markdown 格式
- 支持多种文档类型,包括书籍和科学论文
- 去除页眉页脚等多余内容
- 格式化表格和代码块
- 提取并保存图像
- 将大部分方程式转换为 LaTeX 格式
- 支持 GPU、CPU 和 MPS 运行
使用帮助
安装流程
- 安装依赖:确保已安装 Python 3.6 及以上版本,并安装以下依赖:
pip install marker-pdf
- 运行示例:
marker_single /path/to/file.pdf /path/to/output/folder --batch_multiplier 2 --max_pages 10
使用指南
转换单个文件
marker_single /path/to/file.pdf /path/to/output/folder --batch_multiplier 2 --max_pages 10
--batch_multiplier
是在拥有额外 VRAM 的情况下,默认批处理大小的倍数。更高的数字将占用更多的 VRAM,但处理速度更快。默认设置为 2。默认批处理大小大约需要 3GB 的 VRAM。--max_pages
是要处理的最大页面数。省略此项将转换整个文档。--langs
是可选的以逗号分隔的文档语言列表,用于 OCR。默认是可选的,如果使用 tesseract,则需要提供。--ocr_all_pages
是一个可选参数,用于强制对 PDF 的所有页面进行 OCR。如果此参数或环境变量 `OCR_ALL_PAGES` 为真,将强制进行 OCR。
支持的 Surya OCR 语言列表可以在 [这里] 找到。如果您需要更多语言,可以使用任何支持的语言,只需将 OCR_ENGINE
设置为 ocrmypdf
。如果不需要 OCR,marker 可以支持任何语言。
转换多个文件
marker /path/to/input/folder /path/to/output/folder --workers 4 --max 10 --min_length 10000
--workers
是同时转换的 PDF 数量。默认设置为 1,但您可以增加此值以提高吞吐量,代价是增加 CPU/GPU 的使用率。每个工作进程在峰值时将使用 5GB 的 VRAM,平均使用 3.5GB。--max
是要转换的 PDF 最大数量。省略此项将转换文件夹中的所有 PDF。--min_length
是在 PDF 中提取的字符数的最小值,只有超过这个值的 PDF 才会被考虑进行处理。如果您要处理很多 PDF,建议设置此值,以避免对主要是图像的 PDF 进行 OCR(这会减慢处理速度)。--metadata_file
是一个可选的 JSON 文件路径,包含关于 PDF 的元数据。如果提供该文件,将用于为每个 PDF 设置语言。对于 Surya(默认),设置语言是可选的,但对于 Tesseract 是必需的。格式如下:
{ "pdf1.pdf": {"languages": ["English"]}, "pdf2.pdf": {"languages": ["Spanish", "Russian"]}, ... }
您可以使用语言名称或代码。具体代码取决于 OCR 引擎。有关 Surya 代码的完整列表,请参见 [这里],有关 Tesseract 的请见 [这里]。
在FastGPT 中配置Marker环境变量
要启用自定义解析服务,需要在 FastGPT 中配置以下环境变量:
CUSTOM_READ_FILE_URL=http://xxxx.com/v1/parse/file
CUSTOM_READ_FILE_EXTENSION=pdf
- CUSTOM_READ_FILE_URL - 自定义解析服务的访问地址,需要将 host 修改为你部署的解析服务地址,path 路径保持不变
- CUSTOM_READ_FILE_EXTENSION - 指定支持解析的文件类型后缀,多个文件类型之间用逗号分隔
验证解析效果
完成配置后,你可以通过以下步骤验证解析效果:
- 在知识库中上传一个 PDF 文件并确认上传
- 查看系统日志(需要将 LOG_LEVEL 设置为 info 或 debug 级别)
- 你会发现通过 Marker 解析的 PDF 文件中包含了完整的图片链接,这表明解析成功