0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Junieでカスタムモデル設定の罠

0
Posted at

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 コマンドを実行することで、参照して、設定することができます。

モデルディレクトリの例
image.png

Junie CLIのモデル選択画面
image.png

このモデル選択で、指定したモデルが、Junie CLI で利用することができます。

この動作は、特に問題はありません。

3. IntelliJ + AIR + Junieのカスタムモデルの罠(?)

Junie CLI では、.junie\models フォルダに設定用JSONファイルを配置すれば、モデルとして選択できましたが、IntelliJ + AIR + Junie では、同じフォルダを参照するのですが、ここで使えるモデルに制限がありました。

IntelliJ + Junie でのモデル選択画面
image.png

こちらの画面で分かるように、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 を以下のように編集してみました。

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など)に使われるため変更しています。

その後、モデル選択を表示すると、以下のようになりました。
image.png

つまり、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 だけでも、いろいろできるようになりそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?