Flowise : drag-and-drop で AI エージェントを構築する Ollama
Flowiseを使うと、LLMエージェントの構築をキャンバス上でブロックを組み立てる作業に変えられます。LangChainのコードを書く代わりに、ノードをドラッグし、接続線でつなぎ、内蔵チャットでその場でテストできます。FlowiseとOllamaを組み合わせれば、チャットフロー、ツールを使うエージェント、RAGパイプラインをすべてローカルで実行でき、リクエストがマシンの外に出ることもありません。このガイドでは、インストールから始め、最初のチャットフローを構築し、文書を使ったRAGを追加した後、サイトに埋め込めるチャットボットを公開します。
#なぜFlowiseか
Flowiseは、LangChainとLangGraphをベースに構築されたオープンソースのビジュアル構築ツール(Apache 2.0ライセンス)です。モデル、メモリ、リトリーバー、ツールという同じ構成要素を、接続するノードとして提供します。これにより、Pythonで数百行を要するエージェントのプロトタイプを、ひと目で把握できるグラフとして表現できます。
本サイトで紹介しているもう一つのノーコードプラットフォーム、Difyと比べると、Flowiseはより細かなオーケストレーションを重視しています。Difyがアプリ、プロンプトセット、チーム管理など、整った製品体験を提供するのに対し、FlowiseではLangChainの内部の仕組みが見えるため、エージェントの各段階を理解して調整したい場合に、より適しています。どちらも同じ方法でOllamaに接続できます。
- 100 % ローカル
- Ollama と組み合わせると、トークンもドキュメントもクラウドAPIへ送られません。センシティブなデータやオフライン使用に最適です。
- 迅速なイテレーション
- テストチャットはキャンバスに統合されています。ノードを変更すると、即座に効果を確認でき、再デプロイは不要です。
- API およびウィジェットの公開
- 各チャットフローは自動的にRESTエンドポイントおよび埋め込み可能なウェブウィジェットになります。バックエンドを書く必要はありません。
- 拡張可能
- テンプレートマーケットプレイス、JavaScriptでカスタマイズされたノード、ツールの統合(ウェブ検索、計算機、HTTP呼び出し)。
#前提条件
このガイドでモデルの導入まで、キットでエディタ内でコードを書くコパイロットの導入まで進められます。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 生涯アップデート
Flowiseは軽量です:Ollama と読み込まれたモデルがメモリを消費します。対象のLLMを快適に動作させるためのマシンを用意してください。
- Ollama インストール済み
- デーモンが動作し、http://localhost:11434(デフォルト)で接続を待ち受けている必要があります。「ollama list」で確認してください。
- チャットモデル
- エージェント向けのツール呼び出しをサポートするモデル:Qwen 3.5 8B、Granite 4.2 8BまたはMistral Small 24B(VRAMに応じて選択)(7B ≈ 5 GB、14B ≈ 9 GB、24B ≈ 16 GB、Q4_K_M)。
- 埋め込みモデル
- RAG 用には「nomic-embed-text」または「mxbai-embed-large」が推奨され、軽量で Ollama から利用可能です。
- Node.js 18.15以降またはDocker
- Flowiseはnpmまたはコンテナでインストールできます。整理された構成で、データを永続化できるデプロイにはDockerが推奨されます。
#Flowise をインストールする
2つの方法があります。テストにはnpxが最も速く、データが永続化する長期的な使用にはDockerが推奨されます。
次に、ブラウザで http://localhost:3000 を開いてください。キャンバスの画面が表示されます。マウントされたボリューム(~/.flowise)にはチャットフローとキーが保存され、コンテナを再起動しても保持されます。
#OllamaをFlowiseに接続する
「ChatOllama」ノードはFlowiseとローカルデーモンの間の橋渡しです。重要なのはベースURLです。これはFlowiseが起動される方法によって異なります。
- 01ChatOllamaノードを追加するキャンバスで、ノードパネルを開き、「Chat Models」カテゴリから「ChatOllama」をワークスペースにドラッグしてください。
- 02ベースURLを入力Flowiseをネイティブ環境(npx/npm)で実行している場合は、http://localhost:11434 を使用してください。Dockerで実行している場合は、http://host.docker.internal:11434 を使用してください。コンテナからは、ホストの「localhost」にはアクセスできません。
- 03モデルの選択「Model Name」フィールドに、Ollamaにロードされたモデルの正確な名前を入力してください。たとえば「qwen3.5:8b」または「mistral-small」など。
- 04パラメータの設定Temperatureを調整し(チャットでは0.7、事実に基づくRAGでは0.1〜0.3)、必要に応じて詳細オプションのnum_ctxでコンテキストサイズも調整してください。
#チャットフローの重要なノード
チャットフローは左から右へ読んでいきます。供給側のノード(モデル、メモリ、ツール)が「チェーン」または「エージェント」ノードに入力を渡し、そのノードが応答を生成します。ほぼすべてのフローに登場する少数の基本ブロックを以下に紹介します。
- Chat Model(ChatOllama)
- 脳:応答を生成するLLM。常に存在します。
- Memory (Buffer Memory)
- 会話履歴を保持し、エージェントがやり取りのたびに会話の流れを維持できるようにします。
- Prompt Template
- システムの指示や質問のフォーマットを定義します。ここではモデルに役割と枠組みを付与します。
- Chain / Agent
- 終端ノード。単純なチャットには「Conversation Chain」、モデルがツールを呼び出すかどうかを判断する必要がある場合には「Tool Agent」を使用します。
- Tools
- 外部機能:電卓、ウェブ検索、HTTPリクエスト、ファイルの読み込み。エージェントと連携することで、エージェントが行える範囲を拡張します。
- ドキュメントローダーとベクトルストア
- RAGを構成する機能:文書を読み込み、分割し、インデックス化して、文書の内容について質問できるようにします(後述)。
#最初のチャットフローを構築する
最も簡単なものから始めましょう。Ollamaに接続した、記憶機能を備える対話型アシスタントです。これが、この後のすべての土台になります。
- 01新しいChatflowを作成ホーム画面のChatflowsタブで「Add New」をクリックしてください。空のキャンバスが開きます。
- 023つの基本ノードを配置するキャンバスに「ChatOllama」、「Buffer Memory」、「Conversation Chain」をドラッグしてください。
- 03ノード同士を接続するChatOllamaの出力をConversation Chainの「Chat Model」入力に、Buffer Memoryの出力を同じチェーンの「Memory」入力に接続してください。
- 04システムプロンプトをカスタマイズConversation ChainでSystem Message欄を開き、「あなたはフランス語で簡潔に回答する技術アシスタントです」という役割を設定してください。
- 05内蔵チャットでテストする右上のチャットアイコンをクリックし、質問を入力してから、最初の質問に依存する2番目の質問を入力して、メモリが正常に動作することを確認してください。
#ドラッグアンドドロップで完全なRAGを実現
RAG(Retrieval-Augmented Generation、検索拡張生成)を使うと、モデルは手元のドキュメントに基づいて回答できます。Flowiseでは、すべての操作をキャンバス上で行います。ファイルを読み込み、ベクトル化し、リトリーバーを質問応答チェーンに接続します。
- 01ドキュメントの読み込みデータソースに合った「Document Loader」ノード(PDF File、Text File、Folder)を追加してください。このノードは元のコンテンツを読み込みます。
- 02チャンク分割「Recursive Character Text Splitter」をローダーに接続してください。チャンク間の文脈を保つため、チャンクのサイズを約1000文字、重複部分を100文字に設定してください。
- 03埋め込みベクトルの生成「Ollama Embeddings」ノードを追加し、「nomic-embed-text」モデルと、ChatOllamaと同じベースURLを設定してください。
- 04ベクトルストアへのインデックス作成「In-Memory Vector Store」(手軽に始められます)、またはデータを永続化したい場合は「Chroma」をドラッグして配置してください。そこにsplitterとembeddingsを接続してください。
- 05Retrieval QA Chainを接続するベクトルストア(リトリーバーとして)とChatOllamaを「Retrieval QA Chain」または「Conversational Retrieval QA Chain」ノードに接続することで、会話の記憶を維持できます。
- 06自分のドキュメントについて質問する保存してチャットを開き、ファイル内に答えがある質問をしてください。これでモデルがあなたのコンテンツを引用するようになります。
#チャットボットの公開および統合
チャットフローが満足できるものになったら、Flowiseはバックエンドのコードを1行も書かずに2つの方法で公開します:REST APIと、サイトに貼り付けられるWebウィジェットです。
キャンバスの右上にある「API Endpoint」または</>アイコンをクリックしてください。Flowiseは予測URLおよびコピー可能な例を生成します。エンドポイントは常に同じ構造を持ち、チャットフローのユニークな識別子を含みます。
ウェブページに組み込むには、「Embed」タブで提供されるスクリプトのコード片を、各ページの終了タグ </body> の直前に配置します。ウィジェットには、色、挨拶メッセージ、アバターを自由に設定できるフローティング型のチャットバブルが表示されます。
#よくある落とし穴と対処法
- ChatOllamaでの「fetch failed」
- ベースURLが正しくありません。Dockerではlocalhostではなく、host.docker.internal:11434を使ってください。Ollamaが実際に起動していることも確認してください(ollama list)。
- モデルが一度もツールを呼び出さない
- LLMがツール呼び出しに対応していないか、十分に対応していません。ツール呼び出し用に学習された最近のモデル(Qwen 3.5、Mistral Small)に切り替え、単純なチェーンではなく「Tool Agent」を使っていることを確認してください。
- 応答が遅い、または途中で途切れる
- コンテキストがVRAM容量に対して大きすぎるため、モデルの一部がCPU側にオフロードされます。num_ctxやRAGのチャンクサイズを小さくするか、より小さなモデルを選んでください。
- RAGで関連性のある情報が見つからない
- チャンクのサイズが不適切または埋め込みモデルが誤っている場合があります。チャンクのサイズを調整し、検索されるドキュメントの数(top-k)を増やすとともに、インデックスが正しく作成されたかを確認してください。
- データは再起動時に消えます
- Dockerでボリュームをマウントしていない場合、すべてが失われます。必ず「-v ~/.flowise:/root/.flowise」を設定し、メモリ上ではなく永続的なベクトルストアを使用してください。
#さらに詳しく
Flowiseは単なるビジュアルレイヤーに過ぎません。エージェントの品質は、主にその下層にあるモデルとスタックに依存します。サイトの三つのガイドがこの内容を補完しています。Flowiseを接続する前にOllamaを適切にインストールする方法、DifyのノーコードアプローチとFlowiseのアプローチを比較する方法、そしてキャンバスが自動化する内容を微調整するためにPythonでのRAGの仕組みを理解する方法です。
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。