138 lines
7.3 KiB
Markdown
138 lines
7.3 KiB
Markdown
# Requirements - Amélioration GUI et Logs
|
|
|
|
## Introduction
|
|
|
|
GeniusIA v2 nécessite une interface utilisateur claire et des logs lisibles pour permettre à l'utilisateur de comprendre ce qui se passe et faciliter le debugging. L'interface actuelle manque de visibilité et les logs sont trop techniques.
|
|
|
|
## Glossary
|
|
|
|
- **GUI**: Interface graphique utilisateur (Graphical User Interface)
|
|
- **System Tray**: Zone de notification dans la barre des tâches (Ubuntu)
|
|
- **Popup**: Fenêtre modale temporaire pour dialogues
|
|
- **Human Logs**: Messages simples destinés à l'utilisateur
|
|
- **Technical Logs**: Logs détaillés pour debugging
|
|
- **Mode**: État opérationnel (Shadow/Suggestions/Copilote/Autonome)
|
|
- **Fine-tuning**: Processus d'amélioration du modèle d'embeddings
|
|
|
|
## Requirements
|
|
|
|
### Requirement 1: Interface Minimaliste
|
|
|
|
**User Story:** En tant qu'utilisateur, je veux une interface discrète qui ne me dérange pas, pour pouvoir travailler normalement tout en gardant un œil sur l'IA.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN l'application démarre THEN la GUI SHALL créer une fenêtre de 300x400 pixels maximum
|
|
2. WHEN l'utilisateur clique sur minimiser THEN la GUI SHALL se réduire dans la barre des tâches Ubuntu
|
|
3. WHEN l'application tourne THEN la GUI SHALL afficher une icône dans le system tray
|
|
4. WHEN l'utilisateur clique sur l'icône system tray THEN la GUI SHALL afficher un menu avec options (Afficher/Masquer/Quitter)
|
|
5. WHEN la fenêtre est fermée THEN l'application SHALL continuer à tourner en arrière-plan
|
|
|
|
### Requirement 2: Logs Humains Lisibles
|
|
|
|
**User Story:** En tant qu'utilisateur, je veux voir ce que l'IA fait en langage simple, pour comprendre son comportement sans jargon technique.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN une action est observée THEN la GUI SHALL afficher un message simple comme "👀 J'observe vos actions..."
|
|
2. WHEN un pattern est détecté THEN la GUI SHALL afficher "🎯 Tiens ! Vous avez fait 3 fois la même chose"
|
|
3. WHEN un workflow est appris THEN la GUI SHALL afficher "📚 J'apprends: [nom du workflow]"
|
|
4. WHEN le mode change THEN la GUI SHALL afficher "✅ Mode [nouveau mode] activé"
|
|
5. WHEN une erreur survient THEN la GUI SHALL afficher un message compréhensible sans stack trace
|
|
|
|
### Requirement 3: Historique des Logs
|
|
|
|
**User Story:** En tant qu'utilisateur, je veux voir les dernières actions pour comprendre ce qui s'est passé récemment.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN des logs sont affichés THEN la GUI SHALL montrer les 5 dernières actions visibles
|
|
2. WHEN l'utilisateur scrolle THEN la GUI SHALL permettre de voir jusqu'à 30 actions
|
|
3. WHEN l'historique dépasse 30 actions THEN le système SHALL supprimer les plus anciennes
|
|
4. WHEN un nouveau log arrive THEN la GUI SHALL auto-scroller vers le bas si déjà en bas
|
|
5. WHEN l'utilisateur scrolle manuellement THEN la GUI SHALL ne pas auto-scroller
|
|
|
|
### Requirement 4: Dialogues Interactifs
|
|
|
|
**User Story:** En tant qu'utilisateur, je veux que l'IA me demande mon avis avant de changer de comportement, pour garder le contrôle.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN un pattern est détecté THEN la GUI SHALL afficher un popup "Est-ce que je peux essayer ?"
|
|
2. WHEN un popup est affiché THEN l'application SHALL continuer à fonctionner (non-bloquant)
|
|
3. WHEN 10 secondes passent sans réponse THEN le popup SHALL se fermer automatiquement
|
|
4. WHEN l'utilisateur clique "Oui" THEN le système SHALL basculer en mode Suggestions
|
|
5. WHEN l'utilisateur clique "Non" THEN le système SHALL rester en mode Shadow
|
|
|
|
### Requirement 5: Indicateurs de Statut
|
|
|
|
**User Story:** En tant qu'utilisateur, je veux voir l'état actuel de l'IA en un coup d'œil, pour savoir ce qu'elle fait.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN la GUI est affichée THEN elle SHALL montrer le mode actuel avec icône (👀/💡/🤖/⚡)
|
|
2. WHEN des actions sont observées THEN la GUI SHALL afficher le compteur d'actions
|
|
3. WHEN le fine-tuning est en cours THEN la GUI SHALL afficher "🧠 Apprentissage en cours..."
|
|
4. WHEN le fine-tuning est terminé THEN la GUI SHALL afficher "✅ Modèle amélioré"
|
|
5. WHEN aucune activité THEN la GUI SHALL afficher "💤 En attente..."
|
|
|
|
### Requirement 6: Logs Techniques pour Debugging
|
|
|
|
**User Story:** En tant que développeur, je veux des logs détaillés dans un fichier, pour pouvoir debugger les problèmes.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN l'application tourne THEN le système SHALL écrire les logs techniques dans `geniusia2/logs/debug.log`
|
|
2. WHEN un événement survient THEN le log SHALL inclure timestamp, niveau, composant et message
|
|
3. WHEN une erreur survient THEN le log SHALL inclure la stack trace complète
|
|
4. WHEN le fichier dépasse 10MB THEN le système SHALL créer un nouveau fichier avec rotation
|
|
5. WHEN les logs sont écrits THEN ils SHALL être flushés immédiatement pour éviter les pertes
|
|
|
|
### Requirement 7: Communication GUI-Orchestrator
|
|
|
|
**User Story:** En tant que système, je dois pouvoir envoyer des messages de l'Orchestrator vers la GUI, pour tenir l'utilisateur informé.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN l'Orchestrator détecte un événement THEN il SHALL envoyer un message à la GUI via signal Qt
|
|
2. WHEN un message est envoyé THEN il SHALL inclure type, contenu et timestamp
|
|
3. WHEN la GUI reçoit un message THEN elle SHALL l'afficher dans les 100ms
|
|
4. WHEN un dialogue est nécessaire THEN l'Orchestrator SHALL déclencher un popup via la GUI
|
|
5. WHEN l'utilisateur répond THEN la GUI SHALL notifier l'Orchestrator via callback
|
|
|
|
### Requirement 8: Statistiques Visibles
|
|
|
|
**User Story:** En tant qu'utilisateur, je veux voir ce que l'IA a appris, pour comprendre sa progression.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN la GUI est affichée THEN elle SHALL montrer le nombre d'actions observées aujourd'hui
|
|
2. WHEN des workflows sont détectés THEN la GUI SHALL afficher le nombre de workflows
|
|
3. WHEN le fine-tuning collecte des exemples THEN la GUI SHALL afficher "X exemples collectés"
|
|
4. WHEN le fine-tuning est déclenché THEN la GUI SHALL afficher une barre de progression
|
|
5. WHEN les stats sont affichées THEN elles SHALL se mettre à jour en temps réel
|
|
|
|
### Requirement 9: Compatibilité Ubuntu
|
|
|
|
**User Story:** En tant qu'utilisateur Ubuntu, je veux que l'interface fonctionne nativement, sans problèmes d'affichage.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN l'application démarre sur Ubuntu THEN la GUI SHALL utiliser le thème système
|
|
2. WHEN l'icône system tray est créée THEN elle SHALL être visible dans la barre supérieure
|
|
3. WHEN des popups sont affichés THEN ils SHALL respecter le window manager Ubuntu
|
|
4. WHEN la fenêtre est redimensionnée THEN elle SHALL respecter les contraintes de taille
|
|
5. WHEN l'application se ferme THEN elle SHALL libérer proprement les ressources système
|
|
|
|
### Requirement 10: Messages Contextuels
|
|
|
|
**User Story:** En tant qu'utilisateur, je veux que les messages soient adaptés au contexte, pour mieux comprendre ce qui se passe.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHEN un workflow est détecté pour la première fois THEN le message SHALL expliquer ce qu'est un workflow
|
|
2. WHEN le mode progressif propose de basculer THEN le message SHALL expliquer ce que ça change
|
|
3. WHEN une erreur survient THEN le message SHALL suggérer une action corrective
|
|
4. WHEN le fine-tuning démarre THEN le message SHALL expliquer pourquoi
|
|
5. WHEN l'utilisateur n'a pas d'activité depuis 5 min THEN la GUI SHALL afficher un message d'encouragement
|