feat(corrections): aligner schéma rapport DeepSeek — renommages + feedback_court
This commit is contained in:
parent
c65a2a0157
commit
f67bd2dc95
2 changed files with 50 additions and 17 deletions
|
|
@ -10,10 +10,11 @@ export interface EECritere {
|
|||
export interface EERapport {
|
||||
score: number
|
||||
nclc: number
|
||||
feedback_court: string
|
||||
criteres: EECritere[]
|
||||
erreurs: string[]
|
||||
production_modele: string
|
||||
suggestions_idees: string[]
|
||||
modele: string
|
||||
idees: string[]
|
||||
exercices: string[]
|
||||
}
|
||||
|
||||
|
|
@ -26,10 +27,11 @@ export interface EOCritere {
|
|||
export interface EORapport {
|
||||
score: number
|
||||
nclc: number
|
||||
feedback_court: string
|
||||
criteres: EOCritere[]
|
||||
erreurs: string[]
|
||||
production_modele: string
|
||||
suggestions_idees: string[]
|
||||
modele: string
|
||||
idees: string[]
|
||||
exercices: string[]
|
||||
}
|
||||
|
||||
|
|
@ -44,6 +46,7 @@ Tu dois retourner un JSON strict avec cette structure exacte :
|
|||
{
|
||||
"score": <number 0-20>,
|
||||
"nclc": <number 4-12>,
|
||||
"feedback_court": "<2 à 3 lignes de feedback global, orientées action>",
|
||||
"criteres": [
|
||||
{ "nom": "Cohérence et cohésion", "score": <number 0-5>, "commentaire": "<string>" },
|
||||
{ "nom": "Lexique", "score": <number 0-5>, "commentaire": "<string>" },
|
||||
|
|
@ -51,14 +54,15 @@ Tu dois retourner un JSON strict avec cette structure exacte :
|
|||
{ "nom": "Pertinence", "score": <number 0-5>, "commentaire": "<string>" }
|
||||
],
|
||||
"erreurs": ["<erreur 1>", "<erreur 2>", ...],
|
||||
"production_modele": "<texte modèle corrigé>",
|
||||
"suggestions_idees": ["<idée 1>", "<idée 2>", ...],
|
||||
"modele": "<texte modèle corrigé>",
|
||||
"idees": ["<idée 1>", "<idée 2>", ...],
|
||||
"exercices": ["<exercice recommandé 1>", "<exercice recommandé 2>", ...]
|
||||
}
|
||||
|
||||
Règles :
|
||||
- score est la note globale sur 20
|
||||
- nclc est le niveau NCLC estimé (entre 4 et 12)
|
||||
- feedback_court est un résumé de 2 à 3 lignes, toujours renseigné (visible pour tous les plans)
|
||||
- Chaque critère a un score de 0 à 5
|
||||
- Retourne UNIQUEMENT le JSON, sans texte avant ni après`
|
||||
|
||||
|
|
@ -104,6 +108,9 @@ export async function correctEE(contenu: string, tache: string): Promise<EERappo
|
|||
if (rapport.nclc < 4 || rapport.nclc > 12) {
|
||||
throw new Error(`NCLC invalide: ${rapport.nclc} (attendu 4-12)`)
|
||||
}
|
||||
if (typeof rapport.feedback_court !== 'string' || rapport.feedback_court.trim().length === 0) {
|
||||
throw new Error('feedback_court invalide: attendu une chaîne non vide')
|
||||
}
|
||||
|
||||
return rapport
|
||||
}
|
||||
|
|
@ -119,6 +126,7 @@ Tu dois retourner un JSON strict avec cette structure exacte :
|
|||
{
|
||||
"score": <number 0-20>,
|
||||
"nclc": <number 4-12>,
|
||||
"feedback_court": "<2 à 3 lignes de feedback global, orientées action>",
|
||||
"criteres": [
|
||||
{ "nom": "Cohérence et cohésion", "score": <number 0-5>, "commentaire": "<string>" },
|
||||
{ "nom": "Lexique", "score": <number 0-5>, "commentaire": "<string>" },
|
||||
|
|
@ -126,14 +134,15 @@ Tu dois retourner un JSON strict avec cette structure exacte :
|
|||
{ "nom": "Phonologie", "score": 0, "commentaire": "Non évalué sur transcription textuelle." }
|
||||
],
|
||||
"erreurs": ["<erreur 1>", "<erreur 2>", ...],
|
||||
"production_modele": "<version corrigée de la transcription>",
|
||||
"suggestions_idees": ["<idée 1>", "<idée 2>", ...],
|
||||
"modele": "<version corrigée de la transcription>",
|
||||
"idees": ["<idée 1>", "<idée 2>", ...],
|
||||
"exercices": ["<exercice recommandé 1>", "<exercice recommandé 2>", ...]
|
||||
}
|
||||
|
||||
Règles :
|
||||
- score est la note globale sur 20 (basée uniquement sur les 3 critères évalués)
|
||||
- nclc est le niveau NCLC estimé (entre 4 et 12)
|
||||
- feedback_court est un résumé de 2 à 3 lignes, toujours renseigné (visible pour tous les plans)
|
||||
- Phonologie est toujours à 0 avec le commentaire "Non évalué sur transcription textuelle."
|
||||
- Retourne UNIQUEMENT le JSON, sans texte avant ni après`
|
||||
|
||||
|
|
@ -179,6 +188,9 @@ export async function correctEO(transcript: string, tache: string): Promise<EORa
|
|||
if (rapport.nclc < 4 || rapport.nclc > 12) {
|
||||
throw new Error(`NCLC invalide: ${rapport.nclc} (attendu 4-12)`)
|
||||
}
|
||||
if (typeof rapport.feedback_court !== 'string' || rapport.feedback_court.trim().length === 0) {
|
||||
throw new Error('feedback_court invalide: attendu une chaîne non vide')
|
||||
}
|
||||
|
||||
return rapport
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue