Ir al contenido principal

Especificación del Plugin de Método

Versión: 1.1
Audiencia: Desarrolladores de plugins
Esquema Canónico: shared/schemas/champollion-plugin.schema.json

Descripción General

Champollion utiliza un sistema de métodos conectables. Cada par de idiomas puede usar un método de traducción diferente (LLM, entrenado, convertidor de scripts, etc.). Los métodos se registran en lib/translate.js y se resuelven por par mediante lib/pairs.js.

El trabajo del arnés de evaluación es desarrollar, probar y exportar métodos de traducción. El trabajo de Champollion es consumir y ejecutar los métodos. El plugin es solo datos — configuración, contenido de entrenamiento y resultados de evaluación. Sin código Python, sin dependencias del arnés.

Flujo de Datos

El arnés desarrolla y prueba métodos en Python. Cuando un método está listo para implementación, el arnés exporta un manifiesto method.json y archivos de datos de entrenamiento opcionales. Champollion instala y ejecuta el método utilizando sus propias implementaciones de métodos integradas.


Formato del Plugin de Método

Un plugin de método es un único archivo JSON (method.json) con archivos de datos de entrenamiento opcionales.

method.json — Requerido

{
"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"
}
}

Referencia de Campos

CampoTipoRequeridoDescripción
namestringIdentificador único del método (kebab-case)
typestringTipo de método Champollion: llm, llm-coached, api, google-translate, deepl, microsoft-translator, libretranslate, openai, anthropic, gemini
versionstringVersión Semver (p. ej. 1.0.0)
localesstring[]Códigos de idioma que este método destina (mínimo 1)
descriptionstringDescripción legible por humanos
authorstringQuién desarrolló/probó este método
config.modelstringIdentificador del modelo OpenRouter
config.temperaturenumberTemperatura del LLM (0.0–2.0, predeterminado: 0.3)
config.batchSizenumberClaves por lote de API (1–200, predeterminado: 80)
config.registerstring | nullRegistro/tono del idioma destino (clave preestablecida o texto libre)
config.coachingFilestring | nullRuta al archivo de indicación de entrenamiento de texto libre (relativa a la raíz del proyecto)
config.coachingPromptstring | nullTexto de indicación de entrenamiento resuelto (leído de coachingFile en tiempo de ejecución)
config.promptContextstring | nullContexto de aplicación inyectado en el indicador del sistema (p. ej., "Descripciones de productos de comercio electrónico")
config.qualityTierstring | nullNivel de calidad de la evaluación de evaluación (standard, high, research, verified)
benchmarksobjectResultados de evaluación por idioma del arnés de evaluación
provenanceobjectDependencias de licencia y recursos
coaching.dirstringRuta relativa al directorio de datos de entrenamiento

:::info Forma MethodConfig Canónica El bloque config utiliza el esquema MethodConfig canónico — los mismos 8 campos utilizados en champollion.config.json, tarjetas de ejecución del arnés, mt-eval export-config y publicación/instalación del tablero de clasificación. Todos los campos siempre están presentes; los valores no utilizados son null. Esto garantiza un intercambio sin fricción entre evaluación y producción. :::

Objeto de Evaluación (por idioma)

CampoTipoRequeridoDescripción
datestringMarca de tiempo ISO 8601 de la ejecución de evaluación
corpus_sizenumberNúmero de entradas evaluadas
exact_match_ratenumber0.0–1.0, proporción de coincidencias exactas
corpus_chrfnumberPuntuación chrF++ (0–100)
corpus_bleunumberPuntuación BLEU (0–100)
modelstringModelo utilizado durante la evaluación
harness_versionstringVersión del arnés de evaluación utilizado

:::info ¿Qué métricas se muestran? El comando champollion status muestra chrF++ y tasa de coincidencia exacta del bloque de evaluación. corpus_bleu se acepta en el manifiesto pero actualmente no se muestra ni se utiliza en ningún comando de Champollion. El Tablero de Clasificación de Métodos rastrea chrF++, coincidencia exacta y tasa de aceptación FST. :::


Objeto de Procedencia

El bloque de procedencia comunica el estado de licencia de los recursos incluidos del plugin.

CampoTipoPredeterminadoDescripción
resourcesobject[][]Lista de recursos incluidos con name, license y type
commercialReadybooleanfalseSi el plugin está autorizado para distribución comercial
flagsstring[]["license-unclear"]Banderas de estado legibles por máquina

Estado predeterminado — los plugins exportados se envían con commercialReady: false y flags: ["license-unclear"].

Estado autorizado — cuando se ha verificado la licencia: establezca commercialReady: true y borre las banderas.


Formato de Datos de Entrenamiento

Si type es llm-coached, el plugin debe incluir archivos de datos de entrenamiento en el subdirectorio 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."
}
CampoTipoRequeridoDescripción
grammar_rulesstring[]Reglas inyectadas en cada indicación de LLM para este idioma
dictionaryobjectMapa término → traducción. Los términos coincidentes se inyectan como terminología requerida.
style_notesstringInstrucciones de estilo de texto libre añadidas al indicador

Estructura de Directorios

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

Para métodos multiidioma:

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

Cómo Champollion Consume Plugins

Instalación

champollion plugin install ./french-formal-v1/

Se guarda en .champollion/methods/french-formal-v1/.

Configuración

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

:::info Semántica de fusión El plugin define qué método usar (type). La configuración del par ajusta cómo ejecutarlo (model, register, batchSize). Si el par establece model, anula el predeterminado del plugin. :::

Tiempo de Ejecución

  1. Champollion lee method.json de .champollion/methods/french-formal-v1/
  2. El campo type del plugin establece el método de traducción (p. ej., llm-coached)
  3. Carga datos de entrenamiento del directorio coaching/ del plugin
  4. Utiliza el bloque config para llenar vacíos en modelo/registro/temperatura
  5. El bloque benchmarks se muestra en la salida champollion status
  6. El bloque provenance se verifica mediante champollion provenance para banderas de licencia

Validación de Esquema

Los manifiestos de plugins se validan en tiempo de instalación contra shared/schemas/champollion-plugin.schema.json.

Haga referencia al esquema en su method.json para autocompletado de IDE:

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

Qué NO Incluir

  • ❌ Sin código Python ni dependencias del arnés
  • ❌ Sin datos de corpus sin procesar ni registros de ejecución
  • ❌ Sin claves de API ni credenciales
  • ❌ Sin configuración del arnés
  • ❌ Sin plantillas de indicación internas (esas viven en las implementaciones de métodos de Champollion)

El plugin es solo datos: configuración, contenido de entrenamiento y resultados de evaluación.


Véase También