LLM/RAG工具的PyMuPDF
项目描述
在LLM / RAG应用程序中将PyMuPDF用作数据提供者
此软件包使用PyMuPDF将PDF的页面转换为Markdown格式的文本。
检测标准文本和表格,按照正确的阅读顺序引入,然后一起转换为GitHub兼容的Markdown文本。
通过字体大小识别标题行,并相应地使用一个或多个'#'标签进行前缀。
检测并格式化加粗、斜体、等宽文本和代码块。类似的处理也适用于有序和无序列表。
默认情况下,处理所有文档页面。如果需要,可以通过提供0开始的页面数字列表来指定页面子集。
安装
$ pip install -U pdf4llm
此命令将自动安装所需的PyMuPDF。
然后在您的脚本中执行
import pdf4llm
md_text = pdf4llm.to_markdown("input.pdf")
# now work with the markdown text, e.g. store as a UTF8-encoded file
import pathlib
pathlib.Path("output.md").write_bytes(md_text.encode())
而不是上面的文件名字符串,也可以提供一个PyMuPDF Document
。默认情况下,将处理PDF中的所有页面。如果需要,可以使用pages=[...]
参数提供要考虑的0开始页面数字列表。
自v0.0.8版本以来的新功能
-
支持具有多个文本列的页面。
-
支持图像和矢量图形提取
- 指定
pdf4llm.to_markdown("input.pdf", write_images=True)
。默认为False
。 - 页面上的每个图像或矢量图形都将被提取并存储为名为
"input.pdf-pno-index.png"
的PNG图像,在"input.pdf"
文件夹中。其中pno
是0开始的页面号,index
是某个序列号。 - 图像文件将具有与页面上的值相等的宽度和高度。
- 图像或图形中包含的任何文本将不会被提取,而是作为图像部分显示。
- 指定
-
支持 页面块:不是返回整个文档的一个大字符串,而是生成一个字典列表:每个页面一个。指定
data = pdf4llm.to_markdown("input.pdf", page_chunks=True)
。然后,例如第一个元素,data[0]
将包含第一个页面的字典,其中包含文本和一些元数据。 -
作为直接支持 LLM / RAG 消费者的第一个示例,这个版本可以输出 LlamaIndex 文档
import pdf4llm md_read = LlamaMarkdownReader() data = md_read.load_data("input.pdf") # The result 'data' is of type List[LlamaIndexDocument] # Every list item contains metadata and the markdown text of 1 page.
- LlamaIndex 文档本质上对应于 Python 字典,其中页面的 markdown 文本是字典值之一。例如,第一页的文本是
data[0].to_dict().["text"]
的值。 - 有关详细信息,请参阅 LlamaIndex 文档。
- 在创建
LlamaMarkdownReader
时,将执行所有必要的 LlamaIndex 相关导入。所需的关联包安装必须独立完成,在 pdf4llm 安装过程中不会进行检查。
- LlamaIndex 文档本质上对应于 Python 字典,其中页面的 markdown 文本是字典值之一。例如,第一页的文本是
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
pdf4llm-0.0.9.tar.gz (3.1 kB 查看哈希值)
构建分布
pdf4llm-0.0.9-py3-none-any.whl (3.0 kB 查看哈希值)
关闭
pdf4llm-0.0.9.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 616340e1e8df370b6b138b5e82755b3b29e78226145abb89011ba92e71b3b859 |
|
MD5 | 01d9b470b0b4b22d15b95d52a710d4ce |
|
BLAKE2b-256 | 42e00cfed6dcb634e40f7de7aab63892589fb0b94970da6fa9fdc927c46e9fba |
关闭
pdf4llm-0.0.9-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 98188f4ed6b78e93fa9cfceb102b82ae1893f97933023126493fdb35de53cf51 |
|
MD5 | 62bebffc2856791aa1ca2207da9b0f63 |
|
BLAKE2b-256 | 970fc9771bbf11cf78bcd68139cc2ec6887982eae09d3b111a3bbd700ef6a739 |