Skip to content

Latest commit

 

History

History
executable file
·
124 lines (93 loc) · 3.02 KB

File metadata and controls

executable file
·
124 lines (93 loc) · 3.02 KB

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