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>
349 lines
11 KiB
Markdown
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.
|