Accéder au contenu principal

Spécification du plugin Method

Version : 1.1
Audience : Développeurs de plugins
Schéma canonique : shared/schemas/champollion-plugin.schema.json

Aperçu

Champollion utilise un système de méthodes enfichables. Chaque paire de langues peut utiliser une méthode de traduction différente (LLM, coached, script-converter, etc.). Les méthodes sont enregistrées dans lib/translate.js et résolues par paire via lib/pairs.js.

Le rôle du harnais d'évaluation est de développer, tester et exporter les méthodes de traduction. Le rôle de Champollion est de les consommer et exécuter. Le plugin est données uniquement — configuration, contenu de coaching et résultats de benchmark. Aucun code Python, aucune dépendance du harnais.

Flux de données

Le harnais développe et teste les méthodes en Python. Lorsqu'une méthode est prête pour le déploiement, le harnais exporte un manifeste method.json et des fichiers de données de coaching optionnels. Champollion installe et exécute la méthode en utilisant ses propres implémentations de méthodes intégrées.


Format du plugin Method

Un plugin de méthode est un seul fichier JSON (method.json) avec des fichiers de données de coaching optionnels.

method.json — Obligatoire

{
"name": "french-formal-v1",
"type": "llm-coached",
"version": "1.0.0",
"description": "Formally-tuned French with terminology enforcement and grammar coaching",
"author": "Plugin Author",

"config": {
"model": "google/gemini-3.5-flash",
"temperature": 0.2,
"batchSize": 80,
"register": "formal",
"coachingFile": null,
"coachingPrompt": null,
"promptContext": null,
"qualityTier": null
},

"locales": ["fr"],

"benchmarks": {
"fr": {
"date": "2026-05-11T00:00:00Z",
"corpus_size": 500,
"exact_match_rate": 0.42,
"corpus_chrf": 72.3,
"corpus_bleu": 45.1,
"model": "google/gemini-3.5-flash",
"harness_version": "1.0.0"
}
},

"provenance": {
"resources": [],
"commercialReady": false,
"flags": ["license-unclear"]
},

"coaching": {
"dir": "coaching"
}
}

Référence des champs

ChampTypeObligatoireDescription
namestringIdentifiant unique de la méthode (kebab-case)
typestringType de méthode Champollion : llm, llm-coached, api, google-translate, deepl, microsoft-translator, libretranslate, openai, anthropic, gemini
versionstringVersion Semver (ex. 1.0.0)
localesstring[]Codes de locale ciblés par cette méthode (minimum 1)
descriptionstringDescription lisible par l'humain
authorstringQui a développé/testé cette méthode
config.modelstringIdentifiant du modèle OpenRouter
config.temperaturenumberTempérature LLM (0.0–2.0, défaut : 0.3)
config.batchSizenumberClés par lot API (1–200, défaut : 80)
config.registerstring | nullRegistre/ton de la langue cible (clé prédéfinie ou texte libre)
config.coachingFilestring | nullChemin vers le fichier de prompt de coaching en texte libre (relatif à la racine du projet)
config.coachingPromptstring | nullTexte du prompt de coaching résolu (lu depuis coachingFile à l'exécution)
config.promptContextstring | nullContexte applicatif injecté dans le prompt système (ex. « Descriptions de produits e-commerce »)
config.qualityTierstring | nullNiveau de qualité issu de l'évaluation de benchmark (standard, high, research, verified)
benchmarksobjectRésultats de benchmark par locale issus du harnais d'évaluation
provenanceobjectDépendances de licences et de ressources
coaching.dirstringChemin relatif vers le répertoire de données de coaching

:::info Forme MethodConfig canonique Le bloc config utilise le schéma MethodConfig canonique — les mêmes 8 champs utilisés dans champollion.config.json, les cartes d'exécution du harnais, mt-eval export-config et la publication/installation du leaderboard. Tous les champs sont toujours présents ; les valeurs inutilisées sont null. Cela garantit un aller-retour sans friction entre l'évaluation et la production. :::

Objet Benchmark (par locale)

ChampTypeObligatoireDescription
datestringHorodatage ISO 8601 de l'exécution du benchmark
corpus_sizenumberNombre d'entrées évaluées
exact_match_ratenumber0.0–1.0, proportion de correspondances exactes
corpus_chrfnumberScore chrF++ (0–100)
corpus_bleunumberScore BLEU (0–100)
modelstringModèle utilisé lors de l'évaluation
harness_versionstringVersion du harnais d'évaluation utilisé

:::info Quelles métriques sont affichées ? La commande champollion status affiche chrF++ et le taux de correspondance exacte du bloc de benchmark. corpus_bleu est accepté dans le manifeste mais n'est actuellement affiché ou utilisé par aucune commande Champollion. Le Method Leaderboard suit chrF++, la correspondance exacte et le taux d'acceptation FST. :::


Objet Provenance

Le bloc de provenance communique le statut de licence des ressources regroupées du plugin.

ChampTypeDéfautDescription
resourcesobject[][]Liste des ressources regroupées avec name, license et type
commercialReadybooleanfalseSi le plugin est autorisé pour la distribution commerciale
flagsstring[]["license-unclear"]Drapeaux d'état lisibles par machine

État par défaut — les plugins exportés sont livrés avec commercialReady: false et flags: ["license-unclear"].

État autorisé — lorsque la licence a été vérifiée : définissez commercialReady: true et effacez les drapeaux.


Format des données de coaching

Si type est llm-coached, le plugin doit inclure des fichiers de données de coaching dans le sous-répertoire coaching/.

coaching/<locale>.json

{
"grammar_rules": [
"French adjectives agree in gender and number with the noun they modify",
"Use 'vous' for formal contexts, 'tu' for informal"
],
"dictionary": {
"dashboard": "tableau de bord",
"deployment": "déploiement",
"settings": "paramètres"
},
"style_notes": "Prefer active voice. Avoid anglicisms where a native French term exists."
}
ChampTypeObligatoireDescription
grammar_rulesstring[]Règles injectées dans chaque prompt LLM pour cette locale
dictionaryobjectCarte terme → traduction. Les termes correspondants sont injectés comme terminologie requise.
style_notesstringInstructions de style en texte libre ajoutées au prompt

Structure du répertoire

french-formal-v1/
method.json # Method manifest with benchmarks
coaching/
fr.json # Coaching data for French

Pour les méthodes multi-locale :

european-formal-v2/
method.json # locales: ["fr", "de", "es", "it"]
coaching/
fr.json
de.json
es.json
it.json

Comment Champollion consomme les plugins

Installation

champollion plugin install ./french-formal-v1/

Enregistre dans .champollion/methods/french-formal-v1/.

Configuration

champollion.config.json
{
"pairs": {
"en:fr": {
"methodPlugin": "french-formal-v1"
}
}
}

:::info Sémantique de fusion Le plugin définit quelle méthode utiliser (type). La configuration de paire affine comment l'exécuter (model, register, batchSize). Si la paire définit model, elle remplace la valeur par défaut du plugin. :::

Exécution

  1. Champollion lit method.json depuis .champollion/methods/french-formal-v1/
  2. Le champ type du plugin définit la méthode de traduction (ex. llm-coached)
  3. Charge les données de coaching depuis le répertoire coaching/ du plugin
  4. Utilise le bloc config pour combler les lacunes dans model/register/temperature
  5. Le bloc benchmarks est affiché dans la sortie champollion status
  6. Le bloc provenance est vérifié par champollion provenance pour les drapeaux de licence

Validation du schéma

Les manifestes de plugin sont validés au moment de l'installation par rapport à shared/schemas/champollion-plugin.schema.json.

Référencez le schéma dans votre method.json pour l'autocomplétion IDE :

{
"$schema": "./node_modules/champollion/shared/schemas/champollion-plugin.schema.json",
"name": "my-method-v1"
}

Ce qu'il NE FAUT PAS inclure

  • ❌ Aucun code Python ou dépendance du harnais
  • ❌ Aucune donnée de corpus brute ou journaux d'exécution
  • ❌ Aucune clé API ou identifiants
  • ❌ Aucune configuration du harnais
  • ❌ Aucun modèle de prompt interne (ceux-ci résident dans les implémentations de méthodes de Champollion)

Le plugin est données uniquement : configuration, contenu de coaching et résultats de benchmark.


Voir aussi