アーキテクチャ
Champollion の翻訳エコシステムは、明確に定義されたコントラクトを通じて連携する3つの独立したツールで構成されています。これらはビルド時に互いに依存しません。共有のメソッドプラグイン形式とREST API コントラクトを通じて通信します。
3つのコンポーネント
champollion(このプロジェクト)
オープンソースの開発者向けツールです。プラグイン可能なメソッドを使用してロケールファイルを翻訳します。依存関係ゼロ、設定は任意で、すぐに使い始められます。
組み込みメソッド:
llm→ OpenRouter / 任意の LLM(200以上のモデル)llm-coached→ LLM + 文法・辞書コーチングopenai→ OpenAI API 直接接続(GPT-4o、GPT-4o-mini)anthropic→ Anthropic API 直接接続(Claude Sonnet、Haiku、Opus)gemini→ Google Gemini API 直接接続(Flash、Pro — 無料枠あり)google-translate→ Google Cloud Translation API v2deepl→ 用語集サポート付き DeepL APImicrosoft-translator→ Azure Cognitive Services Translatorlibretranslate→ セルフホスト型 LibreTranslate(AGPL、無料)api→ 任意のリモート REST エンドポイントへの薄いパイプ
Eval Harness(コンパニオンプロジェクト)
翻訳メソッドの開発・テスト・ベンチマークを行うための研究ツールです。メソッドが許容できる品質に達すると、ハーネスはメソッドプラグイン — method.json マニフェストとオプションのコーチングデータファイル — をエクスポートします。
ハーネスは champollion の内部では動作しません。静的な出力(JSON ファイル)を生成する独立したツールです。Champollion はそれらのファイルを読み込むだけです。
Champollion Translate(計画中)
独自の翻訳メソッドをサーバーサイドでホストする従量制 API サービスです。プロンプト、コーチングデータ、言語処理パイプラインはサーバーの外に出ることはありません。
連携の仕組み
Eval Harness → champollion(一方向エクスポート)
コントラクト: プラグイン仕様
Champollion Translate → champollion(実行時 API)
Champollion の APIMethod は薄いパイプです。キーを送信して翻訳結果を受け取るだけです。翻訳ロジックも独自コンテンツも一切含みません。
各コンポーネントが把握していること
| ツール | champollion を把握? | Champollion Translate を把握? | ハーネスを把握? |
|---|---|---|---|
| champollion | (champollion 自身) | はい — api メソッドが呼び出す | いいえ — プラグインのエクスポートを読み込むだけ |
| Champollion Translate | はい — リクエストを処理する | (Champollion Translate 自身) | いいえ — デプロイされたメソッドを受け取る |
| Eval Harness | はい — プラグイン形式でエクスポートする | いいえ — メソッドは別途デプロイされる | (ハーネス自身) |
ユーザーシナリオ
シナリオ 1: 無料・設定不要(ほとんどのユーザー)
export OPENROUTER_API_KEY=sk-...
npx champollion sync
組み込みの llm メソッドを使用します。プラグイン、Champollion Translate、ハーネスはいずれも不要です。
シナリオ 2: Google Translate ベースライン
export GOOGLE_TRANSLATE_API_KEY=AIza...
npx champollion sync
組み込みの google-translate メソッドを使用します。プラグインは不要です。
シナリオ 3: コーチングデータ付きオープンプラグイン
champollion plugin install ./french-formal-v1/
champollion sync
プラグインに type: "llm-coached" が含まれており、champollion はユーザー自身の OpenRouter キーを使用します。コーチングデータはローカルにあるため、サーバーへの呼び出しは発生しません。
シナリオ 4: DIY コーチング(プラグインなし、ハーネスなし)
{
"pairs": {
"en:fr": { "method": "llm-coached" }
}
}
ユーザーが .champollion/coaching/fr.json で独自の文法ルールと辞書を管理します。
言語カード
champollion の各言語は言語カード — レジスタープリセット、丁寧さのルール、メソッドサポートフラグ、タイポグラフィの慣習、系統分類、言語参照データを含む統合 JSON ファイル — を通じて設定されます。
カードはインポート時に一括で読み込まれます。各カードには翻訳エンジンと開発者向けドキュメントが必要とするすべてのメタデータが含まれており、別途参照層は存在しません。カードは権威ある情報源(IANA、CLDR、Glottolog、WALS)から scripts/generate-language-card.mjs と scripts/build-language-tree.mjs を使用して生成され、言語的な正確さのために人手でキュレーションされています。
設計原則
- 循環依存なし。 ブリッジは一方向です。
- Champollion は軽量なコアです。 依存関係ゼロ、設定は任意。プラグインと API は追加機能です。
- IP 保護はアーキテクチャによって実現されます。 独自技術はサーバーサイドに留まります。npm パッケージには独自コンテンツは含まれません。
- プラグイン形式がコントラクトです。 すべては
method.jsonを通じて流れます。 - 各ツールは1つの役割を持ちます。 ハーネス → メソッドの開発。Champollion Translate → メソッドのホスト。Champollion → ファイルの翻訳。
関連情報
- 翻訳メソッド — 各組み込みメソッドの動作について
- プラグイン仕様 — method.json マニフェスト形式について
- Eval Harness — コンパニオン研究ツール
- API によるメソッドの提供 — カスタム翻訳パイプラインのホスティング
- 低リソース言語のサポート — このアーキテクチャを生み出したユースケース