Initial commit
This commit is contained in:
141
docs/archive/old-summaries/LECON_APPRISE_DEPENDANCES.md
Normal file
141
docs/archive/old-summaries/LECON_APPRISE_DEPENDANCES.md
Normal file
@@ -0,0 +1,141 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user