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>
365 lines
11 KiB
Markdown
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) |