OpenAI 互換 API を使う¶
Koharu は、OpenAI Chat Completions 互換の API を使って翻訳できます。LM Studio のようなローカルサーバーも、OpenRouter のようなホスト型ルーターも対象です。
このページで扱うのは、Koharu に現在実装されている OpenAI 互換経路です。これは、Koharu に組み込まれている OpenAI、Gemini、Claude、DeepSeek のプロバイダプリセットとは別物です。
互換エンドポイントに対して Koharu が期待しているもの¶
現在の実装で Koharu が想定しているのは次の通りです。
- 通常
/v1で終わる API ルートを指す base URL - 接続確認用の
GET /models - 翻訳用の
POST /chat/completions choices[0].message.contentを含むレスポンス- API キーが指定されている場合の bearer token 認証
実装上、いくつか重要な点があります。
- Koharu は base URL 末尾の空白と末尾スラッシュを削ってから
/modelsや/chat/completionsを付けます - API キーが空なら、空の
Authorizationヘッダは送らず完全に省略します - 互換モデルは
Base URLとModel nameの両方が埋まって初めて LLM ピッカーに出現します - 設定した各プリセットは、それぞれ独立した選択可能ソースとして LLM ピッカーに表示されます
つまり、ここでいう OpenAI-compatible とは「一般的に OpenAI 系ツールで使える」という意味ではなく、「OpenAI API の形に互換である」という意味です。
Koharu のどこで設定するか¶
Settings を開き、Local LLM & OpenAI Compatible Providers までスクロールします。
現在の UI には次があります。
- プリセット選択:
Ollama、LM Studio、Preset 1、Preset 2 Base URLAPI Key (optional)Model nameTest ConnectionTemperature、Max tokens、カスタムシステムプロンプトの詳細項目
Test Connection は現在 /models を 5 秒タイムアウトで呼び出し、接続成功の有無、返ってきたモデル ID 数、計測されたレイテンシを表示します。
LM Studio¶
同じマシン上でローカルモデルサーバーを使いたい場合は、組み込みの LM Studio プリセットを使います。
- LM Studio のローカルサーバーを起動します。
- Koharu で Settings を開きます。
LM Studioプリセットを選びます。Base URLにhttp://127.0.0.1:1234/v1を設定します。- LM Studio の前段に認証を置いていない限り、
API Keyは空のままで構いません。 Model nameに、LM Studio 側の正確なモデル識別子を入力します。Test Connectionを押します。- Koharu の LLM ピッカーを開き、LM Studio 由来のモデル項目を選びます。
補足:
- Koharu の既定の LM Studio プリセットは、もともと
http://127.0.0.1:1234/v1を使います - LM Studio の公式ドキュメントでも、同じ OpenAI 互換ベースパスとポート
1234が使われています - Koharu の接続テストはモデル数しか表示しないため、実際に使いたい正確なモデル ID は自分で把握しておく必要があります
モデル識別子が不明な場合は、LM Studio に直接問い合わせてください。
curl http://127.0.0.1:1234/v1/models
使いたいモデルの id フィールドをそのままコピーします。
公式参照:
OpenRouter¶
OpenRouter のようなホスト型 OpenAI 互換サービスには Preset 1 または Preset 2 を使ってください。そうするとローカルの LM Studio プリセットを上書きせずに済みます。
- OpenRouter で API キーを作成します。
- Koharu で Settings を開きます。
Preset 1またはPreset 2を選びます。Base URLにhttps://openrouter.ai/api/v1を設定します。- OpenRouter の API キーを
API Keyに貼り付けます。 Model nameに、正確な OpenRouter モデル ID を入力します。Test Connectionを押します。- Koharu の LLM ピッカーから、そのプリセット由来のモデルを選びます。
重要な点:
- OpenRouter のモデル ID は表示名ではなく、組織プレフィックス込みの ID を使う必要があります
- Koharu は現在、標準的な bearer 認証と通常の OpenAI 形式 chat-completions リクエストボディを送ります
- OpenRouter は
HTTP-RefererやX-OpenRouter-Titleのような追加ヘッダにも対応していますが、Koharu には現時点でそれらを設定する UI はありません
公式参照:
その他の互換エンドポイント¶
他のセルフホスト API やルーティング型 API を使う場合も、確認項目は同じです。
Base URLには API ルートを入れる。完全な/chat/completionsURL は入れない- エンドポイントが
GET /modelsをサポートしていること POST /chat/completionsをサポートしていること- 表示名ではなく正確なモデル
idを使うこと - サーバーが bearer 認証を要求するなら API キーを設定すること
もしサーバーが Responses API だけ、あるいは独自スキーマだけを実装している場合、現在の OpenAI 互換統合では動きません。Koharu は今のところ chat/completions を話す前提だからです。
実際のモデル選択の仕組み¶
Koharu はこれらのエンドポイントを、ひとまとめの「リモートモデル群」としては扱いません。設定済みの各プリセットは、それぞれ独立した LLM ソースになります。
たとえば:
LM Studioはローカルサーバーを指せるPreset 1は OpenRouter を指せるPreset 2は別のセルフホスト OpenAI 互換 API を指せる
そのため、複数の互換バックエンドを保持したまま、通常の LLM ピッカーから切り替えられます。
よくある間違い¶
/v1なしの base URL を使う/chat/completionsを含んだ完全 URL をBase URLに貼るModel nameを空のままにして、モデルが出てくると思い込む- 正確な API モデル ID ではなく表示ラベルを使う
Test Connectionがモデルを選択・読み込みまでしてくれると思う- 新しい
ResponsesAPI のみをサポートするエンドポイントを使おうとする