【Ollama】内部ネットワークに公開して別デバイスからアクセスできるようにする

Mac,Windows,環境構築

こんにちは、しきゆらです。
今回は、Ollama をサーバとして起動し、同じネットワークに接続している別デバイスからアクセスできるよう設定していきます。

概要

前回 Obsidian と LLM を連携させる、という内容で記事を書きました。

Obsidian と LLM の連携ができるようになってからは、ブログ記事を書く時は以下の流れで進めています。

  1. Obsidian にブログ記事の下書きを書く
  2. LLM にレビューをしてもらい、必要に応じて加筆・修正する
  3. 記事の内容にあったアイキャッチ画像を生成するためのプロンプトを LLM に生成してもらう
  4. ComfyUIで画像を数枚生成し、アイキャッチ画像を決める

この時、Step 3からStep 4に移るタイミングで LLM をメモリから破棄した後、ComfyUIのモデルを読み込ませています。
どうしても現状の環境だと、両方のモデルを読み込んで動かすのは厳しいので、LLM か画像生成を別デバイスで動かせたらなぁと思っていました。

そして、以前購入した Macbook Pro では Ollama をインストールして使っていました。
Macbook Pro購入についてはこちら。

LM Studioがサーバとして起動させられるなら、Ollama もいけるのでは?
と思い調べてみたら実現可能だったので方法をメモしておきます。

構成

ここでは2台のデバイスが出てきて、それぞれに設定することがあるので以下のようにかき分けます。

  • Ollama サーバPC
    • Ollama を起動し、LLMをローカルで動かしているデバイス
    • ここでは、Macbook Proを使います
  • リモートPC
    • Ollama サーバへプロンプトを投げて答えを受け取るデバイス
    • ここでは、Windowsを使います

それぞれ設定していきます。
今回は、以前記載した Obsidian の Copilot を使った例をもとに記載します。
Ollama サーバPCへリクエストするように設定しますが、適宜使いたい形に読み替えてください。

Ollama サーバPCの準備

Ollama には 外部からアクセスを受け付けるよう設定することができるので、その設定をします。

Ollama のインストール

公式サイトは以下です。

公式サイトからのダウンロードでも問題ないですが、
ここでは、Homebrewを使ってインストールします。

$ brew install ollama

使いたいモデルを取得する

サイズが大きいので、他の設定をしている間に使いたいモデルを取得しておきましょう。

$ ollama pull gpt-oss:20b # モデル名は適宜読み替えてください

取得可能なモデルはこちらで確認できます。

環境変数の追加

0.0.0.0もしくは、実際のIPアドレスをOLLAMA_HOSTに指定します。
シェルの設定ファイルに書く他、次項のように一時的に指定することも可能です。

OLLAMA_HOST=0.0.0.0 # もしくは実際のIPアドレス

Ollamaをサーバとして動かす

以下のコマンドで Ollama をサーバとして起動させます。

$ ollama serve

# 環境変数を一時的に指定することも可能です
$ OLLAMA_HOST="0.0.0.0" ollama serve

この時点で、ブラウザ等からアクセスすると「Ollama is running」と表示されるはずです。

これにて Ollama サーバの準備は完了です。
続いて、接続するリモートPCの方を設定していきます。

なお、OLLAMA_HOSTを0.0.0.0として公開すると、全ネットワークからアクセス可能となります。
公衆 WiFi 等での利用は控えるか、適宜リバースプロキシ等を立てて認証する仕組みを設けることを検討してください。
ここでは、ひとまず動かすところを目的としているので、認証やセキュリティ関連の話題はスキップします。

リモートPCの設定

前述の通り、ここでは Obsidian の Copilot から Ollama サーバへ問い合わせるように設定します。
Obsidian と LLM を連携させる方法は、以前の記事をご覧ください。

Copilot プラグインの設定

Copilot プラグインの設定を開き、Modelタブから「Add Model」をクリック。
設定項目は以下の通り。

  • Model Name: 具体的なモデル名を記載(例: gpt-oss:20b など)
  • Display Name: チャット欄で指定するための名前。オプション (例: ollama-mac など)
  • Provider: Ollama
  • Base URL: http://<Ollama サーバのIPアドレス>:11434
  • API Key: 空欄でよい
  • Model Capabilities: 適宜設定してください

設定後は、Test ボタンを押して接続確認しましょう。
接続が成功すれば設定完了です。

使ってみる

チャット欄に聞きたいことを入力して送信してみましょう。
問題なく答えが返ってくれば完了です。

おまけ

Ollama サーバを実行するとき、毎回コマンドを実行するのは面倒、という場合は以下の方法で自動的に起動させることが可能です。

$ emacs /opt/homebrew/opt/ollama/homebrew.mxcl.ollama.plist

EnvironmentVariablesのところにOLLAMA_HOSTの設定を追記しましょう。

...
<key>EnvironmentVariables</key>
<dict>
 <key>OLLAMA_HOST&</key>
 <string>0.0.0.0</string>
...

plistを編集したら、以下のコマンドで実行します。

# 自動起動させる
$ brew services start ollama

# すでに自動起動させている場合は再起動
$ brew services restart ollama

これで、mac 起動時に Ollama をサーバとして起動させることができます。

まとめ

今回は、Ollama を内部ネットワークに公開し、別デバイスから参照できるよう設定しました。
ようやく買ったMacbook Proの使い道の一つが定まった気がします。

現在この記事をMacで書きながら、Win端末ではベンチマークを回しています。
これまではベンチマークを回している間に何もできず時間を持て余していましたが、
ベンチマーク中にドライバーの更新履歴をまとめたりできるようになりました。
これもだいぶありがたいです。
高かったけど、PCは多くて困ることはないので買ってよかったな、という感じです。

今回は、ここまで。

おわり

Posted by しきゆら