SaaSに組み込むにはn8nが高価なのでLangFlowを試してみる

その他

はじめに

自社SaaSにワークフロー機能を組み込むにあたり、最初は高機能な「n8n」を検討しました。 しかし、SaaSの一部として提供(Embed)するには、ライセンス費用が高額になってしまうことが課題でした。

そこで、より導入しやすい選択肢として「LangFlow」を試してみることにしました。 主な選定理由は以下の3点です。

  • コストとライセンス: MITライセンスであり、SaaSへの組み込み(Embed)がしやすいこと
  • 技術スタック: ReactとPython製であるため、自社の開発環境と親和性が高いこと
  • 開発の活発さ: GitHub上の参加者が多く、大手DBベンダー(DataStax)が支援していること

デスクトップアプリを試す

ダウンロードして、すぐに使い始められました。以下は、テンプレートにあったシンプルなAIエージェントのフローです。

  • n8nよりも機能がすくないのか、使い方はわかりやすそうですが、n8nほどは洗練されてない印象です。
  • 内部では、LangChainを使っていますが、LangChainのコードをアウトプットできるわけではなく、フローをAPIで呼び出すためのPythonコードが出力できたり、jsonでフローを出力して管理することはできそうです。
  • チャットのフローをウィジェットとしてエクスポートして、htmlに貼るだけでチャット機能をつくることもできました。

開発環境を構築する

Claude Codeにビルドしてもらう

git clone https://github.com/langflow-ai/langflow.git

⏺ How to Build LangFlow

  Prerequisites

  - Python 3.10-3.13
  - Node.js (v20+)
  - npm
  - uv (Python package manager)
  - make

  Build Steps

  1. Initialize the project (installs all dependencies):
  make init

  2. Build the frontend:
  make build_frontend

  3. Run LangFlow:
  uv run langflow run

  Then open http://localhost:7861 in your browser.

時間がかかっただけなのか、しばらくエラーだったが、以下で表示されるようになった
http://localhost:7861
http://localhost:7861/all
http://localhost:7861/flows

以下は、実行してないが、念の為メモしておく

Alternative: One Command

  If you just want to run it quickly:
  make run_cli
  This builds the frontend (if needed) and starts the server.

  ---
  Development Mode (with hot-reload)

  For active development, run in two terminals:

  # Terminal 1 - Backend (port 7860)
  make backend

  # Terminal 2 - Frontend (port 3000)
  make frontend

以下の画面が表示された

チャットでShopifyの商品検索を呼んでみる

何も調べずに、Claude Codeと話しながらやってみたが、なかなかスムーズにはいかなかった。
{keyword}のようなプレースホルダーを文字列に埋め込むと新たな入力用のコネクションポイントが現れる。
赤いコネクションポイントはデータ用(テーブル形式、キーバリューセット)だと思われる。
API Responseノードはjsonボディで渡すことはできず、キーバリュー形式で渡すとうまくいった。

フローの概要:
Chat Inputノードから文字列を出力、次のPrompt templateノードでkeywordとして受け取り、文字列に埋め込む。
Dynamic create dataノードで、variablesの値として受け取り、queryの値は固定文字列をセットする。
API RequestノードのBodyにqueryとvariablesという2つのキーバリューをセットする。このノードでは、urlとしてShopifyのadmin product api、ヘッダーにアクセストークンをセットしておく。最後にChat Outputへ出力を渡す。

Playgroundで、以下のように商品検索結果を取得できた。

関連記事

カテゴリー

アーカイブ

Lang »