LLMs之gptpdf:gptpdf的简介、安装和使用方法、案例应用之详细攻略

LLMs之gptpdf:gptpdf的简介、安装和使用方法、案例应用之详细攻略

目录

gptpdf的简介

1、处理流程

第一步,使用 PyMuPDF 库,对 PDF 进行解析出所有非文本区域,并做好标记,比如:

第二步,使用视觉大模型(如 GPT-4o)进行解析,得到 markdown 文件。

gptpdf的安装和使用方法

1、安装

2、使用

解读test.py代码

3、API

gptpdf的案例应用


gptpdf的简介

gptpdf是一款主要使用视觉大语言模型(如 GPT-4o)将 PDF 解析为 markdown。我们的方法非常简单(只有293行代码),但几乎可以完美地解析排版、数学公式、表格、图片、图表等。每页平均价格仅需0.013 美元,我们使用 GeneralAgent lib 与 OpenAI API 交互。pdfgpt-ui 是一个基于 gptpdf 的可视化工具。

Github地址:GitHub - CosmosShadow/gptpdf: Using GPT to parse PDF

1、处理流程

第一步,使用 PyMuPDF 库,对 PDF 进行解析出所有非文本区域,并做好标记,比如:

第二步,使用视觉大模型(如 GPT-4o)进行解析,得到 markdown 文件。

gptpdf的安装和使用方法

1、安装

pip install gptpdf

2、使用

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

更多内容请见 test/test.py

地址:https://github.com/CosmosShadow/gptpdf/blob/main/test/test.py

解读test.py代码

import os# 从 .env 文件中加载环境变量
import dotenv
dotenv.load_dotenv()def test_use_api_key():from gptpdf import parse_pdfpdf_path = '../examples/attention_is_all_you_need.pdf'output_dir = '../examples/attention_is_all_you_need/'# 从环境变量中获取 OPENAI_API_KEY 和 OPENAI_API_BASEapi_key = os.getenv('OPENAI_API_KEY')base_url = os.getenv('OPENAI_API_BASE')# 手动提供 OPENAI_API_KEY 和 OPENAI_API_BASEcontent, image_paths = parse_pdf(pdf_path, output_dir=output_dir, api_key=api_key, base_url=base_url, model='gpt-4o', gpt_worker=6)# 输出解析后的内容和图像路径print(content)print(image_paths)# 同时会生成 output_dir/output.md 文件def test_use_env():from gptpdf import parse_pdfpdf_path = '../examples/attention_is_all_you_need.pdf'output_dir = '../examples/attention_is_all_you_need/'# 使用环境变量中的 OPENAI_API_KEY 和 OPENAI_API_BASEcontent, image_paths = parse_pdf(pdf_path, output_dir=output_dir, model='gpt-4o', verbose=True)# 输出解析后的内容和图像路径print(content)print(image_paths)# 同时会生成 output_dir/output.md 文件def test_azure():from gptpdf import parse_pdf# Azure API Keyapi_key = '8ef0b4df45e444079cd5a4xxxxx' # Azure API 基础 URLbase_url = 'https://xxx.openai.azure.com/' # Azure 部署的模型 ID 名称(不是 OpenAI 模型名称)model = 'azure_xxxx'pdf_path = '../examples/attention_is_all_you_need.pdf'output_dir = '../examples/attention_is_all_you_need/'# 使用提供的 Azure API Key 和基础 URLcontent, image_paths = parse_pdf(pdf_path, output_dir=output_dir, api_key=api_key, base_url=base_url, model=model, verbose=True)# 输出解析后的内容和图像路径print(content)print(image_paths)if __name__ == '__main__':# 取消注释以运行特定的测试函数# test_use_api_key()# test_use_env()test_azure()

3、API

parse_pdf(pdf_path, output_dir='./', api_key=None, base_url=None, model='gpt-4o', verbose=False)
将 pdf 文件解析为 markdown 文件,并返回 markdown 内容和所有图片路径列表。

  • pdf_path:pdf 文件路径

  • output_dir:输出目录。存储所有图片和 markdown 文件

  • api_key:OpenAI API 密钥(可选)。如果未提供,则使用 OPENAI_API_KEY 环境变量。

  • base_url:OpenAI 基本 URL。(可选)。如果未提供,则使用 OPENAI_BASE_URL 环境变量。

  • model:OpenAI API格式的多模态大模型,默认为 “gpt-4o”。 如果您需要使用其他模型,例如 qwen-vl-max (尚未测试)

    GLM-4V, 可以通过修改环境变量 OPENAI_BASE_URL 或 指定API参数 base_url 来使用。 (已经测试)

    您也可以通过将 base_url 指定为 https://xxxx.openai.azure.com/ 来使用 Azure OpenAI,api_key 是 Azure API 密钥,模型类似于 'azure_xxxx',其中 xxxx 是部署的模型名称(不是 openai 模型名称)(已经测试)

  • verbose:详细模式

  • gpt_worker: gpt解析工作线程数,默认为1. 如果您的机器性能较好,可以适当调高,以提高解析速度。

gptpdf的案例应用

持续更新中……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/370873.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RUST 编程语言 绘制随机颜色图片 画圆形 画矩形 画直线

什么是Rust Rust是一种系统编程语言,旨在提供高性能和安全性。它是由Mozilla和其开发社区创建的开源语言,设计目标是在C的应用场景中提供一种现代、可靠和高效的选择。Rust的目标是成为一种通用编程语言,能够处理各种计算任务,包…

基于若依的文件上传、下载

基于若依实现文件上传、下载 文章目录 基于若依实现文件上传、下载1、前端实现-文件上传1.1 通用上传分析1.2 修改实现上传接口 2、后端实现-文件上传3、后端实现-文件下载4、前端实现-文件下载 官网其实也写了,但是我是自己改造封装了一下,再次迈向全栈…

3.js - 模板渲染 - 简单

3.js 真tm枯燥啊,狗都不学 效果图 源码 // ts-nocheck// 引入three.js import * as THREE from three// 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls// 导入lil.gui import { GUI } from three/examples/jsm/libs/li…

elementui中日期/时间的禁用处理,使用传值的方式

项目中,经常会用到 在一个学年或者一个学期或者某一个时间段需要做的某件事情,则我们需要在创建这个事件的时候,需要设置一定的时间周期,那这个时间周期就需要给一定的限制处理,避免用户的误操作,优化用户体验 如下:需求为,在选择学年后,学期的设置需要在学年中,且结束时间大…

使用京东云主机搭建幻兽帕鲁游戏联机服务器全流程,0基础教程

使用京东云服务器搭建幻兽帕鲁Palworld游戏联机服务器教程,非常简单,京东云推出幻兽帕鲁镜像系统,镜像直接选择幻兽帕鲁镜像即可一键自动部署,不需要手动操作,真正的新手0基础部署幻兽帕鲁,阿腾云整理基于京…

【LabVIEW学习篇 - 2】:LabVIEW的编程特点

文章目录 LabVIEW的编程特点图形编程天然并行运行基于数据流运行 LabVIEW的编程特点 图形编程 LabVIEW使用图形化的图形化编程语言(G语言),用户通过在程序框图中拖放和连接各种节点(Nodes)来编写程序。每个节点代表一…

图像增强 目标检测 仿射变换 图像处理 扭曲图像

1.背景 在目标检测中,需要进行图像增强。这里的代码模拟了旋转、扭曲图像的功能,并且在扭曲的时候,能够同时把标注的结果也进行扭曲。 这里忽略了读取xml的过程,假设图像IMG存在对应的标注框,且坐标为左上、右下两个…

vue学习笔记(购物车小案例)

用一个简单的购物车demo来回顾一下其中需要注意的细节。 先看一下最终效果 功能: (1)全选按钮和下面的商品项的选中状态同步,当下面的商品全部选中时,全选勾选,反之,则不勾选。 &#xff08…

SpringBoot新手快速入门系列教程四:创建第一个SringBoot的API

首先我们用IDEA新建一个项目,请将这些关键位置按照我的设置设置一下 接下来我将要带着你一步一步创建一个Get请求和Post请求,通过客户端请求的参数,以json格式返回该参数{“message”:"Hello"} 1,先在IDE左上角把这里改为文件模式…

华为云OBS 通过S3客户端访问

华为云好像没有对S3协议的支持说明其实底层是支持S3协议的。 使用S3的时候我们会需要endpoint,桶名字,region,AWS_ACCESS_KEY,AWS_SECRET_KEY 其中endpoint 就是图片中的,桶名字也很容易找到,region 就是你的endpoint…

【开源项目】LocalSend 局域网文件传输工具

【开源项目】LocalSend 局域网文件传输工具 一个免费、开源、跨平台的局域网传输工具 LocalSend 简介 LocalSend 是一个免费的开源跨平台的应用程序,允许用户在不需要互联网连接的情况下,通过本地网络安全地与附近设备共享文件和消息。 项目地址&…

liunx文件系统,日志分析

文章目录 1.inode与block1.1 inode与block概述1.2 inode的内容1.3 文件存储1.4 inode的大小1.5 inode的特殊作用 2.硬链接与软链接2.1链接文件分类 3.恢复误删除的文件3.1 案例:恢复EXT类型的文件3.2 案例:恢复XFS类型的文件3.2.1 xfsdump使用限制 4.分析日志文件4.1日志文件4.…

docker部署redis/mongodb/

一、redis 创建/root/redis/conf/redis.conf 全部执行命令如下 docker run -it -d --name redis -p 6379:6379 --net mynet --ip 172.18.0.9 -m 400m -v /root/redis/conf:/usr/local/etc/redis -e TXAsia/Shangehai redis redis-server /usr/local/etc/redis/redis.conf 部署…

Java 基础--File - IO流(2)

I/O流 定义 数据从硬盘流向内存为输入流,数据从内存流向硬盘为输出流。输入也叫读取数据,输出也叫写出数据。 IO分类 1.按照数据的流向分为:输入流和输出流 ①输入流:把数据从其他设备上读取到内存中的流 ②输出流&#xff1…

python小练习04

三国演义词频统计与词云图绘制 import jieba import wordcloud def analysis():txt open("三国演义.txt",r,encodingutf-8).read()words jieba.lcut(txt)#精确模式counts {}for word in words:if len(word) 1:continueelif word "诸葛亮" or word &q…

软件系统架构的一些常见专业术语

分层架构是逻辑上的,在物理部署上,三层结构可以部署在同一个物理机器上,但是随着网站业务的发展,必然需要对已经分层的模块分离部署,即三层结构分别部署在不同的服务器上,使网站拥有更多的计算资源以应对越…

前端Web开发HTML5+CSS3+移动web视频教程 Day4 CSS 第2天

P44 - P 四个知识点: 复合选择器 CSS特性 背景属性 显示模式 复合选择器 复合选择器仍然是选择器,只要是选择器,作用就是找标签。复合选择器就是把基础选择器进行组合使用。组合了之后就可以在大量的标签里面更快更精准地找标签了。找…

[附源码]基于Flask的演唱会购票系统

摘要 随着互联网技术的普及和发展,传统购票方式因其效率低下、流程繁琐等问题已难以满足现代社会的需求。本文设计并实现了一个基于Flask框架的演唱会购票系统,该系统集成了用户管理、演唱会信息管理、票务管理以及数据统计与分析等功能模块&#xff0c…

项目实战--Spring Boot + Minio文件切片上传下载

1.搭建环境 引入项目依赖 <!-- 操作minio的java客户端--> <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.2</version> </dependency> <!-- jwt鉴权相应依赖--> &…

Python + OpenCV 开启图片、写入储存图片

这篇教学会介绍OpenCV 里imread()、imshow()、waitKey() 方法&#xff0c;透过这些方法&#xff0c;在电脑中使用不同的色彩模式开启图片并显示图片。 imread() 开启图片 使用imread() 方法&#xff0c;可以开启图片&#xff0c;imread() 有两个参数&#xff0c;第一个参数为档…