メインコンテンツへスキップ

メソッドプラグイン仕様

バージョン: 1.1
対象読者: プラグイン開発者
正規スキーマ: schemas/rosetta-plugin.schema.json

概要

i18n-rosettaはプラガブルなメソッドシステムを使用しています。各言語ペアで異なる翻訳メソッド(LLM、coached、script-converterなど)を使用できます。メソッドはlib/translate.jsに登録され、lib/pairs.jsを介してペアごとに解決されます。

eval harness(評価ハーネス)の役割は、翻訳メソッドを開発、テスト、およびエクスポートすることです。i18n-rosettaの役割は、それらを消費し、実行することです。ハーネスがrosetta内で実行されることはありません。

データフロー


メソッドプラグインのフォーマット

メソッドプラグインは、単一のJSONファイル(method.json)と、オプションのコーチングデータファイルで構成されます。

method.json — 必須

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

フィールドリファレンス

フィールド必須説明
namestring一意のメソッド識別子(ケバブケース)
typestringRosettaメソッドタイプ: llm, llm-coached, api, google-translate, deepl, microsoft-translator, libretranslate, openai, anthropic, gemini
versionstringセマンティックバージョニング(例: 1.0.0
localesstring[]このメソッドが対象とするロケールコード(最小1)
descriptionstring人間が読める説明
authorstringこのメソッドの開発者/テスト担当者
config.modelstringOpenRouterモデル識別子
config.registerstringターゲット言語のレジスター/トーン
config.batchSizenumberAPIバッチあたりのキー数(1〜200、デフォルト: 80)
config.temperaturenumberLLMのtemperature(0.0〜2.0、デフォルト: 0.3)
benchmarksobjectロケールごとのベンチマーク結果
provenanceobjectライセンスおよびリソースの依存関係
coaching.dirstringコーチングデータディレクトリへの相対パス

Benchmarkオブジェクト(ロケールごと)

フィールド必須説明
datestringベンチマーク実行のISO 8601タイムスタンプ
corpus_sizenumber評価されたエントリ数
exact_match_ratenumber0.0〜1.0、完全一致(exact match)の割合
corpus_chrfnumberchrF++スコア(0〜100)
corpus_bleunumberBLEUスコア(0〜100)
modelstring評価中に使用されたモデル
harness_versionstring使用された評価ハーネスのバージョン

:::info どの指標が表示されるか? rosetta statusコマンドは、ベンチマークブロックから**chrF++完全一致率(exact match rate)**を表示します。corpus_bleuはマニフェストで受け入れられますが、現在rosettaのどのコマンドでも表示または使用されていません。メソッドリーダーボードでは、chrF++、完全一致、およびFSTの承認率を追跡します。 :::


Provenanceオブジェクト

provenanceブロックは、プラグインにバンドルされているリソースのライセンスステータスを伝達します。

フィールドデフォルト説明
resourcesobject[][]namelicense、およびtypeを含むバンドルリソースのリスト
commercialReadybooleanfalseプラグインが商用配布用にクリアされているかどうか
flagsstring[]["license-unclear"]機械可読なステータスフラグ

デフォルト状態 — エクスポートされたプラグインは、commercialReady: falseおよびflags: ["license-unclear"]の状態で提供されます。

クリア状態 — ライセンスが確認された場合: commercialReady: trueを設定し、フラグをクリアします。


コーチングデータのフォーマット

typellm-coachedの場合、プラグインは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."
}
フィールド必須説明
grammar_rulesstring[]このロケールのすべてのLLMプロンプトに注入されるルール
dictionaryobject用語 → 翻訳のマップ。一致した用語は必須の専門用語として注入されます。
style_notesstringプロンプトに追加される自由形式のスタイル指示

ディレクトリ構造

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

マルチロケールメソッドの場合:

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

Rosettaによるプラグインの消費方法

インストール

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

.rosetta/methods/french-formal-v1/に保存されます。

設定

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

:::info マージのセマンティクス プラグインは、どのメソッドを使用するか(type)を定義します。ペア設定は、それをどのように実行するか(modelregisterbatchSize)を調整します。ペアでmodelが設定されている場合、プラグインのデフォルトを上書きします。 :::

ランタイム

  1. Rosettaは.rosetta/methods/french-formal-v1/からmethod.jsonを読み込みます。
  2. プラグインのtypeフィールドが翻訳メソッドを設定します(例: llm-coached)。
  3. プラグインのcoaching/ディレクトリからコーチングデータを読み込みます。
  4. configブロックを使用して、モデル/レジスター/temperatureのギャップを埋めます。
  5. benchmarksブロックはrosetta statusの出力に表示されます。
  6. provenanceブロックは、ライセンスフラグを確認するためにrosetta provenanceによってチェックされます。

スキーマ検証

プラグインマニフェストは、インストール時にschemas/rosetta-plugin.schema.jsonに対して検証されます。

IDEの自動補完を利用するには、method.jsonでスキーマを参照してください:

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

含めるべきではないもの

  • ❌ Pythonコードやハーネスの依存関係
  • ❌ 生のコーパスデータや実行ログ
  • ❌ APIキーや認証情報
  • ❌ ハーネスの設定
  • ❌ 内部のプロンプトテンプレート(これらはrosettaのメソッド実装内に存在します)

プラグインはデータのみで構成されます。設定、コーチングコンテンツ、およびベンチマーク結果のみを含めてください。


関連項目