Architecture
L'écosystème de traduction Champollion comprend trois outils indépendants qui fonctionnent ensemble selon des contrats bien définis. Aucun d'entre eux ne dépend des autres au moment de la compilation. Ils communiquent via un format de plugin de méthode partagé et un contrat d'API REST.
Les trois composants
champollion (ce projet)
L'outil de développeur open-source. Traduit les fichiers de locale en utilisant des méthodes enfichables. Zéro dépendance, configuration optionnelle, fonctionne immédiatement.
Méthodes intégrées :
llm→ OpenRouter / n'importe quel LLM (200+ modèles)llm-coached→ LLM + coaching grammatical/dictionnaireopenai→ API OpenAI directe (GPT-4o, GPT-4o-mini)anthropic→ API Anthropic directe (Claude Sonnet, Haiku, Opus)gemini→ API Google Gemini directe (Flash, Pro — niveau gratuit disponible)google-translate→ API Google Cloud Translation v2deepl→ API DeepL avec support des glossairesmicrosoft-translator→ Azure Cognitive Services Translatorlibretranslate→ LibreTranslate auto-hébergé (AGPL, gratuit)api→ Conduit léger vers n'importe quel point de terminaison REST distant
Eval Harness (projet compagnon)
Un outil de recherche pour développer, tester et évaluer les méthodes de traduction. Lorsqu'une méthode atteint une qualité acceptable, le harness exporte un plugin de méthode — un manifeste method.json et des fichiers de coaching optionnels.
Le harness ne s'exécute jamais à l'intérieur de champollion. C'est un outil séparé qui produit une sortie statique (fichiers JSON). Champollion lit simplement ces fichiers.
Champollion Translate (prévu)
Un service d'API mesuré qui héberge des méthodes de traduction propriétaires côté serveur — les invites, les données de coaching et les pipelines linguistiques ne quittent jamais le serveur.
Comment ils se connectent
Eval Harness → champollion (export unidirectionnel)
Contrat : Spécification du plugin
Champollion Translate → champollion (API à l'exécution)
Le APIMethod de Champollion est un conduit inerte. Il envoie des clés et reçoit des traductions en retour. Il ne contient aucune logique de traduction et aucun contenu propriétaire.
Ce que chaque composant sait des autres
| Outil | Connaît champollion ? | Connaît Champollion Translate ? | Connaît le harness ? |
|---|---|---|---|
| champollion | (est champollion) | Oui — api l'appelle | Non — lit simplement les exports de plugin |
| Champollion Translate | Oui — traite ses demandes | (est Champollion Translate) | Non — reçoit les méthodes déployées |
| Eval Harness | Oui — exporte le format de plugin | Non — les méthodes sont déployées séparément | (est le harness) |
Scénarios d'utilisation
Scénario 1 : Gratuit, zéro configuration (la plupart des utilisateurs)
export OPENROUTER_API_KEY=sk-...
npx champollion sync
Utilise la méthode llm intégrée. Pas de plugins, pas de Champollion Translate, pas de harness.
Scénario 2 : Ligne de base Google Translate
export GOOGLE_TRANSLATE_API_KEY=AIza...
npx champollion sync
Utilise la méthode google-translate intégrée. Aucun plugin nécessaire.
Scénario 3 : Plugin ouvert avec coaching fourni
champollion plugin install ./french-formal-v1/
champollion sync
Le plugin a type: "llm-coached" → champollion utilise la clé OpenRouter de l'utilisateur. Les données de coaching sont locales (aucun appel serveur).
Scénario 4 : Coaching DIY (pas de plugin, pas de harness)
{
"pairs": {
"en:fr": { "method": "llm-coached" }
}
}
L'utilisateur maintient ses propres règles grammaticales et dictionnaire dans .champollion/coaching/fr.json.
Cartes de langue
Chaque langue dans champollion est configurée via une Carte de langue — un fichier JSON unifié contenant des présets de registre, des règles de formalité, des drapeaux de support de méthode, des conventions typographiques, une classification généalogique et des données de référence linguistique.
Les cartes sont chargées avec impatience à l'importation. Chaque carte contient toutes les métadonnées dont le moteur de traduction et la documentation des développeurs ont besoin — il n'y a pas de niveau de référence séparé. Les cartes sont générées à partir de sources faisant autorité (IANA, CLDR, Glottolog, WALS) en utilisant scripts/generate-language-card.mjs et scripts/build-language-tree.mjs, puis curées manuellement pour la précision linguistique.
Principes de conception
- Pas de dépendances circulaires. Les ponts sont unidirectionnels.
- Champollion est le noyau léger. Zéro dépendance, configuration optionnelle. Les plugins et l'API sont additifs.
- La protection de la propriété intellectuelle est architecturale. Les techniques propriétaires restent côté serveur. Le package npm ne contient rien de propriétaire.
- Le format de plugin est le contrat. Tout passe par
method.json. - Chaque outil a une seule fonction. Harness → développer les méthodes. Champollion Translate → héberger les méthodes. Champollion → traduire les fichiers.
Voir aussi
- Méthodes de traduction — comment fonctionne chaque méthode intégrée
- Spécification du plugin — le format du manifeste method.json
- Eval Harness — l'outil de recherche compagnon
- Servir une méthode via API — héberger des pipelines de traduction personnalisés
- Soutenir une langue peu dotée en ressources — le cas d'usage qui a motivé cette architecture