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.
- 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
- Python 3.8+
- Ollama installé et en cours d'exécution sur http://localhost:11434
- Le modèle llama3 doit être disponible dans Ollama
- Créer un environnement virtuel :
python -m venv venv
source venv/bin/activate # Sur Windows : venv\Scripts\activate- Installer les dépendances :
pip install -r requirements.txtLancer le serveur :
python main.pyLe service sera accessible sur http://localhost:8000
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"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": ""
}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
Les logs sont disponibles dans la console avec le format suivant :
YYYY-MM-DD HH:MM:SS,mmm - LEVEL - Message
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)
-
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
-
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
- Validation du type de fichier (PDF uniquement)
- Timeout sur les appels à Ollama
- Gestion sécurisée des erreurs