Un package d'analyse des PDF et d'analyse de leur contenu à l'aide de LLMS.
Ce package est une amélioration basée sur le concept de GPTPDF.
GPTPDF utilise PYMUPDF pour analyser les PDF, identifiant à la fois des régions de texte et de non-texte. Il fusionne ou filtre ensuite les régions texte en fonction de certaines règles et saisit les résultats finaux dans un modèle multimodal pour l'analyse. Cette méthode est particulièrement efficace.
Sur la base de ce concept, j'ai apporté quelques améliorations mineures.
À l'aide d'un modèle d'analyse de mise en page, chaque page du PDF est analysée pour identifier le type de chaque région, qui comprend le texte, le titre, la figure, la légende, la table, la légende du tableau, l'en-tête, le pied de page, la référence et l'équation. Les coordonnées de chaque région sont également obtenues.
Exemple de résultat d'analyse de disposition:
[{'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)}]
Ce résultat comprend le type, les coordonnées et l'ordre de lecture de chaque région. En utilisant ce résultat, des règles plus précises peuvent être définies pour analyser le PDF.
Enfin, saisissez les images des régions correspondantes dans un modèle multimodal, tel que GPT-4O ou QWEN-VL, pour obtenir directement des blocs de texte qui sont conviviaux aux solutions de chiffon.
| img_path | taper | page_no | nom de fichier | contenu | file d'attente |
|---|---|---|---|---|---|
| {absolu_path} /page_1_title.png | Titre | 1 | L'attention est tout ce dont vous avez besoin | [Bloc de texte 1] | {file_absolute_path} |
| {absolu_path} /page_1_text.png | Texte | 1 | L'attention est tout ce dont vous avez besoin | [Bloc de texte 2] | {file_absolute_path} |
| {absolu_path} /page_2_figure.png | Chiffre | 2 | L'attention est tout ce dont vous avez besoin | [Bloc de texte 3] | {file_absolute_path} |
| {absolu_path} /page_2_figure_caption.png | Légende de la figure | 2 | L'attention est tout ce dont vous avez besoin | [Bloc de texte 4] | {file_absolute_path} |
| {absolu_path} /page_3_table.png | Tableau | 3 | L'attention est tout ce dont vous avez besoin | [Bloc de texte 5] | {file_absolute_path} |
| {absolu_path} /page_3_table_caption.png | Légende de la table | 3 | L'attention est tout ce dont vous avez besoin | [Bloc de texte 6] | {file_absolute_path} |
| {absolu_path} /page_1_header.png | Tête | 1 | L'attention est tout ce dont vous avez besoin | [Bloc de texte 7] | {file_absolute_path} |
| {absolu_path} /page_2_footer.png | Pied de page | 2 | L'attention est tout ce dont vous avez besoin | [Bloc de texte 8] | {file_absolute_path} |
| {absolu_path} /page_3_reference.png | Référence | 3 | L'attention est tout ce dont vous avez besoin | [Bloc de texte 9] | {file_absolute_path} |
| {absolu_path} /page_1_equation.png | Équation | 1 | L'attention est tout ce dont vous avez besoin | [Bloc de texte 10] | {file_absolute_path} |
Voir plus dans la fonction principale LLM_Parser.py.
pip install llmdocparser
Pour installer ce projet à partir de la source, suivez ces étapes:
Clone le référentiel:
Tout d'abord, clonez le référentiel de votre machine locale. Ouvrez votre terminal et exécutez les commandes suivantes:
git clone https://github.com/lazyFrogLOL/llmdocparser.git
cd llmdocparserInstallez les dépendances:
Ce projet utilise la poésie pour la gestion des dépendances. Assurez-vous que la poésie est installée. Sinon, vous pouvez suivre les instructions du guide d'installation de la poésie.
Une fois la poésie installée, exécutez la commande suivante dans le répertoire racine du projet pour installer les dépendances:
poetry install Cela lira le fichier pyproject.toml et installera toutes les dépendances requises pour le projet.
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 )Paramètres
llm_type: str
Les options sont Azure, Openai, Dashscope.
pdf_path: str
Chemin vers le fichier PDF.
output_dir: str
Répertoire de sortie pour stocker toutes les images analysées.
max_concurrency: int
Nombre de fils de travailleur d'analyse GPT. Détails de l'appel par lots: support par lots
Si vous utilisez Azure, les paramètres azure_deployment et azure_endpoint doivent être passés; Sinon, seule la clé API doit être fournie.
base_url: str
URL du serveur compatible OpenAI. Détail: serveur compatible openai
En utilisant le document «l'attention est tout ce dont vous avez besoin», le modèle choisi est GPT-4O, coûtant comme suit:
Total Tokens: 44063
Prompt Tokens: 33812
Completion Tokens: 10251
Total Cost (USD): $0.322825
Coût moyen par page: 0,0215 $