203 lines
5.1 KiB
Markdown
203 lines
5.1 KiB
Markdown
# 🔧 Modifications MVP - Simplification
|
|
|
|
## ✅ Modifications Effectuées
|
|
|
|
### 1. Désactivation du Cryptage des Logs
|
|
|
|
**Fichier modifié** : `geniusia2/core/logger.py`
|
|
|
|
**Changements** :
|
|
- ✅ Ajout de `_write_plain_entry()` pour écrire en JSON simple
|
|
- ✅ `log_action()` écrit maintenant en JSON non chiffré
|
|
- ✅ `log_correction()` écrit en JSON non chiffré
|
|
- ✅ `log_mode_transition()` écrit en JSON non chiffré
|
|
|
|
**Résultat** :
|
|
- Les logs sont maintenant dans `data/logs/logs_YYYY-MM-DD.json`
|
|
- Format JSON lisible directement
|
|
- Pas de chiffrement AES-256 (simplifié pour MVP)
|
|
|
|
### 2. Sauvegarde Automatique de l'Index FAISS
|
|
|
|
**Fichier modifié** : `geniusia2/core/learning_manager.py`
|
|
|
|
**Changements** :
|
|
- ✅ `_save_task()` appelle maintenant `embeddings_manager.save_index()` automatiquement
|
|
- ✅ Gestion d'erreurs avec logging
|
|
|
|
**Résultat** :
|
|
- L'index FAISS sera créé automatiquement à chaque nouvelle tâche
|
|
- Plus besoin de rebuild manuel
|
|
|
|
### 3. Scripts Utilitaires Créés
|
|
|
|
#### `read_pkl.py` - Lecture des fichiers .pkl
|
|
|
|
```bash
|
|
# Lister toutes les tâches
|
|
python3 read_pkl.py --list
|
|
|
|
# Lire une tâche spécifique
|
|
python3 read_pkl.py task_fc1d3e52
|
|
|
|
# Lire un fichier .pkl directement
|
|
python3 read_pkl.py geniusia2/data/user_profiles/task_fc1d3e52/signatures.pkl
|
|
```
|
|
|
|
**Fonctionnalités** :
|
|
- ✅ Affiche les métadonnées (metadata.json)
|
|
- ✅ Affiche le contenu des signatures.pkl
|
|
- ✅ Détecte les embeddings numpy
|
|
- ✅ Affiche les types d'actions
|
|
- ✅ Liste toutes les tâches disponibles
|
|
|
|
#### `rebuild_faiss_simple.py` - Reconstruction de l'index FAISS
|
|
|
|
```bash
|
|
python3 rebuild_faiss_simple.py
|
|
```
|
|
|
|
**Fonctionnalités** :
|
|
- ✅ Parcourt toutes les tâches
|
|
- ✅ Extrait les embeddings des signatures.pkl
|
|
- ✅ Crée l'index FAISS
|
|
- ✅ Sauvegarde dans `data/faiss_index/`
|
|
- ✅ Teste la recherche
|
|
|
|
**Note** : Nécessite `faiss-cpu` installé
|
|
|
|
#### `diagnostic_data.py` - Diagnostic des données
|
|
|
|
```bash
|
|
python3 diagnostic_data.py
|
|
```
|
|
|
|
**Fonctionnalités** :
|
|
- ✅ Vérifie l'index FAISS
|
|
- ✅ Vérifie les tâches sauvegardées
|
|
- ✅ Vérifie les logs
|
|
- ✅ Affiche un résumé complet
|
|
|
|
## 📊 État Actuel
|
|
|
|
### Ce qui fonctionne :
|
|
|
|
1. ✅ **105 tâches sauvegardées**
|
|
- Métadonnées en JSON
|
|
- Signatures en .pkl
|
|
- Embeddings CLIP présents
|
|
|
|
2. ✅ **Logs lisibles**
|
|
- Format JSON simple
|
|
- Pas de chiffrement
|
|
- Facile à débugger
|
|
|
|
3. ✅ **Sauvegarde automatique**
|
|
- L'index FAISS sera créé automatiquement
|
|
- Plus besoin de rebuild manuel
|
|
|
|
### Ce qui manque :
|
|
|
|
1. ❌ **FAISS pas installé**
|
|
- Nécessaire pour la recherche de similarité
|
|
- Installation : `pip install faiss-cpu`
|
|
|
|
2. ⚠️ **Index FAISS pas encore créé**
|
|
- Sera créé automatiquement à la prochaine tâche
|
|
- Ou manuellement avec `rebuild_faiss_simple.py`
|
|
|
|
## 🚀 Actions Nécessaires
|
|
|
|
### Priorité 1 : Installer FAISS
|
|
|
|
```bash
|
|
pip install faiss-cpu
|
|
```
|
|
|
|
Ou si tu as un GPU :
|
|
```bash
|
|
pip install faiss-gpu
|
|
```
|
|
|
|
### Priorité 2 : Reconstruire l'index
|
|
|
|
Une fois FAISS installé :
|
|
|
|
```bash
|
|
python3 rebuild_faiss_simple.py
|
|
```
|
|
|
|
Cela va :
|
|
- Extraire les ~315 embeddings des 105 tâches
|
|
- Créer l'index FAISS
|
|
- Le sauvegarder dans `data/faiss_index/`
|
|
|
|
### Priorité 3 : Tester le système
|
|
|
|
```bash
|
|
# Vérifier l'état
|
|
python3 diagnostic_data.py
|
|
|
|
# Lire une tâche
|
|
python3 read_pkl.py task_fc1d3e52
|
|
|
|
# Tester le rejeu (une fois FAISS installé)
|
|
python3 test_task_replay.py
|
|
```
|
|
|
|
## 📝 Réponse à tes Questions
|
|
|
|
### Q: Les fichiers .pkl, on ne peut rien y lire, c'est normal ?
|
|
|
|
**Oui, c'est normal !** Les fichiers `.pkl` (pickle) sont des fichiers binaires Python.
|
|
|
|
**Pourquoi ?**
|
|
- Format binaire optimisé pour Python
|
|
- Peut stocker des objets complexes (numpy arrays, listes, dicts)
|
|
- Plus rapide que JSON pour les gros objets
|
|
|
|
**Comment les lire ?**
|
|
```bash
|
|
python3 read_pkl.py task_fc1d3e52
|
|
```
|
|
|
|
Le script `read_pkl.py` décode le .pkl et affiche :
|
|
- Les métadonnées de la tâche
|
|
- Chaque action avec ses propriétés
|
|
- Les embeddings (shape, dtype, premiers éléments)
|
|
- Les types d'actions
|
|
|
|
**Exemple de sortie** :
|
|
```
|
|
--- Action 1 ---
|
|
position: (640, 360)
|
|
embedding: numpy array shape (512,), dtype float32
|
|
Premiers éléments: [-0.00138741 -0.01936988 0.00859882 ...]
|
|
element_type: icon
|
|
action_type: mouse_click
|
|
window: Firefox
|
|
```
|
|
|
|
### Q: Est-ce que FAISS est utilisé ?
|
|
|
|
**Oui, le code utilise FAISS**, mais :
|
|
- ❌ FAISS n'est pas installé sur ton système
|
|
- ❌ L'index n'a jamais été créé (car `save_index()` n'était pas appelé)
|
|
|
|
**Maintenant** :
|
|
- ✅ `save_index()` sera appelé automatiquement
|
|
- ✅ Il faut juste installer FAISS : `pip install faiss-cpu`
|
|
- ✅ Puis reconstruire l'index : `python3 rebuild_faiss_simple.py`
|
|
|
|
## 🎯 Résumé
|
|
|
|
| Élément | Avant | Après | Action |
|
|
|---------|-------|-------|--------|
|
|
| **Logs** | Chiffrés AES-256 | JSON simple | ✅ Fait |
|
|
| **Index FAISS** | Jamais créé | Auto-sauvegarde | ✅ Fait |
|
|
| **Lecture .pkl** | Impossible | Script `read_pkl.py` | ✅ Fait |
|
|
| **FAISS installé** | ❌ Non | ❌ À faire | `pip install faiss-cpu` |
|
|
| **Index reconstruit** | ❌ Non | ❌ À faire | `python3 rebuild_faiss_simple.py` |
|
|
|
|
**Prochaine étape** : Installer FAISS et reconstruire l'index ! 🚀
|