gptpdf
Using VLLM (like GPT-4o) to parse PDF into markdown.
Our approach is very simple (only 293 lines of code), but can almost perfectly parse typography, math formulas, tables, pictures, charts, etc.
Average cost per page: $0.013
This package use GeneralAgent lib to interact with OpenAI API.
pdfgpt-ui is a visual tool based on gptpdf.
Process steps
- Use the PyMuPDF library to parse the PDF to find all non-text areas and mark them, for example:
- Use a large visual model (such as GPT-4o) to parse and get a markdown file.
DEMO
-
examples/attention_is_all_you_need/output.md for PDF examples/attention_is_all_you_need.pdf.
-
examples/rh/output.md for PDF examples/rh.pdf.
Installation
pip install gptpdf
Usage
Local Usage
from gptpdf import parse_pdf
api_key = 'Your OpenAI API Key'
content, image_paths = parse_pdf(pdf_path, api_key=api_key)
print(content)
See more in test/test.py
Google Colab
see examples/gptpdf_Quick_Tour.ipynb
API
parse_pdf
Function:
def parse_pdf(
pdf_path: str,
output_dir: str = './',
api_key = None,
base_url = None,
model = 'gpt-4o',
gpt_worker: int = 1,
prompt = DEFAULT_PROMPT,
rect_prompt = DEFAULT_RECT_PROMPT,
role_prompt = DEFAULT_ROLE_PROMPT,
) -> Tuple[str, List[str]]:
Parses a PDF file into a Markdown file and returns the Markdown content along with all image paths.
Parameters:
-
pdf_path: str
Path to the PDF file -
output_dir: str, default: './'
Output directory to store all images and the Markdown file -
api_key: str
OpenAI API key. If not provided through this parameter, it must be set via theOPENAI_API_KEYenvironment variable. -
base_url: str, optional
OpenAI base URL. If not provided through this parameter, it must be set via theOPENAI_BASE_URLenvironment variable. Can be used to configure custom OpenAI API endpoints. -
model: str, default: 'gpt-4o'
OpenAI API formatted multimodal large model. If you need to use other models. -
gpt_worker: int, default: 1
Number of GPT parsing worker threads. If your machine has better performance, you can increase this value to speed up the parsing. -
prompt: str, default: uses built-in prompt
Custom main prompt used to guide the model on how to process and convert text content in images. -
rect_prompt: str, default: uses built-in prompt
Custom rectangle area prompt used to handle cases where specific areas (such as tables or images) are marked in the image. -
role_prompt: str, default: uses built-in prompt
Custom role prompt that defines the role of the model to ensure it understands it is performing a PDF document parsing task.You can customize these prompts to adapt to different models or specific needs, for example:
content, image_paths = parse_pdf( pdf_path=pdf_path, output_dir='./output', model="gpt-4o", prompt="Custom main prompt", rect_prompt="Custom rectangle area prompt", role_prompt="Custom role prompt", verbose=False, )
Join Us 👏🏻
Scan the QR code below with WeChat to join our group chat or contribute.
Metadata
Release files for gptpdf 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| gptpdf-0.1.1.tar.gz | 7.3 kB | Without provenance | Details for gptpdf-0.1.1.tar.gz |
Release files / gptpdf-0.1.1.tar.gz
| Download URL | gptpdf-0.1.1.tar.gz |
|---|---|
| Size | 7.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
51f233ef28772739990ba0b2e0181c7ad786b32ddb74642c4dde20016b74ff07
|
|
BLAKE2b-256 checksum How to use checksums |
68c6db91903056c828781f929fac8704fd9da6158593e5fedebd9131b056fde5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.9.12 Darwin/22.1.0
|
Security for gptpdf 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.