Flowise:ドラッグ&ドロップUIでチャットボット・RAGパイプラインを構築する — コード不要

Artificial Intelligence tutorial - IT technology blog
Artificial Intelligence tutorial - IT technology blog

従来のAI開発における課題

昨年初めにRAGアプリケーションの構築を試み始めました。正直に言うと、最初の段階はかなり時間がかかりました。シンプルなパイプライン(PDFの読み込み → チャンク分割 → 埋め込み → ベクターストアへの保存 → クエリ)をセットアップするだけで、何百行ものPythonコードを書き、LangChainと依存ライブラリ間のバージョン競合をデバッグし、ChromaからQdrantに切り替えたいときにはリファクタリングを強いられました。

問題は難しさではありませんでした。パイプラインのコンポーネントを一つ変更するたびに、複数箇所のコードを修正し、再実行し、再テストしなければならないことが問題でした。開発者ならなんとかなりますが、クライアントに素早くプロトタイプを見せたい場合や、コードを書けないチームの内部ツールを作りたい場合 — これは本当の壁でした。

Flowiseはまさにその問題を解決するために生まれました。

Flowiseとは何か、なぜ他と違うのか

Flowiseは、ドラッグ&ドロップのインターフェースを通じてLLMワークフローとチャットボットを構築できるオープンソースツールです。コードを書く代わりに、「ノード」(LLM、ドキュメントローダー、ベクターストア、メモリ、ツールなど)をキャンバスにドラッグして接続し、完全なフローを作り上げます。

LangFlowやn8nのような類似ツールと比べて、Flowiseにはいくつかの特徴的な強みがあります:

  • 完全ローカルで動作 — クラウドが不要で、企業の機密データを扱う場面にも適している
  • REST APIを自動公開 — フローを保存するとすぐにAPIエンドポイントが利用でき、統合が容易
  • Ollamaとのネイティブ統合 — 100%ローカルのAIスタックを構築でき、APIコストがゼロ
  • ChatflowとAgentflowの両方をサポート — シンプルなチャットボットから複雑なマルチエージェントワークフローまで対応

Flowiseの2種類のフロー

  • Chatflow:線形パイプライン — 入力が固定された順序でノードを通過します。チャットボット、Q&A、RAGに最適。
  • Agentflow:ツールを備えたエージェントで、コンテキストに基づいて次のステップを自律的に判断します。自律タスクやマルチステップ推論に使用。

Flowiseのインストール

インストール方法は3つあります:npm(開発者向けに最速)、Docker Compose(本番環境推奨)、またはソースからのビルドです。サーバーにはDockerを、ローカルマシンで素早くテストしたい場合はnpmをよく使います。

方法1 — npm(5分で完了)

npm install -g flowise
npx flowise start

http://localhost:3000 にアクセスするとすぐにUIが表示されます。素早く試すのに最適で、追加設定は不要です。

方法2 — Docker Compose(推奨)

version: '3.1'
services:
  flowise:
    image: flowiseai/flowise
    restart: always
    environment:
      - PORT=3000
      - FLOWISE_USERNAME=admin
      - FLOWISE_PASSWORD=your_strong_password
    ports:
      - '3000:3000'
    volumes:
      - ~/.flowise:/root/.flowise
docker compose up -d

環境変数の設定

エンドポイントのセキュリティ確保とストレージパスのカスタマイズのために、.env ファイルを作成します:

PORT=3000
FLOWISE_USERNAME=admin
FLOWISE_PASSWORD=strongpassword123
DATABASE_PATH=/data/flowise
APIKEY_PATH=/data/flowise
LOG_PATH=/data/flowise/logs
FLOWISE_SECRETKEY_OVERWRITE=your_secret_key_here

実践:Ollamaを使ったチャットボットの構築

Ollamaがローカルで動作していることを前提とします(このブログのOllamaガイドを参照してください)。以下は最もシンプルなチャットボットの作成手順です — 約5分で完了します。

最初のChatflowを作成する

  1. ChatflowsAdd New をクリック
  2. 左パネルから3つのノードをキャンバスにドラッグします:
    • ChatOllama(Chat Modelsセクション)
    • ChatPromptTemplate(Promptsセクション)— オプション、システムプロンプトのカスタマイズ用
    • BufferMemory(Memoryセクション)— ボットが会話のコンテキストを記憶するために使用
  3. ChatOllama ノードの設定:
    • Base URL: http://localhost:11434
    • Model Name: llama3.2(またはプルしたモデル)
  4. ノードを接続して Save をクリック
  5. 右上のチャットアイコンをクリックしてUI上で直接テスト

APIでチャットボットを呼び出す

各Chatflowは保存後に固有のIDを持ちます。任意の言語から呼び出せます:

curl -X POST http://localhost:3000/api/v1/prediction/{chatflow-id} \
  -H "Content-Type: application/json" \
  -d '{"question": "こんにちは、何かお手伝いできますか?"}'

Flowiseはウェブサイトにチャットボットを埋め込むための埋め込みスニペット(HTML + React)も自動生成します — コピー&ペーストするだけで、追加コードは不要です。

実践:PDFドキュメントを読むRAGパイプライン

これが実際に最もよく使うユースケースです — 内部ドキュメント(技術マニュアル、会社のポリシー、製品カタログ)をチャットボットに「読ませ」て、その内容から正確に質問に答えさせます。

フロー図

PDF File Loader → Recursive Character Text Splitter
                                   ↓
                        Ollama Embeddings
                                   ↓
                        Faiss Vector Store ← (Upsert mode)
                                   ↓
              Conversational Retrieval QA Chain ← ChatOllama

重要な各ノードの設定

Recursive Character Text Splitter:

  • Chunk Size: 1000
  • Chunk Overlap: 200 — チャンク間の境界でコンテキストが失われないようにするために重要

Ollama Embeddings(OpenAI Embeddingsの無料代替):

# 埋め込みモデルを先にプルする
ollama pull nomic-embed-text
  • Base URL: http://localhost:11434
  • Model Name: nomic-embed-text

Faiss Vector Store:別途サーバーのセットアップは不要で、ファイルをローカルに保存します — プロトタイプや内部ツールに最適です。スケールが必要な場合、FlowiseはQdrant、Chroma、Pinecone、Weaviateもサポートしています。

ドキュメントをUpsertしてテストする

フローのデザインが完了したら、Upsert ボタンをクリックします。Flowiseは以下を実行します:

  1. PDFを読み込んでテキストを抽出
  2. 設定に従ってチャンクに分割
  3. Ollamaで各チャンクを埋め込む
  4. ベクターをFaissに保存

Retrieval モードに切り替えてPDFの内容について質問してみると、初回から結果がかなり正確なことが多いです。

実際の使用経験から得たヒント

実際の作業を通じて、これは身につけるべき重要なスキルの一つだと感じました — ノードのドラッグ方法を知るだけでなく、どのツールをいつ使うべきか、よくあるミスを避ける方法を理解することが大切です。

フローを定期的にバックアップする:Flowiseはデータを ~/.flowise/ に保存します。大きな変更のたびにフローをJSONにエクスポートしましょう:

# Flowiseデータ全体をバックアップする
tar -czf flowise-backup-$(date +%Y%m%d).tar.gz ~/.flowise/

APIキー管理:FlowiseにはビルトインのAPIキーマネージャーがあります(Settings → API Keys)。クライアントごとに個別のキーを作成しましょう — 他の統合に影響を与えることなく簡単に無効化できます。

ストリーミングレスポンス:Chatflowの設定でストリーミングを有効にすると、ユーザーはレスポンスが一文字ずつ表示されるのを見ることができます — すべて生成されてから一度に表示するより、UXが大幅に向上します。

Agentflow用のカスタムツール:より複雑なエージェントを構築する場合、FlowiseはJavaScriptでカスタムツールを記述してフローにインポートできます — ソースコードをフォークすることなく機能を拡張できる強みです。

Flowiseに向いている人、向いていない人

FlowiseがCodeを完全に置き換えるとは思っていません。プロダクショングレードのパイプライン、細かいところまで制御が必要な場合、またはPython/LangChainに慣れたチームには — コードの方が依然として柔軟性があります。

しかし、Flowiseは以下のような場面で真価を発揮します:

  • 素早いプロトタイプ — 数時間ではなく30分でアイデアを検証
  • 内部ツール — 内部ドキュメント読み取りチャットボット、Q&Aシステム、小規模な自動化
  • 非開発者チーム — プロダクトマネージャー、アナリストが自分でフローを構築・テスト
  • クライアントへのデモ — コードの山より視覚的なフローの方がずっと説明しやすい

まとめ

Flowiseは「AIアプリを作りたい」と「コードが書けないと無理」の間のギャップを縮めます。素早いセットアップ(Dockerで5分)、直感的なドラッグ&ドロップのインターフェース、APIの自動公開 — これだけで、午前中のうちにホワイトボード上のアイデアを動作するツールに変えることができます。

チャットボットやRAGシステムのプロトタイプが必要なら、最初からコードを書く前にFlowiseを試してみてください — コードが必要なかったと驚くかもしれません。

ソースコードと公式ドキュメント: github.com/FlowiseAI/Flowise

Share: