Accéder au contenu principal

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/dictionnaire
  • openai → 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 v2
  • deepl → API DeepL avec support des glossaires
  • microsoft-translator → Azure Cognitive Services Translator
  • libretranslate → 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.

→ Eval Harness sur GitHub

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

OutilConnaît champollion ?Connaît Champollion Translate ?Connaît le harness ?
champollion(est champollion)Oui — api l'appelleNon — lit simplement les exports de plugin
Champollion TranslateOui — traite ses demandes(est Champollion Translate)Non — reçoit les méthodes déployées
Eval HarnessOui — exporte le format de pluginNon — 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)

champollion.config.json
{
"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

  1. Pas de dépendances circulaires. Les ponts sont unidirectionnels.
  2. Champollion est le noyau léger. Zéro dépendance, configuration optionnelle. Les plugins et l'API sont additifs.
  3. 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.
  4. Le format de plugin est le contrat. Tout passe par method.json.
  5. 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