Zum Hauptinhalt springen

Spezifikation für Methoden-Plugins

Version: 1.1
Zielgruppe: Plugin-Entwickler
Kanonisches Schema: schemas/rosetta-plugin.schema.json

Übersicht

i18n-rosetta verwendet ein Plugin-basiertes Methodensystem. Jedes Sprachpaar kann eine andere Übersetzungsmethode verwenden (LLM, Coached, Skript-Konverter usw.). Methoden werden in lib/translate.js registriert und pro Sprachpaar über lib/pairs.js aufgelöst.

Die Aufgabe der Evaluierungsumgebung (Eval-Harness) ist es, Übersetzungsmethoden zu entwickeln, zu testen und zu exportieren. Die Aufgabe von i18n-rosetta ist es, diese zu nutzen und auszuführen. Die Evaluierungsumgebung wird niemals innerhalb von rosetta ausgeführt.

Datenfluss


Format des Methoden-Plugins

Ein Methoden-Plugin ist eine einzelne JSON-Datei (method.json) mit optionalen Coaching-Datendateien.

method.json — Erforderlich

{
"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",
"register": "formal",
"batchSize": 80,
"temperature": 0.2
},

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

Feldreferenz

FeldTypErforderlichBeschreibung
namestringEindeutige Methodenkennung (kebab-case)
typestringRosetta-Methodentyp: llm, llm-coached, api, google-translate, deepl, microsoft-translator, libretranslate, openai, anthropic, gemini
versionstringSemver-Version (z. B. 1.0.0)
localesstring[]Auf welche Gebietsschema-Codes (Locale Codes) diese Methode abzielt (mindestens 1)
descriptionstringMenschenlesbare Beschreibung
authorstringWer diese Methode entwickelt/getestet hat
config.modelstringOpenRouter-Modellkennung
config.registerstringRegister/Tonfall der Zielsprache
config.batchSizenumberSchlüssel pro API-Stapel (1–200, Standard: 80)
config.temperaturenumberLLM-Temperatur (0.0–2.0, Standard: 0.3)
benchmarksobjectBenchmark-Ergebnisse pro Gebietsschema
provenanceobjectLizenzierung und Ressourcenabhängigkeiten
coaching.dirstringRelativer Pfad zum Verzeichnis der Coaching-Daten

Benchmark-Objekt (pro Gebietsschema)

FeldTypErforderlichBeschreibung
datestringISO 8601-Zeitstempel des Benchmark-Durchlaufs
corpus_sizenumberAnzahl der evaluierten Einträge
exact_match_ratenumber0.0–1.0, Anteil der exakten Übereinstimmungen (Exact Matches)
corpus_chrfnumberchrF++-Wert (0–100)
corpus_bleunumberBLEU-Wert (0–100)
modelstringWährend der Evaluierung verwendetes Modell
harness_versionstringVersion der verwendeten Evaluierungsumgebung

:::info Welche Metriken werden angezeigt? Der Befehl rosetta status zeigt chrF++ und die Rate der exakten Übereinstimmungen aus dem Benchmark-Block an. corpus_bleu wird im Manifest akzeptiert, aber derzeit von keinem rosetta-Befehl angezeigt oder verwendet. Die Methoden-Rangliste verfolgt chrF++, exakte Übereinstimmungen und die FST-Akzeptanzrate. :::


Provenienz-Objekt

Der Provenienz-Block kommuniziert den Lizenzstatus der im Plugin gebündelten Ressourcen.

FeldTypStandardBeschreibung
resourcesobject[][]Liste der gebündelten Ressourcen mit name, license und type
commercialReadybooleanfalseOb das Plugin für den kommerziellen Vertrieb freigegeben ist
flagsstring[]["license-unclear"]Maschinenlesbare Status-Flags

Standardzustand — exportierte Plugins werden mit commercialReady: false und flags: ["license-unclear"] ausgeliefert.

Freigegebener Zustand — wenn die Lizenzierung verifiziert wurde: Setzen Sie commercialReady: true und löschen Sie die Flags.


Format der Coaching-Daten

Wenn type auf llm-coached gesetzt ist, sollte das Plugin Coaching-Datendateien im Unterverzeichnis coaching/ enthalten.

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."
}
FeldTypErforderlichBeschreibung
grammar_rulesstring[]Regeln, die in jeden LLM-Prompt für dieses Gebietsschema injiziert werden
dictionaryobjectZuordnung von Begriff → Übersetzung. Übereinstimmende Begriffe werden als erforderliche Terminologie injiziert.
style_notesstringFreiform-Stilanweisungen, die an den Prompt angehängt werden

Verzeichnisstruktur

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

Für Methoden mit mehreren Gebietsschemas:

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

Wie Rosetta Plugins nutzt

Installation

i18n-rosetta plugin install ./french-formal-v1/

Speichert unter .rosetta/methods/french-formal-v1/.

Konfiguration

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

:::info Zusammenführungssemantik Das Plugin definiert, welche Methode verwendet werden soll (type). Die Sprachpaar-Konfiguration stimmt ab, wie sie ausgeführt werden soll (model, register, batchSize). Wenn das Sprachpaar model festlegt, überschreibt dies den Standardwert des Plugins. :::

Laufzeit

  1. Rosetta liest method.json aus .rosetta/methods/french-formal-v1/
  2. Das Feld type des Plugins legt die Übersetzungsmethode fest (z. B. llm-coached)
  3. Lädt Coaching-Daten aus dem Verzeichnis coaching/ des Plugins
  4. Verwendet den Block config, um Lücken bei Modell/Register/Temperatur zu füllen
  5. Der Block benchmarks wird in der Ausgabe von rosetta status angezeigt
  6. Der Block provenance wird von rosetta provenance auf Lizenzierungs-Flags überprüft

Schema-Validierung

Plugin-Manifeste werden bei der Installation gegen schemas/rosetta-plugin.schema.json validiert.

Referenzieren Sie das Schema in Ihrer method.json für die IDE-Autovervollständigung:

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

Was NICHT enthalten sein darf

  • ❌ Kein Python-Code oder Abhängigkeiten der Evaluierungsumgebung
  • ❌ Keine rohen Korpusdaten oder Ausführungsprotokolle
  • ❌ Keine API-Schlüssel oder Anmeldeinformationen
  • ❌ Keine Konfiguration der Evaluierungsumgebung
  • ❌ Keine internen Prompt-Vorlagen (diese befinden sich in den Methodenimplementierungen von rosetta)

Das Plugin besteht nur aus Daten: Konfiguration, Coaching-Inhalte und Benchmark-Ergebnisse.


Siehe auch