PyMuPDF4LLM#
PyMuPDF4LLM 旨在让您更轻松地提取 LLM 和 RAG 环境所需的格式的 PDF 内容。它支持 Markdown 提取以及 LlamaIndex 文档输出。
重要提示
您可以通过结合使用 PyMuPDF Pro 和 PyMuPDF4LLM来扩展支持的文件类型,使其包含 Office 文档格式(DOC/DOCX、XLS/XLSX、PPT/PPTX、HWP/HWPX)。
功能#
支持多列页面
支持图像和矢量图形提取(并在 MD 文本中包含引用)
支持页面分块输出。
直接支持输出为 LlamaIndex 文档。
功能特性#
该软件包使用 PyMuPDF 将文件页面转换为 Markdown 格式的文本。
检测标准文本和表格,按正确的阅读顺序排列,然后一起转换为与 GitHub 兼容的 Markdown 文本。
通过字体大小识别标题行,并适当地前缀一个或多个
#
标签。检测粗体、斜体、等宽文本和代码块,并相应地进行格式化。有序列表和无序列表也类似处理。
默认情况下,会处理所有文档页面。如果需要,可以通过提供一个基于
0
的页面编号列表来指定页面子集。
安装#
通过 pip 安装软件包,使用命令:
pip install pymupdf4llm
将文件提取为 Markdown#
要以 Markdown 格式检索文档内容,只需安装软件包,然后使用几行 Python 代码即可获得结果。
然后在你的 Python 脚本中执行:
import pymupdf4llm
md_text = pymupdf4llm.to_markdown("input.pdf")
注意
除了上面所示的文件名字符串之外,还可以提供一个 PyMuPDF Document 对象。第二个参数可以是一个基于 0
的页面编号列表,例如 [0,1]
将只选择文档的第一页和第二页。
如果你想存储你的 Markdown 文件,例如存储为 UTF8 编码的文件,则执行:
import pathlib
pathlib.Path("output.md").write_bytes(md_text.encode())
将文件提取为 LlamaIndex 文档#
PyMuPDF4LLM 支持直接转换为 LLamaIndex 文档。文档首先被转换为 Markdown 格式,然后返回一个 LlamaIndex 文档,如下所示:
import pymupdf4llm
llama_reader = pymupdf4llm.LlamaMarkdownReader()
llama_docs = llama_reader.load_data("input.pdf")
结合使用 PyMuPDF Pro#
为了支持 Office 文档,PyMuPDF4LLM 可以与 PyMuPDF Pro 无缝协作。假设您已经安装了 PyMuPDF Pro,您将能够按预期处理 Office 文档。
import pymupdf4llm
import pymupdf.pro
pymupdf.pro.unlock()
md_text = pymupdf4llm.to_markdown("sample.doc")
如您所见,PyMuPDF Pro 的功能将在 PyMuPDF4LLM 环境中可用!
API#
请参阅PyMuPDF4LLM API。