
DifyとLangChainのいいとこどりAIエージェントノーコードツール【FlowiseAI】
生成AI(LLM)のノーコードツールとしてはDifyがメジャーですが、もともとLangChain、Llamaindexユーザには少し物足りないところもありました。
そんなときは、LangChainをノーコードで作れるLangChain対応の「FlowiseAI」を試してみましょう。
無理やり4象限で表すと、エンジニア向けノーコードツールという位置づけがぴったりくるかもしれません。


FlowiseAI始め方
インストール
Difyと同じくDocker環境が用意されています。
# git clone https://github.com/FlowiseAI/Flowise.git
# cd Flowise/docker
# cp .env.example .env
# docker-compose up -d
立ち上がったら、以下のようなURLにアクセスします。
IPアドレス、ポート番号は環境に合わせて変更してください。
http://IPアドレス:ポート番号
アクセスすると以下のような画面が表示されます。

「Chatflow」をクリックすると、ノーコードでワークフローが作れる画面になります。
Difyと違って少しとっつきにくいですが、ノードを作ってノード同士をワークフローの線でつないでいくのは同じです。
Difyとの違いは、選択できるノードが圧倒的にFlowiseの方が多く、LangChainユーザにはおなじみの機能がたくさんあります。
以下の画面のとおり、「LangChain」と「Llamaindex」の機能がノードとして提供されています。

テンプレート
Maketplaceという名前で、テンプレートがたくさん用意されています。
ためしにシンプルなチャットを試してみましょう。

OpenAIのAPIキーを登録するだけで、チャットボットができました。

作成したワークフローは、APIとしても公開してアクセスできます。

エージェントフロー
Flowiseの強力な機能は、おそらくこの「エージェントフロー」ではないでしょうか。
Difyでは、おそらくデータベース連携ノードは無かったと思いますが、Flowiseでは以下の画面のとおり、MySQL、Postgresなどのデータベースをエージェントのメモリ機能として活用できます。
高度なAIエージェントにはメモリ機能が必要不可欠なので、標準でデータベースとインテグレートできるは便利ですね。
データベースノード


Notionノード



分岐、ループ

LangChainではおなじみのText Splittersも各種そろっています。

Embeddingモデル
各種Embeddingモデルも利用できます。

Marketplace
いわゆるテンプレートですが、いろんなテンプレートがそろっています。




AutoGPT
中には「AutoGPT」という面白そうなテンプレートがありました。

MultiAgent
「MultiAgent」もMarketPlaceにあります。
マルチエージェントのサンプルとして参考になりそうです。

実際、実行してみるとMarketplaceのテンプレートがそのまま動きます。
試しに何か作ってもらいましょう。
ToDoアプリを作って。
まず、「Supervisor」というAIエージェントの親分が動きます。

そのあと、「Software Engineer」というエージェントが動いているようです。
まずは全体像をデザインしているような感じでしょうか。

その後にコードが出力されます。

最後に「Supervisor」の親分エージェントが、「Code Reviewer」エージェントにレビューを指示しているようですね。

レビューアの「Code Reviewer」エージェントがコメントをしています。

SQL Prompt
詳しい説明は無いですが、
「Manually construct prompts to query a SQL database」
とありましたので、自然言語からDBアクセス用のSQLのクエリを自動生成するようです。

LangChain機能
Difyに無く、Flowiseにある大きな機能としてはLangChain機能があります。
以下はドキュメントの情報ですが、LangChainで見慣れた機能をノードとして作成可能です。

Document Loaderノードもあります。
Notionとも連携できます。

あと、ベクトルDBノードも多種多様なベクトルDBを選択できます。

まとめ
ノーコードで生成AI(LLM)アプリがさくっと作れるFlowiseAIについて、使ってみました。
Difyに比べると、エンジニア向けのノード(Difyでいうとブロック)が多いのと、操作性の面から少しとっつきにくいです。
その反面、機能はFlowiseAIのほうが格段に多そうです。
Difyでアプリケーション作ってると、いつもやりたいことができずに結局Pythonなどのプロコードにしてしまう。という中級者の人はFlowiseAIをトライする価値はありそうです。
Dify
初心者向け
とっつきやすい
非エンジニアでもノーコードでアプリが作れる
高度なアプリを作りたい場合は、結局Pythonなどのプロコードの分量が多くなって、Difyでは行き詰まるケースもあり
FlowiseAI
中級者向け
非エンジニアでもノーコードでアプリが作れるのはDifyと同じ
ただし、Difyと比較してとっつきにくいのと、ノードがエンジニア向けのものが多いのでどちらかというとエンジニア向け
LangChainの機能がノードとしてそろっているので、LangChainを使ったことがある人は理解しやすい
インテグレーション(連携)できるノードがDifyより豊富
データベースノードもある