> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# gptpdf：基于gpt的pdf解析库
- URL: https://www.hubwiz.com/blog/gptpdf-using-gpt-to-parse-pdf/
- Published: 2024-11-27T01:04:51.000Z
- Updated: 2024-11-27T01:05:01.000Z
- Description: gptpdf是一个开源的python库，使用 VLM（如 GPT-4o）将 PDF 解析为 markdown。
- Author: admin
- Tags: LIBRARY, GPTPDF, GENERALAGENT, PDFGPT-UI, PYMUPDF, GOOGLE-COLAB, GPT-4o, #Import 2026-10-14 14:41

[gptpdf](https://github.com/CosmosShadow/gptpdf?ref=hubwiz.com)是一个开源的python库，使用 视觉大模型（如 GPT-4o）将 PDF 解析为 markdown。

gptpdf的方法非常简单（只有 293 行代码），但几乎可以完美地解析排版、数学公式、表格、图片、图表等。每页平均成本：0.013 美元。

gptpdf使用[ GeneralAgent ](https://github.com/CosmosShadow/GeneralAgent?ref=hubwiz.com) 库与 OpenAI API 交互。

[pdfgpt-ui ](https://github.com/daodao97/gptpdf-ui?ref=hubwiz.com)是一个基于 gptpdf 的可视化工具。

> gptpdf的处理步骤

gptpdf首先使用 [PyMuPDF ](https://github.com/pymupdf/PyMuPDF?ref=hubwiz.com)库解析 PDF 以查找所有非文本区域并标记它们，例如：

![](https://www.hubwiz.com/blog/content/images/2024/11/image-1716.png)

然后使用大型可视化模型（例如 GPT-4o）解析并获取 markdown 文件。

> gptpdf安装

```
pip install gptpdf
```

> gptpdf快速上手

在本地使用gptpdf的示例代码如下：

```
from gptpdf import parse_pdf
api_key = 'Your OpenAI API Key'
content, image_paths = parse_pdf(pdf_path, api_key=api_key)
print(content)
```

你可以点击[这里](https://github.com/CosmosShadow/gptpdf/blob/main/test/test.py?ref=hubwiz.com)查看 test/test.py 中的更多内容。

示例[examples/gptpdf\_Quick\_Tour.ipynb](https://github.com/CosmosShadow/gptpdf/blob/main/examples/gptpdf%5FQuick%5FTour.ipynb?ref=hubwiz.com) 演示了如何在Google Colab中使用gptpdf。

> API: parse\_pdf

函数原型：

```
def parse_pdf(
        pdf_path: str,
        output_dir: str = './',
        prompt: Optional[Dict] = None,
        api_key: Optional[str] = None,
        base_url: Optional[str] = None,
        model: str = 'gpt-4o',
        verbose: bool = False,
        gpt_worker: int = 1
) -> Tuple[str, List[str]]:
```

说明：

将 PDF 文件解析为 Markdown 文件并返回Markdown 内容以及所有图像路径。

参数：

- `pdf_path`：str。PDF 文件的路径。
- `output_dir`：str，默认值：'./'。用于存储所有图像和 Markdown 文件的输出目录
- `api_key`：Optional\[str\]，可选。OpenAI API 密钥。如果未提供，则将使用 `OPENAI_API_KEY` 环境变量。
- `base_url`：Optional\[str\]，可选。OpenAI 基本 URL。如果未提供，则将使用 `OPENAI_BASE_URL` 环境变量。可以修改它以使用 OpenAI API 接口调用其他大型模型服务，例如 GLM-4V。
- `model`：str，默认值：'gpt-4o'。OpenAI API 格式化的多模态大型模型。如果您需要使用其他模型，例如：qwen-vl-max、GLM-4V、Yi-Vision、Azure OpenAI。通过将 `base_url`设置为 `https://xxxx.openai.azure.com/`来使用Azure OpenAI，其中 `api_key`为Azure API密钥，模型类似azure\_xxxx，其中xxxx为部署的模型名称（已测试）。
- `verbose`：bool，默认值：False。详细模式。启用后，大模型解析的内容将显示在命令行中。
- `gpt_worker`：int，默认值：1。GPT解析工作线程数。如果您的机器性能更好，可以增加此值以加快解析速度。
- `prompt`：dict，可选；如果您使用的模型与本存储库提供的默认提示不匹配，无法达到最佳效果，我们支持添加自定义提示。存储库中的提示分为三个部分： `prompt`：主要用于指导模型如何处理和转换图像中的文本内容。 `rect_prompt`：用于处理图像中标记特定区域（例如表格或图像）的情况。 `role_prompt`：定义模型的角色，以确保模型了解它正在执行 PDF 文档解析任务。

你可以以字典的形式传递自定义提示来替换任何提示。下面是一个示例：

```
prompt = {
    "prompt": "Custom prompt text",
    "rect_prompt": "Custom rect prompt",
    "role_prompt": "Custom role prompt"
}

content, image_paths = parse_pdf(
    pdf_path=pdf_path,
    output_dir='./output',
    model="gpt-4o",
    prompt=prompt,
    verbose=False,
)
```

- args：LLM 其他参数，例如 `temperature`、 `top_p`、 `max_tokens`、 `presence_penalty`、 `frequency_penalty`等。

---

原文链接：[Using GPT to parse PDF](https://github.com/CosmosShadow/gptpdf?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处