Skip to content

rasata/PDFDocToJson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Service d'Analyse PDF

Ce service FastAPI permet d'analyser des fichiers PDF de produits et d'en extraire les informations structurées en utilisant Ollama pour l'analyse du contenu.

Fonctionnalités

  • Extraction de texte à partir de fichiers PDF
  • Analyse du contenu avec Ollama (modèle llama3)
  • Formatage automatique des valeurs numériques avec unités
  • Gestion des erreurs et des timeouts
  • Vérification de la disponibilité d'Ollama
  • Tentatives de reconnexion automatiques
  • Logs détaillés pour le débogage

Prérequis

  • Python 3.8+
  • Ollama installé et en cours d'exécution sur http://localhost:11434
  • Le modèle llama3 doit être disponible dans Ollama

Installation

  1. Créer un environnement virtuel :
python -m venv venv
source venv/bin/activate  # Sur Windows : venv\Scripts\activate
  1. Installer les dépendances :
pip install -r requirements.txt

Démarrage

Lancer le serveur :

python main.py

Le service sera accessible sur http://localhost:8000

Utilisation

Analyse d'un PDF

Pour analyser un PDF, envoyez une requête POST à l'endpoint /analyze-pdf :

curl -X POST "http://localhost:8000/analyze-pdf" -F "file=@produit.pdf"

Format de réponse

Le service retourne un JSON structuré contenant les informations du produit :

{
  "product_name": "Lave-vaisselle BOSCH",
  "brand": "BOSCH",
  "model_number": "SMS68NW06E",
  "category": "Lave-vaisselle pose libre",
  "technical_specs": {
    "volume": "",
    "classe_energetique": "A++"
  },
  "dimensions": {
    "longueur": "845mm",
    "largeur": "600mm",
    "hauteur": "600mm"
  },
  "weight": "52.332kg",
  "power_consumption": "2400W",
  "features": [
    "ExtraDry: option sélectionnable pour un séchage supplémentaire.",
    "Programme Silence: la façon la plus silencieuse d'utiliser votre lave-vaisselle."
  ],
  "warranty": "",
  "price_range": "",
  "description": ""
}

Gestion des erreurs

Le service gère plusieurs types d'erreurs :

  • 400 : Fichier non PDF ou erreur d'extraction
  • 503 : Ollama indisponible
  • 504 : Timeout lors de l'analyse
  • 500 : Erreur interne du serveur

Logs

Les logs sont disponibles dans la console avec le format suivant :

YYYY-MM-DD HH:MM:SS,mmm - LEVEL - Message

Configuration

Les paramètres configurables dans le code :

  • OLLAMA_URL : URL d'Ollama (par défaut : http://localhost:11434)
  • MAX_RETRIES : Nombre de tentatives de reconnexion (par défaut : 3)
  • RETRY_DELAY : Délai entre les tentatives en secondes (par défaut : 2)

Dépannage

  1. Si Ollama n'est pas accessible :

    • Vérifier qu'Ollama est en cours d'exécution
    • Vérifier que le port 11434 est accessible
    • Vérifier que le modèle llama3 est disponible
  2. Si l'analyse échoue :

    • Vérifier les logs pour plus de détails
    • S'assurer que le PDF contient du texte extractible
    • Vérifier que le PDF n'est pas corrompu

Sécurité

  • Validation du type de fichier (PDF uniquement)
  • Timeout sur les appels à Ollama
  • Gestion sécurisée des erreurs

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published