見出し画像

ミニマルへの道:Windows版 LM StudioでローカルLLMサーバーを立てる


この記事は「AIの思考・会話生成 LLM(Large Language Model)」を、Stack-Chan Minimal(ミニマル)の魂(PC - ローカルAIサーバー)として導入するお話です。ミニマルに接続して使用する部分以外は、一般知識としても役に立ちますよ!

前回のWhisper.cppでは、音声を文字に変換する STTサーバー を用意しました。

今回はその次の部分、つまり「文字になった質問に対して、AIが返事を考える部分」を担当する LLMサーバー を作ります。

AIと会話する動作のワークフロー

今回導入する LM Studio は、このうち「LLM:返事を考える部分」を担当します。


今回使うもの

この記事では、次の構成を例にします。

  • OS:Windows

  • アプリ:LM Studio(例:LM Studio 0.4.12)

  • 使用モデル例:google/gemma-4-e2b

  • サーバーポート:1234

  • PCのIPアドレス例:192.168.11.5

画面やバージョンは、今後のLM Studio更新で変わる可能性がありますが考え方は同じです。

前回まで:
Whisper.cppを起動
↓
ミニマルから音声を送り、文字起こしを確認

今回:
LM Studioを起動
↓
モデルをダウンロード
↓
チャットで動作確認
↓
Developer画面でサーバー起動
↓
ローカルネットワークで提供をON
↓
ミニマルから http://PCのIPアドレス:1234 に接続

という流れです。


1. LM Studioをインストールする

まず、LM Studioの公式サイトからWindows版をダウンロードします。

インストーラーを実行し、通常のWindowsアプリと同じようにインストールします。インストールが終わったら、LM Studioを起動します。

この記事では、すでにLM Studioをインストールした状態から説明します。
◆参考


2. モデルを探す

LM Studioを起動したら、まずAIモデルをダウンロードします。

左側のメニューの「My Models」を開きます。

この画面では、まだローカルモデルがない状態です。画面中央に「ローカルモデルはここに表示されます。」と表示されています。

左側のサイドバーにあるモデル検索ボタンを押して、使いたいLLMを探します。


3. 今回は google/gemma-4-e2b を使う

今回は例として、google/gemma-4-e2b を使います。

画面左側でモデルを選ぶと、右側に詳細が表示されます。

google/gemma-4-e2b は比較的軽量なLLMですが、文章で会話するだけでなく、画像の内容を説明できる機能も持っています。

今回は、スタックチャン ミニマルの「返事を考える部分」として使います。さらに、Web画面からテキストと画像を入力し、スタックチャン ミニマルの写真について google/gemma-4-e2b に質問する例も試します。

Gemma 4 E2Bは、比較的小さめのモデルなので、最初の動作確認に使いやすいです。ただし、モデルファイルは数GBあります。
ダウンロードには少し時間がかかります。

画面右側の Download ボタンを押して、モデルをダウンロードします。


4. チャット画面で動作を確認する

モデルのダウンロードが終わったら、まずLM Studioのチャット画面で動作確認します。画面上部で、使用するモデルとして google/gemma-4-e2b を選択します。

その後、チャット欄に「こんにちは。」のように入力します。

返事が表示されれば、LM Studio上でローカルLLMが動いています。この時点では、まだスタックチャン ミニマルとは接続していません。まずは「Windows PC単体でLLMが動くこと」を確認します。


5. Thinking表示が出る場合

Gemma 4系のようなReasoning対応モデルでは、返答の前に Thinking... のような表示が出る場合があります。これは、モデルが内部で考えながら返答している状態です。

ただし、スタックチャン ミニマルのような会話用途では、長い思考は必ずしも必要ありません。むしろ、以下のようなデメリットがあります。

  • 返事が遅くなる

  • 短い会話に向かない

  • 次回扱うTTSで読み上げる場合も、文章が長いと不自然になりやすい

そのため、ミニマルのような会話用途向けには

  • 短く返す

  • 余計な説明をしない

  • 必要ならThinkingを抑える

という調整をすると扱いやすくなります。


6. Thinkingを抑えたい場合の設定

モデルによっては、プロンプトテンプレートに設定を追加することでThinkingを抑えられる場合があります。

画面右側、またはモデル設定画面から プロンプトテンプレート を開きます。

今回のLLMは google/gemma-4-e2b のため、テンプレートの先頭付近に、次の1行を追加します。

{%- set enable_thinking = false %}

追加後のイメージは、次のようになります。

{%- set enable_thinking = false %}
{%- set image_count = namespace(value=0) %}
{%- set video_count = namespace(value=0) %}
{%- macro render_content(content, do_vision_count, is_system_content=false) %}

ただし、この方法はモデルやテンプレートによって効き方が変わります。


7. Developer画面でLLMサーバーを起動する

次に、スタックチャン ミニマルからLM Studioへ接続できるようにします。

LM Studio左側のメニューから Developer を開き、Developer画面にある Status をオンにします。

サーバーが起動すると、「Status: Running」のように表示されます。これでLLMサーバーが起動しました

ただし、この時点ではまだ注意点があります。画面に表示される接続先が、次のようになっている場合があります。

この 127.0.0.1 は、Windows PC自身を指すアドレスです。つまり、この状態では「Windows PC自身からは接続できるが、スタックチャン ミニマルなど別の機器からは接続できない」状態です。

そこで、ミニマルから接続できるように、次のServer Settingsで設定していきます。


8. Server Settingsを開く

Developer画面の Server Settings を開きます。

Developer画面の Server Settings


ここで重要なのは以下の項目で、最初の動作確認では、この設定が分かりやすいです。

  • Server Port:1234

  • Require Authentication:OFF

  • ローカルネットワークで提供:ON

  • CORSを有効にする:OFF

特に重要なのは、ローカルネットワークで提供:ON です。これをONにすると、同じWi-Fiや同じテザリング内にいる別の機器から、LM StudioのLLMサーバーへ接続できるようになります。つまり、スタックチャン ミニマルからWindows PC上のLM Studioへアクセスできるようになります。


Server Port

Server Port:1234

LM StudioのAPIサーバーが待ち受けるポート番号です。

特別な理由がなければ、まずは 1234 のままでよいです。


Require Authentication

Require Authentication:OFF

認証を有効にすると、APIキーが必要になります。

最初の接続確認では、OFFのままにしておくと簡単です。

後で外部から使う可能性がある場合や、同じネットワーク内の他の端末から勝手に使われたくない場合は、認証をONにしてAPIキーを設定します。


ローカルネットワークで提供

ローカルネットワークで提供:ON

ここが、スタックチャン ミニマル連携で一番重要です。

ローカルネットワークで提供

これをONにすると、同じWi-Fiや同じテザリング内にいる別の機器から、LM StudioのAPIサーバーへ接続できるようになります。

つまり、ミニマルからWindows PCのLM Studioへアクセスできるようになります。


CORSを有効にする

CORSを有効にする:OFF

CORSは、主にブラウザ上のWebアプリからAPIを呼び出すときに関係する設定です。

スタックチャン ミニマル本体からHTTPで呼び出すだけなら、通常はOFFのままで問題ありません。


9. ローカルネットワークで提供をONにした状態

ローカルネットワークで提供 をONにすると、Developer画面の表示が変わります。

LLMサーバーIPアドレス

この例では、上記のように「127.0.0.1 から192.168.11.5に変化」しました。これは、Windows PCのローカルIPアドレスです。
※ご自身のPCで設定した場合は、基本的に別のIPアドレスになります。

この状態なら、同じネットワークにいるスタックチャン ミニマルから、次のように接続できます。

http://192.168.11.5:1234

実際にLLMへ質問を送るエンドポイントは、次のURLになります。

http://192.168.11.5:1234/v1/chat/completions

10. IPアドレスの考え方

ここはつまずきやすいので、整理します。

http://127.0.0.1:1234

「127.0.0.1」は、その機器自身を指します。

Windows PC上で開けば、Windows PC自身です。

しかし、スタックチャン ミニマルに 127.0.0.1 を設定すると、ミニマル自身を見に行ってしまいます。つまり、Windows PCには届きません。

ミニマルからLM Studioへ接続する場合は、必ずWindows PCのIPアドレスを使います。

OK:
http://192.168.11.5:1234/v1/chat/completions

NG:
http://127.0.0.1:1234/v1/chat/completions

11. PowerShellでAPIサーバーを確認する

まず、Windows PC自身からLM StudioのAPIサーバーが動いているか確認します。

PowerShellを開いて、次のコマンドを実行します。

Invoke-RestMethod `
  -Uri "http://127.0.0.1:1234/v1/models" `
  -Method Get

モデル情報のようなJSONが返ってくれば、LM StudioのAPIサーバーは動いています。

次に、ローカルネットワーク側のIPでも確認します。

Invoke-RestMethod `
  -Uri "http://192.168.11.5:1234/v1/models" `
  -Method Get

ここでも結果が返れば、少なくともWindows PC自身からは、LAN側のIPアドレスでもアクセスできています。

コマンド実行例

12. チャットAPIをPowerShellで試す

次に、実際にチャットAPIへ質問を送ってみます。

$body = @{
  model = "google/gemma-4-e2b"
  messages = @(
    @{
      role = "system"
      content = "あなたはスタックチャン ミニマルの説明役です。短く日本語で答えてください。"
    },
    @{
      role = "user"
      content = "こんにちは。短く自己紹介してください。"
    }
  )
  temperature = 0.7
  max_tokens = 120
} | ConvertTo-Json -Depth 10

Invoke-RestMethod `
  -Uri "http://127.0.0.1:1234/v1/chat/completions" `
  -Method Post `
  -ContentType "application/json" `
  -Body $body

返事がJSONで返ってくれば成功です。


コマンド実行例

13. + Load Modelについて

ここまでの手順どおりに進めていれば、すでにチャット画面で google/gemma-4-e2b を使っているため、モデルは読み込まれているはずです。

ただし、LM Studioを再起動した直後や、別のモデルに切り替えたい場合は、Developer画面で読み込むモデルを確認しておくと安心です。

Loaded Models に何も表示されていない場合は、+ Load Model を押して、使いたいモデルを読み込みます。


+ Load Model
モデルを読み込む


読み込み成功でREADYになります。Ejectで停止

モデルが読み込まれていない状態では、APIへ質問を送っても、回答を作るモデルがないため応答できません。

そのため、ミニマルとの接続確認では、先にモデルを読み込んでおく方が分かりやすいです。


14. Windowsセキュリティの確認

LM Studioをローカルネットワークに公開すると、Windowsセキュリティやファイアウォールの確認画面が出る場合があります。

その場合は、LM Studioの通信を許可します。

ここで許可しないと、

Windows PC自身からは動く
でも、ミニマルからは接続できない

という状態になることがあります。

ミニマルから接続できない場合は、まず次を確認します。

  • LM StudioのStatusがRunningになっているか

  • ローカルネットワークで提供がONになっているか

  • Reachable at が 192.168.x.x になっているか

  • Windowsセキュリティの確認画面が出た場合は「許可」を押したか

    • 詳細はWhisper.cppの説明ページを参照

  • ミニマルとWindows PCが同じWi-Fiにいるか


15. スタックチャン ミニマル側の設定

ここまでできたら、スタックチャン ミニマルのWebメニューのAIモデルの設定を開きます。

AIモデルの設定


LLMサーバーの設定欄に、LM StudioのURL、Portを入れて「モデル一覧を取得」ボタンを押すと、モデル名が取得できるので、画面下部にある保存ボタンで保存します。
※モデル名が取得できない場合は、LM Studioの設定が不完全 or 指定しているサーバーIP、ポートが間違っている場合があります


16. ミニマルから会話テストする

設定を保存したら、ミニマルから会話テストをします。
※テストをする前にWhisper.cppを立ち上げるのを忘れないでください

全体の流れは次のようになります。返事を音声として再生する部分は、次回の音声合成(TTS)設定後に行います。


  1. ミニマルの画面ボタンを押して、質問を録音

  2. Whisper.cppで文字起こし

  3. LM Studioへ質問を送信

  4. LM StudioのローカルLLMが返事を生成

  5. ミニマルの画面に回答文字列が表示される

注意:現時点ではTTSサーバーをまだ用意していないため、ミニマル側が音声合成サーバーへの接続を試し、応答表示まで少し時間がかかる場合があります。

ここまで動けば、ミニマルの「考える魂」として、Windows PC上のLM Studioが使えるようになります。


17. うまくいかない場合

LM Studioのチャット画面では動くが、ミニマルから動かない

次を確認します。

・Developer画面でStatusがRunningか
・ローカルネットワークで提供がONか
・Reachable at が 127.0.0.1 ではなく 192.168.x.x になっているか
・ミニマル側に 127.0.0.1 を入れていないか
・Windows PCとミニマルが同じネットワークにいるか

127.0.0.1を設定していた

ミニマル側に次のように入れている場合は間違いです。

http://127.0.0.1:1234/v1/chat/completions

これは、ミニマル自身を見に行ってしまいます。

Windows PCのIPアドレスを使います。

http://192.168.11.5:1234/v1/chat/completions

返事が遅い

大きすぎるモデルを使っている可能性があります。

最初は、小さめのモデルで動作確認するのがおすすめです。

・2B〜4B程度のモデル
・量子化されたGGUFモデル
・Instructモデル

ミニマル用途では、超高性能な大規模モデルよりも、

短く
速く
安定して返す

モデルの方が扱いやすいです。


Thinkingが長い

Reasoning対応モデルでは、Thinkingが長くなる場合があります。

その場合は、次を試します。

・max_tokensを短くする
・system promptで短く答えるように指定する
・プロンプトテンプレートに enable_thinking = false を追加して試す
・Thinkingが出にくいモデルに変える

次回TTSをつなぐと、ミニマルは音声で返事をするため、長文より短文の方が自然です。


モデルが読み込まれていない

Developer画面で Loaded Models が空の場合は、+ Load Model からモデルを読み込みます。

+ Load Model
↓
google/gemma-4-e2b を選択

サーバーがRunningでも、モデルが読み込まれていないと、回答を作るモデルがないため応答できません。


まとめ

今回は、Windows PC上で Whisper.cppLM Studio を使い、スタックチャン ミニマル向けのローカルAIサーバー構成を作りました。

今回扱った役割は、次の2つです。

Whisper.cpp:音声をテキストに変換する
LM Studio:テキストを受け取り、返事を考える

手順をまとめると、次のようになります。

  1. Whisper.cppを導入する

  2. whisper-server.exe を起動する

  3. ミニマル側からWhisper.cppへ音声を送り、文字起こしできることを確認する

  4. LM Studioをインストールする

  5. モデルを検索する

  6. google/gemma-4-e2b などの軽めのモデルをダウンロードする

  7. チャット画面で動作確認する

  8. Developer画面でサーバーを起動する

  9. Server Settingsで「ローカルネットワークで提供」をONにする

  10. Reachable at が 192.168.x.x になっていることを確認する

  11. ミニマル側に http://PCのIPアドレス:1234/v1/chat/completions を設定する

  12. ミニマルから会話テストする

これで、クラウドAPIを使わずに、Windows PC上のローカル環境で次の流れを作ることができます。

ミニマルが音声を録音する
↓
Whisper.cpp が音声を文字にする
↓
LM Studio が返事を考える

スタックチャン ミニマルの考え方では、ミニマル本体は 「身体」、PCやスマホ上のAIサーバーは 「魂」 です。

今回の構成では、Whisper.cppとLM Studioがそれぞれ次の役割を担当します。

Whisper.cpp:聞く魂
LM Studio:考える魂

つまり今回は、

聞く
↓
考える

までをローカル環境でつなげたことになります。

ただし、今回のページでは 音声合成(TTS)までは扱いません

ミニマルに返事を音声でしゃべらせるには、次に TTSサーバー を用意する必要があります。

次回は、TTSサーバーを追加して、

聞く
↓
考える
↓
話す

のうち、最後の 「話す」 部分をつなげていきます。

いいなと思ったら応援しよう!