Un paquete para analizar PDFS y analizar su contenido utilizando LLMS.
Este paquete es una mejora basada en el concepto de GPTPDF.
GPTPDF utiliza PymUpDF para analizar PDF, identificando tanto regiones de texto como de texto. Luego fusiona o filtra las regiones de texto en función de ciertas reglas e ingresa los resultados finales en un modelo multimodal para el análisis. Este método es particularmente efectivo.
Según este concepto, hice algunas mejoras menores.
Usando un modelo de análisis de diseño, cada página del PDF se analiza para identificar el tipo de cada región, que incluye texto, título, figura, figura, tabla, tabla de tabla, encabezado, pie de página, referencia y ecuación. También se obtienen las coordenadas de cada región.
Ejemplo de resultado de análisis de diseño:
[{'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)}]
Este resultado incluye el tipo, las coordenadas y el orden de lectura de cada región. Al usar este resultado, se pueden establecer reglas más precisas para analizar el PDF.
Finalmente, ingrese las imágenes de las regiones correspondientes en un modelo multimodal, como GPT-4O o QWEN-VL, para obtener directamente bloques de texto que son amigables con las soluciones RAG.
| img_path | tipo | Page_no | Nombre del archivo | contenido | filepático |
|---|---|---|---|---|---|
| {absoluto_path} /page_1_title.png | Título | 1 | La atención es todo lo que necesitas | [Bloque de texto 1] | {file_absolute_path} |
| {absoluto_path} /page_1_text.png | Texto | 1 | La atención es todo lo que necesitas | [Bloque de texto 2] | {file_absolute_path} |
| {absoluto_path} /page_2_figure.png | Cifra | 2 | La atención es todo lo que necesitas | [Bloque de texto 3] | {file_absolute_path} |
| {absoluto_path} /page_2_figure_caption.png | Título de la figura | 2 | La atención es todo lo que necesitas | [Bloque de texto 4] | {file_absolute_path} |
| {absoluto_path} /page_3_table.png | Mesa | 3 | La atención es todo lo que necesitas | [Bloque de texto 5] | {file_absolute_path} |
| {absoluto_path} /page_3_table_caption.png | Título de tabla | 3 | La atención es todo lo que necesitas | [Bloque de texto 6] | {file_absolute_path} |
| {absoluto_path} /page_1_header.png | Encabezamiento | 1 | La atención es todo lo que necesitas | [Bloque de texto 7] | {file_absolute_path} |
| {absoluto_path} /page_2_footer.png | Pie de página | 2 | La atención es todo lo que necesitas | [Bloque de texto 8] | {file_absolute_path} |
| {absoluto_path} /page_3_reference.png | Referencia | 3 | La atención es todo lo que necesitas | [Bloque de texto 9] | {file_absolute_path} |
| {absoluto_path} /page_1_equation.png | Ecuación | 1 | La atención es todo lo que necesitas | [Bloque de texto 10] | {file_absolute_path} |
Ver más en LLM_Parser.py Función principal.
pip install llmdocparser
Para instalar este proyecto desde la fuente, siga estos pasos:
Clon el repositorio:
Primero, clone el repositorio de su máquina local. Abra su terminal y ejecute los siguientes comandos:
git clone https://github.com/lazyFrogLOL/llmdocparser.git
cd llmdocparserInstalar dependencias:
Este proyecto utiliza poesía para la gestión de dependencias. Asegúrese de tener poesía instalada. Si no, puede seguir las instrucciones en la guía de instalación de poesía.
Una vez que se instala la poesía, ejecute el siguiente comando en el directorio raíz del proyecto para instalar las dependencias:
poetry install Esto leerá el archivo pyproject.toml e instalará todas las dependencias requeridas para el proyecto.
from llmdocparser . llm_parser import get_image_content
content , 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 )Parámetros
LLM_TYPE: STR
Las opciones son Azure, OpenAi, Dashscope.
PDF_PATH: STR
Ruta al archivo PDF.
output_dir: STR
Directorio de salida para almacenar todas las imágenes analizadas.
max_concurrency: int
Número de hilos de trabajadores de análisis GPT. Detalles de llamadas por lotes: soporte por lotes
Si usa Azure, los parámetros Azure_Deployment y Azure_endPoint deben aprobarse; De lo contrario, solo se debe proporcionar la clave API.
base_url: str
URL de servidor compatible de OpenAI. Detalle: servidor compatible con OpenAI
Usando el papel 'Atention es todo lo que necesita' para el análisis, el modelo elegido es GPT-4O, que cuesta de la siguiente manera:
Total Tokens: 44063
Prompt Tokens: 33812
Completion Tokens: 10251
Total Cost (USD): $0.322825
Costo promedio por página: $ 0.0215