百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

gptpdf:用gpt解析pdf的开源python库

yuyutoo 2025-01-21 22:36 1 浏览 0 评论

gptpdf是一个开源的python库,使用 视觉大模型(如 GPT-4o)将 PDF 解析为 markdown。

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

gptpdf使用 GeneralAgent 库与 OpenAI API 交互。

pdfgpt-ui 是一个基于 gptpdf 的可视化工具。

gptpdf的处理步骤

gptpdf首先使用 PyMuPDF 库解析 PDF 以查找所有非文本区域并标记它们,例如:

然后使用大型可视化模型(例如 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)

你可以点击这里查看 test/test.py 中的更多内容。

示例examples/gptpdf_Quick_Tour.ipynb 演示了如何在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等。

原文链接:gptpdf:基于gpt的pdf解析库 - 汇智网

相关推荐

史上最全的浏览器兼容性问题和解决方案

微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻︻▄(页底留言开放,欢迎来吐槽)●●●...

平面设计基础知识_平面设计基础知识实验收获与总结
平面设计基础知识_平面设计基础知识实验收获与总结

CSS构造颜色,背景与图像1.使用span更好的控制文本中局部区域的文本:文本;2.使用display属性提供区块转变:display:inline(是内联的...

2025-02-21 16:01 yuyutoo

写作排版简单三步就行-工具篇_作文排版模板

和我们工作中日常word排版内部交流不同,这篇教程介绍的写作排版主要是用于“微信公众号、头条号”网络展示。写作展现的是我的思考,排版是让写作在网格上更好地展现。在写作上花费时间是有累积复利优势的,在排...

写一个2048的游戏_2048小游戏功能实现

1.创建HTML文件1.打开一个文本编辑器,例如Notepad++、SublimeText、VisualStudioCode等。2.将以下HTML代码复制并粘贴到文本编辑器中:html...

今天你穿“短袖”了吗?青岛最高23℃!接下来几天气温更刺激……

  最近的天气暖和得让很多小伙伴们喊“热”!!!  昨天的气温到底升得有多高呢?你家有没有榜上有名?...

CSS不规则卡片,纯CSS制作优惠券样式,CSS实现锯齿样式

之前也有写过CSS优惠券样式《CSS3径向渐变实现优惠券波浪造型》,这次再来温习一遍,并且将更为详细的讲解,从布局到具体样式说明,最后定义CSS变量,自定义主题颜色。布局...

柠檬科技肖勃飞:大数据风控助力信用社会建设

...

你的自我界限够强大吗?_你的自我界限够强大吗英文

我的结果:A、该设立新的界限...

行内元素与块级元素,以及区别_行内元素和块级元素有什么区别?

行内元素与块级元素首先,CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,分别为块级(block)、行内(inline)。块级元素:(以下列举比较常...

让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华
让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华

去年的两会期间,习近平总书记在参加人大会议四川代表团审议时,对治蜀兴川提出了明确要求,指明了前行方向,并带来了“祝四川人民的生活越来越安逸”的美好祝福。又是一年...

2025-02-21 16:00 yuyutoo

今年国家综合性消防救援队伍计划招录消防员15000名

记者24日从应急管理部获悉,国家综合性消防救援队伍2023年消防员招录工作已正式启动。今年共计划招录消防员15000名,其中高校应届毕业生5000名、退役士兵5000名、社会青年5000名。本次招录的...

一起盘点最新 Chrome v133 的5大主流特性 ?

1.CSS的高级attr()方法CSSattr()函数是CSSLevel5中用于检索DOM元素的属性值并将其用于CSS属性值,类似于var()函数替换自定义属性值的方式。...

竞走团体世锦赛5月太仓举行 世界冠军杨家玉担任形象大使

style="text-align:center;"data-mce-style="text-align:...

学物理能做什么?_学物理能做什么 卢昌海

作者:曹则贤中国科学院物理研究所原标题:《物理学:ASourceofPowerforMan》在2006年中央电视台《对话》栏目的某期节目中,主持人问过我一个的问题:“学物理的人,如果日后不...

你不知道的关于这只眯眼兔的6个小秘密
你不知道的关于这只眯眼兔的6个小秘密

在你们忙着给熊本君做表情包的时候,要知道,最先在网络上引起轰动的可是这只脸上只有两条缝的兔子——兔斯基。今年,它更是迎来了自己的10岁生日。①关于德艺双馨“老艺...

2025-02-21 16:00 yuyutoo

取消回复欢迎 发表评论: