【Dify】RAGでの会話はChatflowを使うほうがよい

Difyを使われて長い方にとっては当たり前のことでしょうが、私はふと思い立ち試してみたら、ChatflowとWorkflowって全然役割違うやん、、ということに気が付きました。

今まで、なぜかWorkflowをよく使っていたのですが、RAGを使っての壁打ちはChatflowの方がいいですね。

使い始めの方もいるかと思いますので、その紹介を致します。

論文をKnowledgeとして構築し、それを情報を元にAIとやり取りする方法

以前Knowledgeの作り方は紹介しました。

【Dify】RAGを使って複数の論文をデータベースとしてAIとやりとりする方法

ここではWorkflow内にでAIとKnowledgeを元にした会話を実行していました。

まず、AIとの会話を考えると次の3つが考えられます。

1, Agent モード

2, Workflow モード

3, Chatflow モード

Agent モード

このような設定ですと

Knoeledgeに基づかない、一般的な話が返ってきます。

そのため、『Knowledgeに元づいて』という言葉を入れます。(質問文か、instructionに)

Agentモードの特徴

・flow-up questionを作るようにを設定できる

・同じ流れで一般的な話も質問できる

・ある時はKnowledgeベースで、ある時はWeb情報を引用して、という使い分けが難しい

Workflowモード

Workflowモードの特徴

・機能として一回毎に動作として終了する。そのため、今の会話を覚えておいて、次の会話という流れができない。

・Workflowは一回で済む動作(例えばWeb検索など)を組み立てておいて、Tool化してoutputしておいて、他のところで使うのが良い

・Startの変数(variables)に今まで質問という枠を作成し、質問を書いていたが、これは邪道な方法

Workflowのtool化については以前試してみました。

【Dify】PubMed検索のsort方法の変更、Workflowをtoolにする方法

Chatflowモード

Chatflowモードの特徴

・LLMにMemory機能がついている(ここをイジるとどうなるかはまだ色々試せていないが、おそらく、Workflowのときと異なり、一時的な記憶がされる可能性が高い)

・ChatGPTのように次の質問ができるようになっている。

・Flowをしっかりと組み立てれば、こちらが意図した通りに、Knowledgeベースの回答かWebベースの回答かを操作することができる(これはAgentにはこちらの意図が反映しづらい)

まとめ

LLMを用いてChatをするなら、Chatflow

なにか一回の動作をきっちりと動かしたいならWorkflowを使おう

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA