「node-red-contrib-ollama」を使って Node−RED で Ollama を使ったローカルLLM

## はじめに

以前から [MLX LM](https://github.com/ml-explore/mlx-lm)、[MLX-VLM](https://github.com/Blaizzy/mlx-vlm) を使ったローカルLLM をよく試していたのですが、最近 Ollama も試し始めました。

そんな中、Node-RED で Ollama を扱う時に使うと便利な、以下の「node-red-contrib-ollama」を見かけたので、軽く試してみました。

●node-red-contrib-ollama (node) - Node-RED
　https://flows.nodered.org/node/node-red-contrib-ollama

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/456b763e-78ec-4a65-90fa-96919c140de1.png)



### 試す環境・モデル

今回の内容を試す環境は以下の記事に書いた時のものと同じで、具体的にはこの後に列挙した内容です。

- [M4 の Mac mini で ローカルLLM： Ollama で Gemma 3 を軽く試す（テキスト入力、画像も入力するマルチモーダル） - Qiita](https://qiita.com/youtoy/items/d921bfa19794e328c7e1)
- [Mac mini で ローカルLLM： Ollama で「REST API」とライブラリ「ollama-js」を試す（モデルは Gemma 3） - Qiita](https://qiita.com/youtoy/items/d835920f1bd26dae57fd)


- 環境
   - 機器
      - M4 Mac mini
   - Ollama で使ったモデル
      - Gemma 3： gemma3:12b-it-q8_0


## 実際に試してみる

それでは実際に試していきます。


### 利用可能なノード

まずは「[node-red-contrib-ollama](https://github.com/jakubburkiewicz/node-red-contrib-ollama)」で利用可能なノードの情報を見てみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/e5c63107-d686-43b1-9fa8-371846e4ddcc.png)

ノードの種類はけっこう多いです。

今回はテキストでのちょっとしたやりとりを試してみるだけなので、chat か generate のどちらかを使う感じになりそうです。


### ノードを追加する

それでは、Node-RED を起動してノードを追加します。

以下は、起動済みの Node-RED でメニューを開いたところです。「パレットの管理」を選びます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/4545302a-0966-4685-a301-cd08b6397da6.png)


「ノードの追加」でキーワードを入れてノードを検索します。以下は ollama というキーワードを入れた状態です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/881ad654-128f-4fe7-8276-79ae5c34c792.png)

「node-red-contrib-ollama」が出てきたので、それを選んで追加しました。


#### ノードを追加した後の状態

以下のように、ノードを追加できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/7b2e16fe-ae3d-487a-8b47-3ff7dcdf7283.png)

この後は、「ollama-generate」を使ってお試しを進めていきます。



### フローを作る

ノードを追加できたのでフローを作ります。以下のようなシンプルな構成にしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/4d898f7f-b33f-4c67-8b60-c619ebfa68b9.png)


#### ノードの設定

「ollama-generate」ノードの設定を追加します。

以下のように、Format・Model・Prompt の部分を設定しました。Model で入力している Gemma 3 のモデルは、Ollama自体のお試しで動作確認ができているものです（その際、モデルもダウンロード済み）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/80f9ca90-b746-49a1-9b04-75974b0c1f57.png)


さらに、以下の Server の設定を追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/086ea25b-27b8-402f-bc83-696d28e6f655.png)


設定を開いたらデフォルトで以下が入力されています。このままの内容で追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/3695516e-899b-4c91-badd-88927133ff10.png)


Server の設定追加後は、「node-red-contrib-ollama」ノードの設定は以下のようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/131ef1a4-7546-48ec-8a08-c7a19aea1914.png)


あとは、「node-red-contrib-ollama」ノードの前につなげている「Inject」ノードの設定を少し編集します。 `msg.payload` にテキストを入力できるように設定し、テキストとして Ollama にわたすプロンプトを入れています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/769d08ab-11e5-45d0-aa2e-72476f1203b9.png)



### デプロイと処理の実行

あとはデプロイをして、処理を実行します。処理を実行した結果は以下のとおりです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/e346de4b-355d-47c7-8f62-7ba273e2f91d.png)

無事、デバッグ出力に Ollama からのレスポンスが返ってきているのが確認できました。