Class_generator/DRS.md
StillHammer 4b71aba3da Implement intelligent DRS vocabulary system with Smart Guide integration
Major Features:
• Smart vocabulary dependency analysis - only learn words needed for next content
• Discovered vs Mastered word tracking with self-assessment (Again/Hard/Good/Easy)
• Vocabulary Knowledge interface connected to DRS PrerequisiteEngine (not flashcard games)
• Smart Guide UI adaptation for vocabulary override with clear explanations
• Real PrerequisiteEngine with full method support replacing basic fallbacks

Technical Implementation:
• VocabularyModule: Added discovered words tracking + self-assessment scoring
• UnifiedDRS: Vocabulary override detection with Smart Guide signaling
• Vocabulary Knowledge: Reads from DRS only, shows discovered vs mastered stats
• Smart Guide: Adaptive UI showing "Vocabulary Practice (N words needed)" when overridden
• PrerequisiteEngine: Full initialization with analyzeChapter() method

Architecture Documentation:
• Added comprehensive "Intelligent Content Dependency System" to CLAUDE.md
• Content-driven vocabulary acquisition instead of arbitrary percentage-based forcing
• Complete implementation plan for smart content analysis and targeted learning

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 08:26:30 +08:00

365 lines
11 KiB
Markdown

# DRS.md - Documentation Complète du Système DRS
## 📋 Vue d'Ensemble du DRS
**DRS (Dynamic Response System)** - Système d'exercices éducatifs avec IA intégrée pour l'évaluation et la validation des réponses.
### 🎯 Architecture DRS
Le DRS est un système modulaire complet situé dans `src/DRS/` comprenant :
## 📁 Structure Complète du DRS
```
src/DRS/
├── exercise-modules/ # Modules d'exercices
│ ├── AudioModule.js # Exercices d'écoute
│ ├── GrammarAnalysisModule.js # Analyse grammaticale IA
│ ├── GrammarModule.js # Exercices de grammaire
│ ├── ImageModule.js # Exercices visuels
│ ├── OpenResponseModule.js # Réponses libres avec IA
│ ├── PhraseModule.js # Exercices de phrases
│ ├── TextAnalysisModule.js # Analyse de texte IA
│ ├── TextModule.js # Exercices de lecture
│ ├── TranslationModule.js # Traduction avec validation IA
│ ├── VocabularyModule.js # Exercices de vocabulaire
│ └── WordDiscoveryModule.js # Découverte de mots → Flashcards
├── interfaces/
│ └── ExerciseModuleInterface.js # Interface standard pour tous les modules
├── services/ # Services centraux
│ ├── AIReportSystem.js # Système de rapports IA
│ ├── ContextMemory.js # Mémoire contextuelle
│ ├── IAEngine.js # Moteur IA (OpenAI → DeepSeek)
│ ├── LLMValidator.js # Validateur LLM
│ └── PrerequisiteEngine.js # Moteur de prérequis
├── SmartPreviewOrchestrator.js # Orchestrateur de prévisualisations
└── UnifiedDRS.js # DRS unifié principal
```
## 🤖 Système IA - Production Ready
### Moteur IA Multi-Providers (IAEngine.js)
- **OpenAI GPT-4** (primaire)
- **DeepSeek** (fallback)
- **Hard Fail** (pas de mock/fallback)
### Scoring Logic Strict
- **Réponses incorrectes** : 0-20 points
- **Réponses correctes** : 70-100 points
- **Validation IA obligatoire** (pas de simulation)
### Cache Management
- **Actuellement désactivé** pour les tests
- **Cache par prompt** (clé : 100 premiers caractères)
- **Statut** : Prêt pour production avec amélioration de clé recommandée
## 📚 Modules d'Exercices
### 1. TextModule.js
**Exercices de compréhension écrite**
- Présentation de texte
- Questions générées/extraites
- Validation IA des réponses
- Suivi du temps de lecture
### 2. AudioModule.js
**Exercices d'écoute**
- Lecture audio avec contrôles
- Comptage des lectures
- Révélation progressive des transcriptions
- Analyse IA du contenu audio
### 3. ImageModule.js
**Exercices d'analyse visuelle**
- Affichage d'images avec zoom
- Suivi du temps d'observation
- Analyse IA vision
- Types : description, détails, interprétation
### 4. GrammarModule.js
**Exercices de grammaire traditionnels**
- Règles et explications
- Exercices variés (trous, correction)
- Système d'indices
- Suivi des tentatives
### 5. GrammarAnalysisModule.js
**Analyse grammaticale avec IA**
- Correction automatique
- Explications détaillées
- Score strict 0-100
- Feedback personnalisé
### 6. TextAnalysisModule.js
**Analyse de texte approfondie**
- Compréhension avec coaching IA
- Score strict 0-100
- Feedback détaillé
### 7. TranslationModule.js
**Traduction avec validation IA**
- Support multi-langues
- Validation intelligente
- Score strict 0-100
- Détection automatique de langue
### 8. OpenResponseModule.js
**Questions libres avec évaluation IA**
- Réponses texte libre
- Évaluation intelligente
- Feedback personnalisé
- Score basé sur la pertinence
### 9. VocabularyModule.js
**Exercices de vocabulaire**
- QCM intelligent avec IA
- 1 bonne réponse + 5 mauvaises plausibles
- 16.7% de chance aléatoire
- Distracteurs générés par IA
### 10. WordDiscoveryModule.js
**Découverte de mots → Transition Flashcards**
- Présentation : mot, prononciation, sens, exemple
- **Redirection automatique vers flashcards**
- Transition fluide entre modules
### 11. PhraseModule.js
**Exercices de construction de phrases**
- Analyse de structure
- Validation grammaticale
- Feedback sur la syntaxe
## 🎴 Interface Flashcards (Hors DRS)
### ⚠️ Clarification Importante
Les **Flashcards NE FONT PAS partie du DRS** :
**❌ FlashcardLearning.js** :
- **Localisation** : `src/games/FlashcardLearning.js`
- **Type** : Module de jeu indépendant
- **Architecture** : Extend `Module` de `../core/Module.js`
- **Statut** : **HORS SCOPE DRS**
### ✅ Ce qui EST dans le DRS (Transition Logic)
1. **WordDiscoveryModule.js** (DANS DRS)
- Redirection automatique : `_redirectToFlashcards()`
- Bouton "Start Flashcard Practice"
- Action suivante : `'flashcards'`
2. **UnifiedDRS.js** (DANS DRS)
- Détection : `_shouldUseFlashcards()`
- Chargement : `_loadFlashcardModule()`
- Type d'exercice : `'vocabulary-flashcards'`
- **Import externe** : `../games/FlashcardLearning.js`
### Logic de Transition (DRS → Games)
```javascript
// Le DRS détecte le besoin de flashcards
if (exerciseType === 'vocabulary-flashcards') {
// Import du module externe (HORS DRS)
const { default: FlashcardLearning } = await import('../games/FlashcardLearning.js');
// Création et intégration temporaire
const flashcardGame = new FlashcardLearning(...);
}
```
**Note critique** : Le DRS **interface avec** les flashcards mais ne les **contient pas**.
## 🧠 Services Centraux
### IAEngine.js - Moteur IA Principal
```javascript
// Providers disponibles
- OpenAI GPT-4 (primaire)
- DeepSeek (fallback)
- Pas de mock/simulation
// Méthodes principales
- validateAnswer(userAnswer, correctAnswer, context)
- generateContent(prompt, options)
- detectLanguage(text)
- calculateScore(isCorrect, response)
```
### LLMValidator.js - Validateur LLM
```javascript
// Validation structurée
- Parsing [answer]yes/no
- Extraction [explanation]
- Gestion des réponses malformées
- Support multi-format
```
### AIReportSystem.js - Rapports IA
```javascript
// Suivi de session
- Métadonnées détaillées
- Tracking des performances
- Export : text/HTML/JSON
- Statistiques complètes
```
### ContextMemory.js - Mémoire Contextuelle
```javascript
// Gestion du contexte
- Historique des interactions
- Persistance des données
- Optimisation des prompts
```
### PrerequisiteEngine.js - Moteur de Prérequis
```javascript
// Gestion des prérequis
- Validation des capacités
- Progression logique
- Déblocage de contenu
```
## 🔌 Interface Standard
### ExerciseModuleInterface.js
**Tous les modules DRS DOIVENT implémenter** :
```javascript
// Méthodes obligatoires
- canRun(prerequisites, chapterContent)
- present(container, exerciseData)
- validate(userInput, context)
- getProgress()
- cleanup()
- getMetadata()
```
### Contrat d'Implémentation
- **Abstract enforcement** : Erreurs si méthodes manquantes
- **Validation des paramètres** obligatoire
- **Cleanup** requis pour éviter les fuites mémoire
- **Métadonnées** pour l'orchestration
## 🎼 Orchestrateur Principal
### UnifiedDRS.js - Contrôleur Central
```javascript
// Responsabilités
- Chargement dynamique des modules
- Gestion du cycle de vie
- Communication EventBus
- Interface utilisateur unifiée
- Transition entre exercices
- Gestion des flashcards
```
### SmartPreviewOrchestrator.js
```javascript
// Prévisualisations intelligentes
- Aperçus des exercices
- Estimation de difficulté
- Recommandations de parcours
- Optimisation UX
```
## 📊 Système de Scoring
### Logic de Score Stricte
```javascript
// Réponses incorrectes
score = 0-20 points (selon gravité)
// Réponses correctes
score = 70-100 points (selon qualité)
// Critères d'évaluation
- Exactitude factuelle
- Qualité de l'expression
- Pertinence contextuelle
- Complétude de la réponse
```
### Validation IA Obligatoire
- **Pas de mock/fallback** en production
- **Real AI only** pour garantir la qualité éducative
- **Multi-provider** pour la fiabilité
## 🔄 Flux d'Exécution DRS
### 1. Initialisation
```
UnifiedDRS → Load ContentLoader → Check Prerequisites → Select Module
```
### 2. Exécution d'Exercice
```
Present Content → User Interaction → Validate with AI → Calculate Score → Update Progress
```
### 3. Transition
```
Check Next Exercise → Load Module → Present OR Redirect to Flashcards
```
### 4. Finalisation
```
Generate Report → Save Progress → Cleanup Module → Return to Menu
```
## 🧪 État des Tests
### Tests Requis pour le DRS
1. **Tests d'Interface** : ExerciseModuleInterface compliance
2. **Tests de Modules** : Chaque module individuellement
3. **Tests IA** : IAEngine, LLMValidator, scoring logic
4. **Tests d'Intégration** : UnifiedDRS orchestration
5. **Tests de Performance** : Temps de réponse, mémoire
6. **Tests Flashcards** : Transition et intégration
### Status Actuel
-**Système fonctionnel** en production
-**IA validée** sans cache (tests décembre 2024)
- ⚠️ **Tests automatisés** à implémenter
- ⚠️ **Cache system** désactivé pour debug
## 🎯 Points Critiques pour Tests
### Priorité Haute
1. **Validation IA** : Scores 0-20/70-100 respectés
2. **Fallback providers** : OpenAI → DeepSeek fonctionne
3. **Interface compliance** : Tous modules implémentent l'interface
4. **Memory management** : Pas de fuites lors cleanup
### Priorité Moyenne
1. **Flashcards integration** : Transition fluide
2. **Progress tracking** : Persistance des données
3. **Error handling** : Récupération gracieuse
4. **UI/UX** : Responsive, no-scroll policy
### Priorité Basse
1. **Performance optimization** : Temps de réponse
2. **Cache system** : Réactivation avec clés améliorées
3. **Advanced features** : Rapports, analytics
4. **Cross-browser** : Compatibilité
---
## 📝 Résumé Exécutif
**Le DRS est un système complet et fonctionnel** comprenant :
-**11 modules d'exercices** fonctionnels
-**Système IA production-ready** (OpenAI + DeepSeek)
-**Interface standardisée** pour tous les modules
-**Intégration flashcards** via redirection
-**Scoring strict** validé en tests
- ⚠️ **Tests automatisés** à implémenter
### ✅ Scope EXACT pour les tests DRS :
**À TESTER (DRS uniquement) :**
-**Tout dans `src/DRS/`** - modules, services, interfaces
-**Logic de transition** vers flashcards (détection, redirection)
-**Import/loading logic** de modules externes
**❌ À NE PAS TESTER (Hors DRS) :**
-**`src/games/FlashcardLearning.js`** - Module de jeu indépendant
-**`src/core/`** - Architecture centrale (Module.js, EventBus.js)
-**`src/components/`** - Composants UI généraux
**Résumé** : Tests DRS = **`src/DRS/` uniquement** + logique de transition (sans tester le module flashcard lui-même)