# TODO - Modules IA et batch_ia **Priorité** : ⚪ TRÈS BASSE (voire nulle) **Statut** : À archiver ou restructurer ultérieurement **Décision** : En attente de retour d'expérience sur l'utilisation réelle --- ## 📋 Contexte Les modules `IA/` et `batch_ia/` implémentent un système de génération de rapports d'analyse par IA via PrivateGPT. Le workflow actuel : ``` User → app/ia_nalyse → batch_ia/batch_utils.py → Queue (status.json) ↓ batch_runner.py (daemon) ↓ analyse_ia.py (génère rapport) ↓ Résultat ZIP téléchargeable ``` **Problème identifié** : Complexité élevée pour un usage incertain. --- ## 🔍 Actions à considérer (ultérieurement) ### Option 1 : Archivage - [ ] Déplacer `IA/` et `batch_ia/` vers un dossier `archive/` - [ ] Documenter la raison de l'archivage - [ ] Supprimer les imports dans `fabnum.py` et `app/ia_nalyse/` - [ ] Créer une branche git dédiée avant suppression ### Option 2 : Simplification radicale Si décision de garder l'IA : - [ ] Remplacer le système de queue par des appels synchrones - [ ] Supprimer `batch_runner.py` (daemon) - [ ] Intégrer directement dans `app/ia_nalyse/interface.py` - [ ] Simplifier la génération de rapports (1 seul prompt au lieu de 5) ### Option 3 : Refactorisation complète Si volonté de professionnaliser : - [ ] Utiliser Celery ou RQ pour la queue - [ ] Implémenter un vrai système de cache - [ ] Ajouter des tests unitaires pour la génération IA - [ ] Séparer le backend PrivateGPT dans un microservice --- ## 🚨 Problèmes techniques identifiés (à corriger si conservation) ### 1. Gestion d'erreurs défaillante **Fichier** : `batch_ia/utils/ia.py:273` ```python except: # ❌ Exception générique return False ``` **Action** : Ajouter logging explicite ### 2. Multiples print() au lieu de logging **Fichier** : `batch_ia/utils/ia.py` - Ligne 38 : `print(f"✅ Document '{file_path}' ingéré...")` - Ligne 41 : `print(f"❌ Fichier '{file_path}' introuvable")` - Ligne 87-93 : 6 autres occurrences **Action** : Remplacer par `logger.info()`, `logger.warning()`, etc. ### 3. Dépendance à PrivateGPT non documentée **Problème** : Le dossier `pgpt/` (7000+ lignes) n'est pas dans requirements.txt **Action** : - Documenter la procédure d'installation de PrivateGPT - Ou rendre le module optionnel avec imports conditionnels ### 4. Couplage fort avec l'UI Streamlit **Fichier** : `batch_ia/utils/ia.py:143, 170, 191, 211` ```python st.session_state["step"] = 2 # ❌ Logique métier couplée à l'UI ``` **Action** : Séparer la logique métier de l'UI --- ## 📁 Structure actuelle à nettoyer ``` IA/ ├── 00 - fiches_corpus/ # Scripts de génération corpus │ ├── batch_generate_fiches.py │ └── generate_corpus.py ├── 01 - corpus_rapport_factuel/ # Analyse de graphes │ ├── analyze_graph.py │ ├── check_paths.py │ ├── generate_template.py # 1258 lignes (!!) │ └── replace_paths.py ├── 02 - injection_fiches/ # Injection dans PrivateGPT │ ├── auto_ingest.py │ ├── nettoyer_pgpt.py │ └── watch_directory.py ├── get_regeneration_plan.py └── make_config.py batch_ia/ ├── analyse_ia.py # Point d'entrée génération rapport ├── batch_runner.py # Daemon de queue ├── batch_utils.py # Interface avec app ├── nettoyer_pgpt.py ├── status.json # État de la queue ├── temp_sections/ # Fichiers temporaires └── utils/ ├── config.py ├── files.py ├── graphs.py ├── ia.py # 287 lignes de logique IA ├── sections.py # 772 lignes de génération sections └── sections_utils.py ``` **Question** : Tous ces scripts sont-ils nécessaires ? --- ## 🎯 Décision à prendre avant toute action - [ ] **Valider l'utilité réelle** du module IA avec les utilisateurs finaux - [ ] **Mesurer l'usage** : Combien de rapports IA générés par mois ? - [ ] **Évaluer le ROI** : Temps de développement vs. valeur ajoutée - [ ] **Considérer des alternatives** : Export PDF manuel, rapports statiques, etc. --- ## 📝 Notes **Date de création** : 2026-02-07 **Auteur** : Audit de code automatisé **Dernière mise à jour** : 2026-02-07 **Important** : Ne rien modifier dans `IA/` et `batch_ia/` tant que ce document n'a pas été mis à jour avec une décision claire.