1. はじめに
先週、IntelliJ + AIRプラグイン + Junieプラグイン を使って、IntelliJ 上で AIエージェント として、Junie が、EVO-X2 上の Strata を利用する環境を作りました。
この時に、いろいろ気になっていたのが、 Junie CLI では、認識される カスタムモデル が、 IntelliJ 上の Junie では、認識されないことでした。
いろいろと設定を変更して試したとことろ、IntelliJ 上の Junie でも、アカウントを新規に作らなくても、カスタムモデルを設定して、EVO-X2 上の Strata を使うことができましたので、その方法を説明します。
2. Junie CLIでのカスタムモデルの扱い
Junie CLI では、カスタムモデルのJSON形式の設定ファイルを、C:\Users\<ユーザ名>\.junie\models フォルダに配置することで、/model コマンドを実行することで、参照して、設定することができます。
このモデル選択で、指定したモデルが、Junie CLI で利用することができます。
この動作は、特に問題はありません。
3. IntelliJ + AIR + Junieのカスタムモデルの罠(?)
Junie CLI では、.junie\models フォルダに設定用JSONファイルを配置すれば、モデルとして選択できましたが、IntelliJ + AIR + Junie では、同じフォルダを参照するのですが、ここで使えるモデルに制限がありました。
こちらの画面で分かるように、3個あったモデルファイルのうち、一つしか選択画面には表示されていません。
これに関して、マニュアルを読んだりして調べてみましたが、理由がわかりませんでした。
そこで、設定ファイルの内容を確認したところ、以下のような違いがありました。
| ファイル名 | BaseURLのホスト | 一覧に表示 |
|---|---|---|
| gemma4-12B-QAT | localhost | あり |
| gemma4-31B | EVO-X2のIPアドレス | なし |
| qwen3.8-flash-next-iq3_xxs | EVO-X2のホスト名 | なし |
これからわかることは、対象モデルのホストが localhost じゃないと一覧に表示されないという仮説ができました。
そこで、qwen3.8-flash-next-iq3_xxs.json を以下のように編集してみました。
{
"id": "qwen3.8-flash-next-iq3_xxs",
"displayName": "EVO-X2 Strata Qwen3.8-Flash-Next",
"providerName": "Ollama",
"apiType": "OpenAICompletion",
"baseUrl": "http://localhost:9080/v1/chat/completions",
"apiKey": "APIKEY",
"maxContextLength": 262144,
"temperature": 0.6
}
注:ポート番号を9080にしているのは、開発パソコンなのでポート8080が別のプログラム(SpringBootなど)に使われるため変更しています。
つまり、IntelliJ + AIR + Junie の環境では、.junie\models フォルダのモデルファイルの中の BaseURL が localhost のものだけが、一覧に表示されるということです。
この localhost のみ表示されるという条件がわかったので、後は、localhost:9080 を、EVO-X2 の Strata のポート: 8080 に、ポートフォワードしてあげれば、前回のように新しいプロバイダーを設定しなくても、よいということになります。
Windowsパソコンを使っているので、以下のコマンドを使って、ポートフォワードを設定します。
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=9080 connectaddress=<EVO-X2のIP> connectport=8080
netsh interface portproxy show all
netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=9080
以上の設定を行うことで、EVO-X2 の Strata を使って、Junie が動作するようになりました。
また、前回のプロバイダーを追加していた場合には、モデルのコンテキスト長が正しく取得できておらず、Junieが期待しているコンテキスト長が、400,000 となっており、Strata 側のコンテキスト長設定の 256K を超えるプロンプトを投げて、エラーとなることがありました。
しかしながら、今回の設定では、モデルの定義ファイルにコンテキスト長を記載しており、Junie もこの値を使っていることが確認できましたので、コンテキスト長に関するエラーは回避できるようになったと思われます。
4. まとめ
Juine CLI と、Junieプラグイン で微妙なモデルの扱いの違いがありましたが、今回いろいろしらべて、回避策(?)がわかりました。
これで、また一つ賢くなりました。
11月には、AIRプラグイン が、IntelliJ 本体に組み込まれるという情報がありますので、今後は IntelliJ だけでも、いろいろできるようになりそうです。



