Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A package for parsing PDFs and analyzing their content using LLMs.

License

NotificationsYou must be signed in to change notification settings

lazyFrogLOL/llmdocparser

Repository files navigation

A package for parsing PDFs and analyzing their content using LLMs.

This package is an improvement based on the concept ofgptpdf.

Method

gptpdf uses PyMuPDF to parse PDFs, identifying both text and non-text regions. It then merges or filters the text regions based on certain rules, and inputs the final results into a multimodal model for parsing. This method is particularly effective.

Based on this concept, I made some minor improvements.

Main Process

Using a layout analysis model, each page of the PDF is parsed to identify the type of each region, which includes Text, Title, Figure, Figure caption, Table, Table caption, Header, Footer, Reference, and Equation. The coordinates of each region are also obtained.

Layout Analysis Result Example:

[{'header': ((101, 66, 436, 102), 0)}, {'header': ((1038, 81, 1088, 95), 1)}, {'title': ((106, 215, 947, 284), 2)}, {'text': ((101, 319, 835, 390), 3)}, {'text': ((100, 565, 579, 933), 4)}, {'text': ((100, 967, 573, 1025), 5)}, {'text': ((121, 1055, 276, 1091), 6)}, {'reference': ((101, 1124, 562, 1429), 7)}, {'text': ((610, 565, 1089, 930), 8)}, {'text': ((613, 976, 1006, 1045), 9)}, {'title': ((612, 1114, 726, 1129), 10)}, {'text': ((611, 1165, 1089, 1431), 11)}, {'title': ((1011, 1471, 1084, 1492), 12)}]

This result includes the type, coordinates, and reading order of each region. By using this result, more precise rules can be set to parse the PDF.

Finally, input the images of the corresponding regions into a multimodal model, such as GPT-4o or Qwen-VL, to directly obtain text blocks that are friendly to RAG solutions.

img_pathtypepage_nofilenamecontentfilepath
{absolute_path}/page_1_title.pngTitle1attention is all you need[Text Block 1]{file_absolute_path}
{absolute_path}/page_1_text.pngText1attention is all you need[Text Block 2]{file_absolute_path}
{absolute_path}/page_2_figure.pngFigure2attention is all you need[Text Block 3]{file_absolute_path}
{absolute_path}/page_2_figure_caption.pngFigure caption2attention is all you need[Text Block 4]{file_absolute_path}
{absolute_path}/page_3_table.pngTable3attention is all you need[Text Block 5]{file_absolute_path}
{absolute_path}/page_3_table_caption.pngTable caption3attention is all you need[Text Block 6]{file_absolute_path}
{absolute_path}/page_1_header.pngHeader1attention is all you need[Text Block 7]{file_absolute_path}
{absolute_path}/page_2_footer.pngFooter2attention is all you need[Text Block 8]{file_absolute_path}
{absolute_path}/page_3_reference.pngReference3attention is all you need[Text Block 9]{file_absolute_path}
{absolute_path}/page_1_equation.pngEquation1attention is all you need[Text Block 10]{file_absolute_path}

See more in llm_parser.py main function.

Installation

pip install llmdocparser

Installation from Source

To install this project from source, follow these steps:

  1. Clone the Repository:

    First, clone the repository to your local machine. Open your terminal and run the following commands:

    git clone https://github.com/lazyFrogLOL/llmdocparser.gitcd llmdocparser
  2. Install Dependencies:

    This project uses Poetry for dependency management. Make sure you have Poetry installed. If not, you can follow the instructions in thePoetry Installation Guide.

    Once Poetry is installed, run the following command in the project's root directory to install the dependencies:

    poetry install

    This will read thepyproject.toml file and install all the required dependencies for the project.

Usage

fromllmdocparser.llm_parserimportget_image_contentcontent,cost=get_image_content(llm_type="azure",pdf_path="path/to/your/pdf",output_dir="path/to/output/directory",max_concurrency=5,azure_deployment="azure-gpt-4o",azure_endpoint="your_azure_endpoint",api_key="your_api_key",api_version="your_api_version")print(content)print(cost)

Parameters

  • llm_type: str

    The options are azure, openai, dashscope.

  • pdf_path: str

    Path to the PDF file.

  • output_dir: str

    Output directory to store all parsed images.

  • max_concurrency: int

    Number of GPT parsing worker threads. Batch calling details:Batch Support

If using Azure, the azure_deployment and azure_endpoint parameters need to be passed; otherwise, only the API key needs to be provided.

Cost

Using the 'Attention Is All You Need' paper for analysis, the model chosen is GPT-4o, costing as follows:

Total Tokens: 44063Prompt Tokens: 33812Completion Tokens: 10251Total Cost (USD): $0.322825

Average cost per page: $0.0215

Star History

Star History Chart

About

A package for parsing PDFs and analyzing their content using LLMs.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp