# Leçon Apprise : Vérification des Dépendances ## Ce qui s'est passé Lors de l'implémentation de la Task 2 (Améliorer SuggestionManager), j'ai codé les nouvelles fonctionnalités sans vérifier que toutes les dépendances critiques étaient installées. **Résultat** : Le code était correct, mais ne pouvait pas s'exécuter car : - FAISS n'était pas installé (recherche de similarité) - PyTorch manquait (deep learning) - OpenCLIP absent (embeddings visuels) - Autres dépendances manquantes ## Pourquoi c'est critique Ces dépendances ne sont pas optionnelles : 1. **FAISS** : Cœur du système de suggestions d'actions - Sans lui, pas de recherche de similarité visuelle - 297 embeddings déjà stockés inutilisables 2. **PyTorch** : Framework de base - Nécessaire pour tous les modèles ML - OpenCLIP, Qwen3-VL, OWL-ViT en dépendent 3. **OpenCLIP** : Génération d'embeddings - Encode les captures d'écran en vecteurs - Essentiel pour l'apprentissage visuel ## Pourquoi je n'ai pas vérifié **Erreur de processus** : 1. J'ai supposé que l'environnement était complet 2. Je me suis concentré uniquement sur le code 3. Mes tests étaient des tests de syntaxe, pas d'exécution réelle **Ce que j'aurais dû faire** : 1. ✓ Vérifier l'environnement AVANT de coder 2. ✓ Tester avec des imports réels 3. ✓ Exécuter un diagnostic complet ## Checklist pour éviter ça à l'avenir ### Avant de commencer une tâche ```bash # 1. Vérifier l'environnement python3 diagnostic_complet_systeme.py # 2. Activer le venv source geniusia2/venv/bin/activate # 3. Vérifier les imports critiques python3 -c "import torch, faiss, open_clip, pynput" ``` ### Pendant le développement - [ ] Tester avec des imports réels, pas juste la syntaxe - [ ] Exécuter le code dans l'environnement cible - [ ] Vérifier les dépendances du module modifié ### Après l'implémentation - [ ] Tests d'intégration avec dépendances réelles - [ ] Vérifier que le système démarre - [ ] Diagnostic complet ## Solution mise en place ### 1. Script d'installation automatique ```bash ./installer_dependances_completes.sh ``` Ce script : - ✓ Vérifie/crée l'environnement virtuel - ✓ Installe toutes les dépendances Python - ✓ Installe les dépendances système - ✓ Vérifie que tout fonctionne ### 2. Scripts de diagnostic ```bash # Diagnostic complet python3 diagnostic_complet_systeme.py # Diagnostic FAISS spécifique python3 diagnostic_faiss.py ``` ### 3. Documentation améliorée - Liste claire des dépendances critiques - Procédure d'installation pas à pas - Checklist de vérification ## Impact sur le projet ### Ce qui fonctionne quand même - ✓ WorkflowMatcher (pas de dépendances lourdes) - ✓ Détection de workflows - ✓ Structure du code ### Ce qui ne fonctionne pas sans les dépendances - ✗ Suggestions d'actions (FAISS) - ✗ Embeddings visuels (OpenCLIP) - ✗ Capture d'événements (pynput) - ✗ Modèles de vision (PyTorch) ## Recommandations ### Pour le développeur (moi) 1. **Toujours** vérifier l'environnement avant de coder 2. Tester avec des imports réels 3. Exécuter le code, pas juste vérifier la syntaxe 4. Créer des tests d'intégration ### Pour l'utilisateur (toi) 1. Exécuter `diagnostic_complet_systeme.py` régulièrement 2. Garder l'environnement virtuel activé pendant le développement 3. Signaler immédiatement si quelque chose ne s'importe pas ### Pour le projet 1. Ajouter un test CI/CD qui vérifie les dépendances 2. Créer un `requirements-dev.txt` séparé 3. Documenter clairement les dépendances critiques 4. Ajouter des tests d'intégration automatiques ## Conclusion Cette erreur m'a appris l'importance de : - ✓ Vérifier l'environnement complet, pas juste le code - ✓ Tester avec des dépendances réelles - ✓ Ne jamais supposer que l'environnement est prêt - ✓ Créer des outils de diagnostic robustes **Leçon retenue** : Un code parfait qui ne peut pas s'exécuter ne vaut rien. L'environnement est aussi important que le code. --- **Date** : 2025-11-19 **Contexte** : Task 2 - Améliorer SuggestionManager **Résolution** : Script d'installation automatique + diagnostics