「プログラミングなしでローカルLLMの会話・RAG・エージェントをチームに使わせたい」
そんな悩みを抱えるインフラ担当者や情シス担当者は多い。この記事では、OllamaとFlowiseを組み合わせ、コードを一切書かずにローカルLLMのAIワークフローを構築する手順を解説する。Flowiseのビジュアルエディタ上でノードをつなぐだけで、会話チャット・PDF質問応答(RAG)・エージェント(ツール呼び出し)が動く環境を社内に用意できる。インストールから本番向け認証設定・よくあるトラブル対処まで、手順を順番に示す。
この記事のポイント
・FlowiseはChatOllamaノードを設定するだけでOllamaと即接続でき、コードは不要
・npm install -g flowise またはDockerで5分以内に起動できる
・PDF読み込み+nomic-embed-textでRAGフローをビジュアルエディタだけで構成できる
・本番環境ではsystemdサービス化とNginxリバースプロキシで安定運用する
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
FlowiseはOllamaと組み合わせる最有力のノーコードAIフロー構築ツールだ
Flowiseは、LangChainのノードをブラウザのキャンバス上に並べてAIフローを組み立てるオープンソースツールだ。GitHubスター数は4万超(2026年7月時点)で、個人から企業まで幅広く使われている。最大の特徴は、ChatOllamaノードが標準搭載されている点だ。OllamaのAPIエンドポイント(デフォルト: http://localhost:11434)を指定するだけで、既存のOllamaモデルをLLMとして使えるようになる。別途APIキーは不要で、インターネット接続もしない。
Open WebUIがチャットUI特化であるのに対し、Flowiseはフロー設計ツールだ。会話履歴の管理方法・ベクターDBの選択・ツール統合といった設計の自由度がFlowiseの強みである。プログラミングスキルがなくても、ドラッグ&ドロップで本格的なAIパイプラインを組める。
「社内でChatGPTが使えないが、何かしらのAIツールをチームに使わせたい」という状況(社内ChatGPT禁止時の代替手段を参照)において、Flowiseはノーコードの即戦力になる。LangChainをPythonで書いた場合と同等の処理を、GUIだけで実現できる。
Flowiseをインストールする方法
Flowiseのインストールには、npmを使う方法とDockerを使う方法の2択がある。本番環境ならDockerが管理しやすい。開発・検証目的ならnpmが手軽だ。Node.js 18以上がインストール済みであることを前提とする。バージョンを確認してから進める。
# Node.jsバージョン確認(18以上が必要) $ node -v v20.14.0 # npmでFlowiseをグローバルインストール $ npm install -g flowise # インストール確認 $ flowise --version 2.2.0
# Flowise起動(Basic認証あり) $ FLOWISE_USERNAME=admin FLOWISE_PASSWORD=yourpassword flowise start --PORT=3000 info: Start Flowise... info: Listening on port 3000
# /opt/flowise/docker-compose.yml version: '3.1' services: flowise: image: flowiseai/flowise:latest restart: always environment: - PORT=3000 - FLOWISE_USERNAME=admin - FLOWISE_PASSWORD=yourpassword - DATABASE_PATH=/root/.flowise - APIKEY_PATH=/root/.flowise - LOG_PATH=/root/.flowise/logs volumes: - /opt/flowise/data:/root/.flowise ports: - "3000:3000" $ cd /opt/flowise $ docker compose up -d $ docker compose logs -f flowise info: Start Flowise... info: Listening on port 3000
1. npmインストール時のPATH設定
npmのグローバルインストール先がPATHに含まれていない場合、`flowise: command not found` になる。以下で確認して解消する。# npmグローバルバイナリのパスを確認 $ npm bin -g /home/ubuntu/.nvm/versions/node/v20.14.0/bin # ~/.bashrc に以下を追記してPATHを通す export PATH="$PATH:/home/ubuntu/.nvm/versions/node/v20.14.0/bin" $ source ~/.bashrc $ flowise --version 2.2.0
2. OllamaとFlowiseが同一サーバーにある場合の確認
Ollamaがすでに動いているか確認してから進む。未構築の場合はUbuntu ServerでのOllama構築ガイドで環境を整えておく。# Ollamaの稼働確認 $ curl http://localhost:11434/api/tags {"models":[{"name":"llama3.3:70b-instruct-q4_0","modified_at":"...","size":43000000000}]}
ChatOllamaノードでOllamaをFlowiseに接続する手順
Flowiseダッシュボードにアクセスしたら、「Chatflows」メニューから新規フローを作成する。キャンバス右上の「+ Add Node」ボタンをクリックすると、ノード一覧が表示される。検索ボックスに「Ollama」と入力すると「ChatOllama」ノードが見つかる。これをキャンバスにドラッグする。
ChatOllamaノードの設定項目は以下の手順で行う。
1. Base URLを設定する
ChatOllamaノードの「Base URL」欄に `http://localhost:11434` を入力する。Flowiseが別サーバーにある場合は `http://OllamaサーバーのIP:11434` を指定する。DockerコンテナのFlowise内からlocalhostのOllamaを参照する場合は `http://host.docker.internal:11434` を使う。Linuxでは `docker run` に `--add-host=host.docker.internal:host-gateway` オプションを追加する必要がある。
2. Model Nameを指定する
「Model Name」欄に使用するOllamaモデル名を量子化タグ付きで正確に入力する。利用可能なモデルは `ollama list` で確認する。# 使用可能なモデルの一覧確認 $ ollama list NAME ID SIZE MODIFIED llama3.3:70b-instruct-q4_0 abc1234567ab 43 GB 2 days ago gemma3:12b-instruct-q8_0 def2345678cd 13 GB 3 days ago mistral:7b-instruct-q4_0 ghi3456789ef 4.1 GB 1 week ago
3. テスト接続を確認する
ChatOllamaノードの右側に「Chat Input」ノードと「Chat Output」ノードを追加し、それぞれをChatOllamaにつなぐ。キャンバス右上の「Save」→「Test Chat」で動作確認できる。「llama3.3:70b-instruct-q4_0 responded」のようなメッセージが返れば接続成功だ。会話チャットフローを最初から構築する手順
最もシンプルなフローは「Chat Input → ChatOllama → Chat Output」の3ノード構成だ。ここに会話履歴を持たせる場合は「BufferMemory」ノードを追加する。知人のインフラエンジニアが最初に作ったFlowiseフローも、まさにこの3ノード構成だったと言っていた。シンプルながら、社内FAQボットとして十分機能するという。
1. 必要なノードを追加する
キャンバスに以下の4ノードを追加する。・Chat Input
・ChatOllama(Base URL・モデル名を設定済み)
・BufferMemory(セッション内の会話履歴を保持)
・Chat Output
接続方法: Chat Input の「Question」ポートを ChatOllama の「Human Message」ポートへ接続。BufferMemory の「Memory」ポートを ChatOllama の「Memory」ポートへ接続。ChatOllama の「AI Message」ポートを Chat Output へ接続。
2. システムプロンプトを設定する
ChatOllamaノードの「System Message」欄に業務用の指示を記入する。社内ITサポートボット向けの例を示す。# System Messageの例(社内ITサポートボット用) あなたは社内ITサポートの担当者です。 質問に対して、以下のルールで回答してください。 1. 回答は日本語で200字以内にまとめる 2. 手順を示す場合は番号付きリストで示す 3. わからない場合は「担当者にエスカレーションします」と答える
3. フローを保存してAPIエンドポイントを取得する
「Save」ボタンでフローを保存後、キャンバス右上の「</> API Endpoint」ボタンをクリックすると、このフローへのREST APIエンドポイントが発行される。このエンドポイントを使えば、Slack BotやTeams Bot、社内システムからフローを呼び出せる。コードを書く必要がある部分はAPIへのHTTPリクエストだけだ。FlowiseでRAGフローを構築する手順|PDFをローカルで質問応答させる
RAG(Retrieval Augmented Generation)フローを組む場合は、ドキュメントローダー・テキスト分割・ベクターストア・エンベディングモデルの4種類のノードが追加で必要になる。モデル選定についてはローカルLLMのモデル比較ガイドも参考にしてほしい。エンベディング専用モデルはLLMとは別途pullしておく。
1. エンベディングモデルをOllamaにpullする
RAGにはテキストをベクトル化するエンベディングモデルが必要だ。Ollama上でpullできる代表的なものを示す。# エンベディングモデルのpull(軽量・英語中心) $ ollama pull nomic-embed-text pulling manifest... pulling gguf: 100% ████████████████ 274 MB / 274 MB verifying sha256 digest... done writing manifest... done success # pullしたモデルを確認 $ ollama list | grep embed nomic-embed-text:latest 0a109f422b47 274 MB 1 minute ago
2. RAGフローのノード構成
Flowiseキャンバスに以下のノードを追加する。・PDF File Loader(またはDirectory Loader)
・Recursive Character Text Splitter(chunk size: 500、overlap: 50)
・OllamaEmbeddings(Model Name: nomic-embed-text)
・In-Memory Vector Store(開発用)またはChroma(本番用)
・ChatOllama(会話用LLM)
・Conversational Retrieval QA Chain
・Chat Input / Chat Output
接続順: PDF Loader >> Text Splitter >> OllamaEmbeddings >> Vector Store。Vector StoreとChatOllamaをConversational Retrieval QA Chainに接続。Chat Input >> QA Chain >> Chat Output。
「Upsert」ボタンでPDFを読み込ませた後、「Test Chat」でPDFの内容に関する質問を投げると、ローカルLLMが文書から回答を生成する。
3. ChromaをDockerで起動してVector Storeに使う
本番環境では永続化できるChromaを使う。以下のコマンドで単体起動できる。# Chroma単体で起動する場合 $ docker run -d \ -p 8000:8000 \ -v /opt/chroma/data:/chroma/chroma \ --name chroma \ chromadb/chroma:latest # 起動確認 $ curl http://localhost:8000/api/v1/heartbeat {"nanosecond heartbeat":1720860000000000000}
FlowiseでAIエージェントを構成する手順|ツールをOllamaに呼び出させる
エージェントフローでは、LLMがリクエスト内容に応じてツールを自律的に呼び出す。Flowiseには「Calculator」「Web Browser」「Custom API Tool」といったツールが標準搭載されている。現場で聞いた話だと、在庫確認APIをCustom API Toolとして登録したところ、「◯◯の在庫は?」という自然言語の質問に対してLLMが自動でAPIを叩いて答えを返すようになったという。情シスがAPIの仕様書を書くだけで、アプリ開発なしにLLM+社内APIの連携が実現できた。
1. Tool Agentノードを設定する
Flowiseの「Agentflows」メニューから新規エージェントフローを作成し、「Tool Agent」ノードをキャンバスに追加する。以下を接続する。・ChatOllama(tool-callingをサポートするモデルを指定)
・Calculator Tool(数値計算の自動化)
・Chat Input / Chat Output
tool-callingに対応するOllamaモデルの確認方法を示す。
# tool-calling対応を確認する(Modelfileにtool記述があるか確認) $ ollama show llama3.3:70b-instruct-q4_0 --modelfile | grep -i "tool" # TEMPLATE内にtool_callsの記述が含まれていれば対応している # tool-callingに対応した代表的なモデルのpull例 $ ollama pull mistral:7b-instruct-q4_0 pulling manifest... pulling gguf: 100% ████████████████ 4.1 GB / 4.1 GB success
2. カスタムAPI Toolを追加する
社内APIを呼び出すカスタムツールを作成する場合は、FlowiseのUI上でOpenAPI仕様(JSON/YAML)を貼り付けるだけで登録できる。コードは不要だ。社内の在庫管理APIのエンドポイントをOpenAPI形式で定義すると、LLMが「在庫を確認して」という指示に対して自動でAPIを叩いて結果を返すようになる。
3. 実行確認と注意点
Tool AgentでLLMがツールを呼び出す際、モデルがtool-callingに対応していないと「I cannot access tools」のような応答が返ってくる。その場合は `llama3.3:70b-instruct-q4_0` または `mistral:7b-instruct-q4_0` など対応モデルに切り替える。また、エージェントが自律的にAPIを叩く性質上、本番環境では呼び出し対象APIに認証・レートリミットを設定しておくことを強く推奨する。
Flowiseを本番環境で安定運用するための設定|認証・systemd・バックアップ
検証が終わったら本番運用に移行する。最低限、systemdサービス化とデータバックアップは行う。現場のインフラエンジニアに話を聞くと、「とりあえず動く」状態で放置することが最大のリスクだという。Flowiseにはフロー定義・APIキー・ベクターDBデータが集約されるため、定期バックアップは欠かさない。
1. systemdサービスとして登録する
# /etc/systemd/system/flowise.service [Unit] Description=Flowise AI Workflow After=network.target [Service] Type=simple User=ubuntu WorkingDirectory=/opt/flowise Environment=FLOWISE_USERNAME=admin Environment=FLOWISE_PASSWORD=ChangeThis_SecurePassword Environment=PORT=3000 Environment=DATABASE_PATH=/opt/flowise/data Environment=APIKEY_PATH=/opt/flowise/data Environment=LOG_PATH=/opt/flowise/data/logs ExecStart=/usr/local/bin/flowise start Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
# サービスの有効化と起動 $ sudo systemctl daemon-reload $ sudo systemctl enable flowise $ sudo systemctl start flowise # ステータス確認 $ sudo systemctl status flowise * flowise.service - Flowise AI Workflow Loaded: loaded (/etc/systemd/system/flowise.service; enabled) Active: active (running) since Mon 2026-07-13 09:00:00 JST; 5s ago
2. Nginxリバースプロキシでポート3000を隠す
外部公開する場合はNginxをリバースプロキシに立てる。FlowiseはWebSocketを使うため `proxy_http_version 1.1` とUpgradeヘッダの設定が必須だ。# /etc/nginx/conf.d/flowise.conf server { listen 80; server_name flowise.example.internal; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_read_timeout 300s; proxy_connect_timeout 300s; } } $ sudo nginx -t nginx: configuration file /etc/nginx/nginx.conf test is successful $ sudo systemctl reload nginx
3. データのバックアップをcronで自動化する
Flowiseのフロー定義・APIキー・ベクターDBデータはすべて `DATABASE_PATH`(上記では `/opt/flowise/data`)に保存される。このディレクトリをcronでバックアップする。# /etc/cron.d/flowise-backup # 毎日午前2時にバックアップ(バックアップ先は実環境に合わせる) 0 2 * * * ubuntu tar -czf /backup/flowise-$(date +\%Y\%m\%d).tar.gz /opt/flowise/data # 7日より古いバックアップを削除 0 3 * * * ubuntu find /backup -name "flowise-*.tar.gz" -mtime +7 -delete
よくあるトラブルと対処法
ChatOllamaが接続できない(ECONNREFUSED)
FlowiseがDockerコンテナ内で動いている場合、`localhost:11434` はコンテナ内のlocalhostを指してしまうためOllamaに届かない。対処: `OLLAMA_BASE_URL=http://host.docker.internal:11434` を環境変数に設定する。Linuxでは `docker run` に `--add-host=host.docker.internal:host-gateway` オプションを追加する。
または `docker network` を使い、FlowiseとOllamaを同一ネットワーク内に置いてサービス名で参照する方法も有効だ。
RAGの回答精度が低い(無関係な内容を返す)
テキスト分割のchunk sizeが大きすぎるか、embeddingモデルとLLMのセマンティック空間が合っていない場合に起きやすい。対処: chunk sizeを500>>300に下げ、overlapを100程度にする。日本語PDFの場合、`nomic-embed-text` は英語寄りのため `mxbai-embed-large` を試すと精度が改善するケースがある。
# 日本語寄りエンベディングモデルのpull $ ollama pull mxbai-embed-large pulling manifest... pulling gguf: 100% ████████████████ 670 MB / 670 MB success # モデル確認 $ ollama list | grep mxbai mxbai-embed-large:latest 468836d0d2dd 670 MB 1 minute ago
Flowiseがクラッシュする(OOMエラー)
RAGのUpsert(ドキュメント読み込み)時に大量のPDFを一括処理するとメモリ不足になる。systemdのサービスに `MemoryMax=4G`(利用可能なRAMに応じて調整)を追加し、Upsertはバッチサイズを小さくして分割処理する。Tool AgentでツールがCallされない
使用しているOllamaモデルがtool-callingに対応していない場合に起きる。FlowiseのTool Agentはfunction calling / tool-calling対応モデルのみで動作する。`llama3.3:70b-instruct-q4_0` または `mistral:7b-instruct-q4_0` に切り替えることで解消するケースが多い。まとめ
FlowiseとOllamaを組み合わせると、Pythonを書かずにローカルLLMの本格的なAIワークフローを構築できる。今回の手順をまとめる。| 作業 | コマンド / 設定 |
|---|---|
| Flowiseインストール(npm) | npm install -g flowise |
| Flowise起動 | flowise start --PORT=3000 |
| OllamaへのBase URL指定 | http://localhost:11434 |
| エンベディングモデルpull | ollama pull nomic-embed-text |
| Chroma起動(本番RAG用) | docker run -d -p 8000:8000 chromadb/chroma:latest |
| systemdサービス化 | systemctl enable flowise && systemctl start flowise |
| Nginx設定(WebSocket対応) | proxy_http_version 1.1 + Upgradeヘッダ設定 |
Flowiseのノーコード設計は「まずAIを動かして使ってみたい」という段階に最適だ。LangChainの細かいチューニングが必要になったときも、Flowiseで設計したフローをエクスポートしてPythonコードに移行する選択肢が残る。ローカルLLMの活用を組織に広げる第一歩として、OllamaとFlowiseの組み合わせは現時点で最もバランスの取れた選択肢の一つだと言える。
OllamaとFlowiseの構築を2日間のハンズオンで体験する
FlowiseとOllamaの連携は、実機で手を動かして初めて感覚がつかめる部分が多い。RAGフローの精度調整やエージェントのツール設定は、ドキュメントを読むだけでは再現できないノウハウがある。実機GPU環境で手を動かしながら習得したい方向けに、「ローカルAIマスターセミナー」を開催しています。
少人数(最大8名)ZOOMハンズオン形式で実施しています。
・Ubuntu ServerでローカルLLMを構築する方法|Ollamaで機密データを外に出さず業務AIを動かす完全ガイド
・社内でChatGPTが使えないときの代替手段|機密データを守るローカルLLMという選択肢
・ローカルLLMのモデルを比較する方法|Llama3.3・Mistral・Gemma・Phi-4をUbuntuで使い分けるポイント
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます