Portail de Qualité
Chaque traduction passe par un portail de validation déterministe avant d'être écrite sur le disque. Le portail de qualité détecte les modes de défaillance courants de la traduction automatique — pas de replis silencieux, pas de contenu indésirable écrit dans vos fichiers de locale.
Contrôles de Validation
| Contrôle | Ce qu'il détecte | Étiquette du portail |
|---|---|---|
| Vide/blanc | Le modèle a renvoyé une chaîne vide ou des espaces blancs | [GATE] empty |
| Écho source | Le modèle a renvoyé l'entrée anglaise originale | [GATE] source-echo |
| Boucle d'hallucination | Motifs de trigrammes répétés (p. ex., "Qo' Qo' Qo'") | [GATE] hallucination |
| Inflation de longueur | La sortie est significativement plus longue que la source | [GATE] length |
| Conformité du script | Mauvais script pour la locale cible | [GATE] script |
| Catégories plurielles ICU | Formes plurielles requises manquantes pour la locale | [GATE] icu-plural |
Vide/Blanc
Rejette les traductions qui sont des chaînes vides, contiennent uniquement des espaces blancs, ou null. Cela détecte les modèles qui ne retournent rien pour les clés difficiles.
Écho Source
Détecte quand le modèle retourne le texte source anglais au lieu de le traduire. Courant avec les chaînes courtes et les invites sous-spécifiées.
Boucle d'Hallucination
Analyse les motifs de trigrammes (3 caractères) dans la sortie. Si un trigramme se répète plus qu'un seuil donné par rapport à la longueur de la sortie, la traduction est rejetée. Cela détecte les sorties dégénérées comme "Qo' Qo' Qo' Qo' Qo'".
Inflation de Longueur
Rejette les traductions où la longueur de la sortie dépasse maxLengthRatio × source length (par défaut : 4×). Cela détecte les hallucinations de modèle qui produisent des murs de texte pour une courte entrée.
Configurable via maxLengthRatio dans votre configuration.
Conformité du Script
Pour les locales avec un champ script configuré (p. ex., "script": "cans" pour les Syllabiques des Plaines Cries), valide que la sortie contient des caractères non-ASCII appropriés pour le script cible. Une sortie en latin uniquement pour une locale arabe, CJK ou Syllabiques est rejetée.
Ce qui se passe en cas d'Échec
- La traduction défaillante est enregistrée sur stderr avec un préfixe
[GATE], le nom de la clé, la raison, et un aperçu de la valeur - La clé n'est pas écrite dans le fichier de locale
- La cascade de nouvelle tentative s'active (voir ci-dessous)
[GATE] hero.title: source-echo — "Welcome to our platform"
[GATE] nav.about: hallucination — "À À À À À À À À"
Cascade de Nouvelle Tentative
Quand un lot échoue (erreur d'analyse JSON ou rejets du portail de qualité), champollion réessaie avec des lots progressivement plus petits :
Full batch (80 keys) → parse error
└→ Half batch (40 keys) → 2 failures
└→ Individual keys (1 each) → isolates the 2 problem keys
Le budget de nouvelle tentative est plafonné par maxRetries (par défaut : 3, configurable par langue). Cela prévient les dépenses de jetons incontrôlées sur les clés qui échouent régulièrement.
Après épuisement des tentatives, les clés problématiques sont enregistrées et ignorées. Elles seront réessayées lors de la prochaine exécution sync.
Mise en Cache des Invites
Le message système (registre, règles de grammaire, notes de style) est séparé du message utilisateur (les clés à traduire). Cette séparation est intentionnelle :
- Le message système est identique entre les lots pour une locale donnée
- Les fournisseurs comme Anthropic et Google mettent en cache les messages système répétés
- Résultat : le premier lot paie le coût complet des jetons, les lots suivants ne paient que pour le message utilisateur
Cela peut réduire considérablement les coûts en jetons pour les projets avec de nombreux lots.
Validation du Format de Message ICU
La commande integrity valide les motifs pluriels du Format de Message ICU par rapport aux règles plurielles CLDR. Si votre fichier source utilise la syntaxe ICU comme :
"items": "{count, plural, one {# item} other {# items}}"
Champollion vérifie que les versions traduites incluent toutes les catégories plurielles requises pour la locale cible. Par exemple, l'arabe nécessite six catégories (zero, one, two, few, many, other) — pas seulement one et other.
Exécutez champollion integrity pour vérifier l'exhaustivité des pluriels dans toutes les locales.
Application de la Terminologie
Pour les paires coachées avec un dictionnaire, champollion exécute une vérification de terminologie post-traduction. Après que le portail de qualité soit passé, il vérifie si le LLM a réellement utilisé les termes de dictionnaire requis.
[TERM] en→fr: 2 term violation(s)
• hero.title: "dashboard" → expected "tableau de bord" but got "panneau de contrôle"
Les violations de terminologie sont des avertissements, pas des erreurs bloquantes. La traduction est toujours écrite sur le disque. C'est intentionnel — le LLM peut avoir des raisons valables de choisir une alternative (contexte, grammaire), et bloquer sur les non-concordances de termes causerait plus de mal que de bien.
Pour corriger les violations, mettez à jour le dictionnaire de coaching ou modifiez manuellement le fichier de locale.
Voir Aussi
- Comment fonctionne la Synchronisation — où le portail de qualité s'inscrit dans le pipeline
- Méthodes de Traduction — méthodes qui alimentent le portail
- Convertisseurs de Script — conversion de script post-portail
- Données de Coaching — amélioration de la qualité de traduction en amont
- Mémoire de Traduction — mise en cache des traductions validées
- Référence CLI — sync — drapeaux de synchronisation incluant le comportement de nouvelle tentative
- Référence CLI — integrity — audit pluriel ICU