わかってしまえばなんのことはない話なのですが、ちょっとハマったのでメモ。
LM Studioを使うと、OpenAI API互換のAPIで各種LLMを使うことができるようになって便利です。
なのですが、WSL2からホストのWindows上で動いているLLMのAPIがなかなか呼べなくてハマりました。
LM Studioのバージョンは0.3.11です。
とりあえず手順としては
1. 動かしたいLLMをロードしてチャットで動くことを確認
2. 左上のメニューから緑色の「Developer」を選択
3. 「Status: Running」のところをオンにする
だけなのですが、これだとWindowsの環境からはAPIを叩けるものの、WSL2環境からは触れません。
これは、WSL2環境からホストのWindowsのサービスをlocalhostとしてそのまま叩くことができない、ということが理由です。
そこでホストのIPをipconfigで調べて叩けば良さそうに思うのですが、それもうまくいきません。
というのは通常だとLM Studioが自PCからのみのアクセスを許可しているため、WSL2からの接続は別ネットワークからの接続と認識されてしまうので、それで拒否されてしまうからです。
なので、下記のように追加で他のネットワークからのアクセスを許可する設定が必要になります。
4. 先程のメニューで「Settings」を開く
5. 「Serve on Local Network」をオン
これでやっとWSL2からもAPIを動かせるようになります。
このとき、APIにアクセスするためのlocalhostではないIPとエンドポイントも表示されます。
ただこれだとローカルネットワークからのアクセス全部が許可されるため、注意が必要です。
なかなか理由がわからなくて困ってたんですが、GPT-4.5先生が
必ずAPIサーバを 0.0.0.0 でListenする必要があります。
とアドバイスしてくれたので気がつけましたとさ。