gptpdf
使用VLLM(如GPT-4o)将PDF解析成markdown格式。
我们的方法非常简单(仅293行代码),但几乎可以完美解析排版、数学公式、表格、图片、图表等。
平均每页成本:$0.013
此软件包使用GeneralAgent库与OpenAI API进行交互。
pdfgpt-ui是基于gptpdf的可视化工具。
处理步骤
- 使用PyMuPDF库解析PDF以找出所有非文本区域并标记它们,例如:
- 使用大型视觉模型(如GPT-4o)进行解析并获得markdown文件。
示例
安装
pip install gptpdf
使用方法
本地使用
from gptpdf import parse_pdf
api_key = '你的OpenAI API密钥'
content, image_paths = parse_pdf(pdf_path, api_key=api_key)
print(content)
更多详情请查看test/test.py
Google Colab
请查看examples/gptpdf_Quick_Tour.ipynb
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": "自定义提示文本",
"rect_prompt": "自定义矩形提示",
"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
等。
加入我们 👏🏻
使用微信扫描下方二维码加入我们的群聊或贡献。