Files
Geniusia_v2/docs/archive/old-summaries/LECON_APPRISE_DEPENDANCES.md
2026-03-05 00:20:25 +01:00

142 lines
4.1 KiB
Markdown

# 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