chineseclass/docs/Universal-AI-Language-Exam-Framework.md
StillHammer 6107cefaf9 Define universal exam framework and Foundation segment
Core Framework (UALEF v0.5):
- Complete workflow A→Z (generation → passage → correction)
- JSON + HTML format with 3-file system (exam/answers/corrected)
- Universal JSON structure with rigid validation
- Storage: Exams/{Segment}/YYYY-MM/
- Validation strategy (structural + content + trust & iterate)

Foundation Segment:
- 9 exercises, 100 points total
- Vocab, grammar, comprehension, transformation, production
- Complete technical implementation documented

Documentation Updates:
- Add Skill vs Foundation segment types throughout
- Update all "Composition" references to "Foundation"
- Clarify Hanyu Jiaocheng as enabler, not composition skill

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 11:20:30 +08:00

349 lines
11 KiB
Markdown

# Universal AI Language Exam Framework (UALEF)
## Version
- Framework: v0.5
- Date: 2025-10-30
- Status: Core concepts defined, implementation pending
## Overview
Framework universel pour générer, administrer et corriger des exams de langue avec l'aide de l'IA.
## Workflow Core (A → Z)
### INPUT
Travail du mois (chapters complétés pour un segment donné)
### STEP 1: Génération Exam (AI)
- **Input** : Chapters complétés durant le mois pour un segment (ex: Hanyu Ch 1, 3, 4, 5)
- **Process** :
- AI scan le contenu des chapters (vocab, grammar, textes)
- AI génère exam selon **Global Segment Framework** (structure définie par type de segment)
- AI produit un fichier JSON structuré avec toutes les questions
- **Output** : `Exams/{Segment}/YYYY-MM/exam.json`
- **Validation** : Script vérifie structure JSON avant publication
### STEP 2: Passage Exam (Étudiant)
- **Input** : `exam.json` (questions générées par AI)
- **Process** :
- Étudiant copie `exam.json``exam-answers.json`
- Étudiant charge le fichier dans interface HTML
- Étudiant remplit les champs `"answer": "..."` pour chaque question
- Interface sauvegarde automatiquement les réponses
- **Output** : `Exams/{Segment}/YYYY-MM/exam-answers.json` (complet)
### STEP 3: Correction AI
- **Input** : `exam-answers.json` (contient questions + réponses étudiant)
- **Process** :
- AI évalue chaque réponse selon critères du **Global Segment Framework**
- AI attribue un score (`rate`) pour chaque question
- AI génère feedback détaillé par exercice
- AI calcule score total et statut (PASS/DIFFICULTY/CRITICAL)
- **Output** : `Exams/{Segment}/YYYY-MM/exam-corrected.json`
### OUTPUT
- Score total /100
- Statut : PASS (>80%) / DIFFICULTY (50-80%) / CRITICAL (<50%)
- Feedback détaillé par exercice
- Recommandations pour amélioration
---
## Concepts Clés
### 1. Segment Types
Deux types de segments existent dans un système d'apprentissage :
#### **Skill Segments** (Direct)
Segments qui correspondent à une compétence linguistique spécifique
- **Objectif** : Développer une skill directe (parler, écrire, lire, écouter)
- **Évaluation** : Performance dans cette skill
- **Exemples** :
- Kouyu (Speaking): pronunciation, fluency, naturalness, grammar
- Tingli (Listening): comprehension, detail retention, inference
- Xiezuo (Writing): grammar, vocabulary, coherence, structure
- LEDU (Reading): comprehension, speed, inference, vocabulary
#### **Foundation Segments** (Enabler)
Segments qui servent de base pour développer les skills
- **Objectif** : Construire les fondations (grammaire, vocabulaire, structures)
- **Évaluation** : Compréhension et application des concepts
- **Exemples** :
- Hanyu Jiaocheng: grammar mastery, vocabulary retention, structure comprehension
- General language courses qui ne focusent pas sur une skill spécifique
**Important** : Les Foundation segments ne testent pas la production libre mais la compréhension et l'application contrôlée des concepts.
### 2. Segment Framework (Global)
Standards généraux pour chaque segment (adapté selon le type)
### 3. Correction Framework (Spécifique)
Généré avec chaque exam, inclut:
- Réponses attendues
- Rubrique de scoring détaillée
- Points clés à évaluer
- Barèmes spécifiques
### 4. Double Framework Approach
- **Global Segment Framework** = cohérence et standards
- **Correction Framework** = flexibilité et spécificité
- Combinaison = correction juste et adaptée
---
## Avantages du Système
**Scalable**: Fonctionne pour n'importe quel segment, n'importe quelle langue
**Consistent**: Double framework assure cohérence des corrections
**Flexible**: Correction framework s'adapte au contenu spécifique
**Transparent**: Critères clairs dès la génération de l'exam
**AI-Assisted**: Correction rapide et détaillée avec feedback actionnable
---
## Technical Implementation
### Format & Storage
**Format universel** : JSON + HTML interface
**Structure des fichiers** :
```
Exams/
├── Foundation/
│ └── YYYY-MM/
│ ├── exam.json # Généré par AI
│ ├── exam-answers.json # Rempli par étudiant
│ └── exam-corrected.json # Généré par AI
├── Speaking/
│ └── YYYY-MM/
│ ├── exam.json
│ ├── exam-answers.json
│ └── exam-corrected.json
├── Reading/
│ └── YYYY-MM/ ...
└── [autres segments]/
└── YYYY-MM/ ...
```
**Fichiers** :
1. **exam.json** : Questions + structure, généré par AI
2. **exam-answers.json** : Copie de exam.json + réponses de l'étudiant
3. **exam-corrected.json** : Même structure + scores (`rate`) + feedback
### Structure JSON Universelle
Tous les exams suivent cette structure de base :
```json
{
"metadata": {
"exam_id": "{segment}-{YYYY-MM}",
"month": "YYYY-MM",
"segment": "{segment_name}",
"segment_type": "foundation|skill",
"chapters_covered": ["1", "3", "4", "5"],
"generated_date": "YYYY-MM-DD",
"total_points": 100
},
"exercices": {
"exercice1_name": {
"total_points": X,
"items": {
"item1": {
"question_data": "...",
"expected": "...",
"points": X,
"answer": "", // Rempli par étudiant
"rate": null // Rempli par AI lors de correction
},
"item2": { ... }
}
},
"exercice2_name": { ... }
},
"correction": {
"total_score": null, // Rempli par AI
"status": null, // PASS|DIFFICULTY|CRITICAL
"feedback_by_exercice": {}, // Rempli par AI
"overall_feedback": "", // Rempli par AI
"strengths": [], // Rempli par AI
"weaknesses": [], // Rempli par AI
"recommendations": [] // Rempli par AI
}
}
```
**Champs clés** :
- **Question data** : Généré par AI (varie selon exercice)
- **answer** : Rempli par étudiant dans `exam-answers.json`
- **rate** : Rempli par AI dans `exam-corrected.json` (score obtenu)
### Validation
#### Validation Structurelle (mécanique)
Comme un compilateur, vérifie la structure sans évaluer le contenu :
- JSON est parsable
- Metadata complet (exam_id, month, segment, chapters, etc.)
- Tous les exercices définis dans le Segment Framework sont présents
- Chaque exercice a le bon nombre d'items (selon framework)
- Structure rigide respectée (ex: `item1`, `item2`, ..., `itemN` - pas de tableaux)
- Tous les champs requis existent et ne sont pas vides
**Avantage structure rigide** :
```json
// ❌ Mauvais (array - AI peut oublier des éléments)
"words": [
{ "l1": "parler", "l2": "说" },
// Oups, AI a oublié word #8
]
// ✅ Bon (objets nommés - impossible d'oublier)
"words": {
"word1": { "l1": "parler", "l2": "说" },
"word2": { "l1": "ami", "l2": "朋友" },
...
"word20": { "l1": "livre", "l2": "书" }
}
```
#### Validation de Contenu (basique)
Vérifications simples et mécaniques :
- Textes ont longueur minimum (ex: >100 caractères)
- ✅ Total des points = 100
- ✅ Chaque item a un score `points` > 0
- ✅ Champs texte ne sont pas vides (question_data, expected, etc.)
#### Validation de Qualité (optionnelle)
**Stratégie initiale** : Trust & Iterate
- Pas de validation AI-to-AI au début
- Si problèmes récurrents → ajouter AI review ou ajuster prompts
**Si nécessaire plus tard** :
- AI-2 review la qualité du contenu généré par AI-1
- Checklist : grammaire, niveau approprié, cohérence, etc.
#### Script de Validation
À créer : `validate-exam.js` ou `validate-exam.py`
Usage :
```bash
node validate-exam.js Exams/Foundation/2025-01/exam.json
# Output: ✅ Valid ou ❌ Errors with details
```
### Génération par AI
**Input requis** :
- Liste des chapters complétés durant le mois
- Contenu des chapters (vocab lists, grammar structures, textes)
- Global Segment Framework (structure de l'exam à générer)
**Process** :
1. AI lit les chapters et extrait le contenu pertinent
2. AI génère exam selon structure rigide du Segment Framework
3. AI produit `exam.json` avec structure complète
4. Script de validation vérifie le JSON
5. Si ✅ valid → exam publié, si ❌ errors → regénération ou correction
**Prompt pattern** (à définir pour chaque segment) :
```
Generate an exam for {segment} segment based on chapters {list}.
Output format: JSON following this EXACT structure:
{structure template}
Requirements:
- Use ONLY vocabulary and grammar from the provided chapters
- Follow the rigid structure (word1, word2, ... wordN)
- Ensure all fields are filled
- Total points must equal 100
Chapters content:
{chapters data}
```
### Correction par AI
**Input** : `exam-answers.json` (contient questions + réponses étudiant)
**Process** :
1. AI évalue chaque réponse selon critères du Global Segment Framework
2. AI attribue `rate` (score obtenu) pour chaque item
3. AI génère feedback par exercice
4. AI calcule score total
5. AI détermine statut (PASS/DIFFICULTY/CRITICAL)
6. AI produit recommandations
**Output** : `exam-corrected.json` avec :
- Champs `rate` remplis partout
- Section `correction` complète
- Feedback actionnable et détaillé
**Prompt pattern** (à définir pour chaque segment) :
```
Correct this exam based on the Global Segment Framework.
Exam with student answers:
{exam-answers.json}
Segment Framework criteria:
{criteria}
For each answer:
1. Evaluate according to criteria
2. Assign rate (score earned)
3. Provide specific feedback if incorrect
Then provide:
- Total score
- Status (PASS >80%, DIFFICULTY 50-80%, CRITICAL <50%)
- Overall feedback
- Strengths and weaknesses
- Recommendations for improvement
Output format: JSON (same structure with rate + correction fields filled)
```
---
## Questions Restantes
1. **Global Segment Framework** :
- ✅ Structure JSON définie
- ❓ Contenu spécifique pour chaque Skill Segment (Speaking, Writing, etc.)
2. **Interface HTML** :
- Comment charger exam.json
- Comment sauvegarder exam-answers.json
- Auto-save et validation côté client
3. **Prompts détaillés** :
- Prompt de génération spécifique par segment
- Prompt de correction spécifique par segment
---
## Prochaines Étapes
- [x] Définir workflow universel A→Z
- [x] Définir format et storage (JSON + fichiers)
- [x] Définir structure JSON universelle
- [x] Définir stratégie de validation (structurelle + contenu + qualité)
- [ ] Créer Foundation Segment Framework complet (structure JSON détaillée)
- [ ] Créer Skill Segment Frameworks (Speaking, Reading, Writing, Listening)
- [ ] Créer scripts de validation
- [ ] Définir prompts de génération par segment
- [ ] Définir prompts de correction par segment
- [ ] Créer interface HTML
- [ ] Tester avec exam pilote (Foundation)
- [ ] Itérer et raffiner
---
## Notes
Ce framework est conçu pour être universel et s'adapter à n'importe quel apprentissage de langue, pas seulement le chinois. Il peut être adapté pour d'autres systèmes d'apprentissage utilisant l'IA comme assistant pédagogique.