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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | ✅ | Identificador único del método (kebab-case) |
type | string | ✅ | Tipo de método Champollion: llm, llm-coached, api, google-translate, deepl, microsoft-translator, libretranslate, openai, anthropic, gemini |
version | string | ✅ | Versión Semver (p. ej. 1.0.0) |
locales | string[] | ✅ | Códigos de idioma que este método destina (mínimo 1) |
description | string | — | Descripción legible por humanos |
author | string | — | Quién desarrolló/probó este método |
config.model | string | — | Identificador del modelo OpenRouter |
config.temperature | number | — | Temperatura del LLM (0.0–2.0, predeterminado: 0.3) |
config.batchSize | number | — | Claves por lote de API (1–200, predeterminado: 80) |
config.register | string | null | — | Registro/tono del idioma destino (clave preestablecida o texto libre) |
config.coachingFile | string | null | — | Ruta al archivo de indicación de entrenamiento de texto libre (relativa a la raíz del proyecto) |
config.coachingPrompt | string | null | — | Texto de indicación de entrenamiento resuelto (leído de coachingFile en tiempo de ejecución) |
config.promptContext | string | null | — | Contexto de aplicación inyectado en el indicador del sistema (p. ej., "Descripciones de productos de comercio electrónico") |
config.qualityTier | string | null | — | Nivel de calidad de la evaluación de evaluación (standard, high, research, verified) |
benchmarks | object | — | Resultados de evaluación por idioma del arnés de evaluación |
provenance | object | — | Dependencias de licencia y recursos |
coaching.dir | string | — | Ruta 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)
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
date | string | ✅ | Marca de tiempo ISO 8601 de la ejecución de evaluación |
corpus_size | number | ✅ | Número de entradas evaluadas |
exact_match_rate | number | ✅ | 0.0–1.0, proporción de coincidencias exactas |
corpus_chrf | number | — | Puntuación chrF++ (0–100) |
corpus_bleu | number | — | Puntuación BLEU (0–100) |
model | string | ✅ | Modelo utilizado durante la evaluación |
harness_version | string | ✅ | Versió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.
| Campo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
resources | object[] | [] | Lista de recursos incluidos con name, license y type |
commercialReady | boolean | false | Si el plugin está autorizado para distribución comercial |
flags | string[] | ["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."
}
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
grammar_rules | string[] | — | Reglas inyectadas en cada indicación de LLM para este idioma |
dictionary | object | — | Mapa término → traducción. Los términos coincidentes se inyectan como terminología requerida. |
style_notes | string | — | Instrucciones 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
{
"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
- Champollion lee
method.jsonde.champollion/methods/french-formal-v1/ - El campo
typedel plugin establece el método de traducción (p. ej.,llm-coached) - Carga datos de entrenamiento del directorio
coaching/del plugin - Utiliza el bloque
configpara llenar vacíos en modelo/registro/temperatura - El bloque
benchmarksse muestra en la salidachampollion status - El bloque
provenancese verifica mediantechampollion provenancepara 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
- Métodos de Traducción — cómo funciona cada método integrado
- Configuración — configuración por par e idioma
- Servir un Método vía API — alojamiento de métodos como servicios HTTP
- Libro de Recetas: Canalización Controlada por FST — construcción y empaquetamiento de una canalización
- Evaluación de MT — evaluación de métodos para envío al tablero de clasificación
- Apoyar un Idioma de Recursos Limitados — el caso de uso para plugins comunitarios