メインコンテンツへスキップ
⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、英語版を参照してください。
現在、メールアシスタントはすべてのメールを同じワークフローで処理しています。これでは十分にスマートとは言えません。Dify の価格に関するメールと、バグ報告に関するメールでは、異なる対応が必要です。 アシスタントを本当にインテリジェントにするには、状況を判断する能力を教える必要があります。ここでは、メールの種類に応じて異なるトラックに振り分ける分岐点を設定します。

If/Else ノード

If/Else ノード
If/Else ノードは信号機のようなものです。条件をチェックし(例:このメールには価格に関する内容が含まれているか?)、その結果に応じてフローを左右に振り分けます。

ハンズオン 1:分岐点を設定する

メールアシスタントをアップグレードして、Dify に関連するメールとそれ以外のメールを区別できるようにしましょう。
1

ノードを挿入する

開始ノードとナレッジ検索ノードの間の接続線にカーソルを合わせます。**プラス(+)**アイコンをクリックし、If/Else ノードを選択します。
2

ルールを設定する

  1. ノードをクリックしてパネルを開きます。
  2. IF セクションの + Add Condition をクリックし、変数 {x} email_content を選択します。
条件を追加
  1. 判断ロジック:Contains のまま維持し、入力ボックスに Dify と入力します。
Contains 条件
これで、IF 分岐の完全なロジックは次のようになります:メール内容に Dify という単語が含まれている場合
分岐点の判断ロジックを理解する条件を設定する際、Dify では交差点の信号のように、情報を判断するためのさまざまな方法が用意されています。
  • Is / Is Not 鍵と錠前の関係のようなものです。内容が設定した値と完全に一致する必要があります。
  • Contains / Not Contains 虫眼鏡のようなものです。特定のキーワードがテキスト内のどこかに存在するかをチェックします。今回使用するのはこの方法です。
  • Starts with / Ends with テキストが特定の文字で始まるか、または終わるかをチェックします。
  • Is Empty / Is Not Empty 変数に内容があるかどうかをチェックします。例:ユーザーが実際に添付ファイルをアップロードしたかどうかの確認。これらを理解することで、正確かつ柔軟なルールを設定し、よりスマートなワークフローを構築できます。

ハンズオン 2:異なるパスを設計する

分岐点ができたので、それぞれの道で何が起こるかを決める必要があります。

A. Dify 関連メールのトラック(IF 分岐)

IF 分岐の右側にあるプラス(+)アイコンをクリックし、線をドラッグしてナレッジ検索ノードに接続します。 これは次のことを意味します:メールに Dify という単語が含まれている場合、前回のレッスンで構築した専門的な返信プロセス(ナレッジベースで情報を検索するプロセス)が実行されます。
IF 分岐を接続

B. 無関係なメールのトラック(ELSE 分岐)

Dify に関連しないメールに対しては、シンプルで丁寧な汎用返信プロセスを作成します。
1

新しいノードを作成する

ELSE の横にある**(+)**をクリックし、新しい **LLM ノード(LLM 2)**を選択します。
2

この LLM ノードにプロンプトを追加する

以下のプロンプトをコピーして貼り付けます。
You are a professional customer service manager. Based on the customer's email, kindly inform the user that no relevant information was found and provide relevant guidance.

Requirements:
1. Address the customer name in a friendly tone.
2. Thank them for their letter.
3. Keep the tone professional and friendly.
4. Sign off as "Anne."
3

ユーザーメッセージを追加する

  1. システムの下にある Add Message ボタンをクリックします。
  2. ユーザーメッセージボックスに customer name: と入力します。
  3. キーボードで / を押します。
  4. 変数選択メニューが表示されるので、customer_name をクリックします。
  5. Enter キーを押して新しい行を開始し、email content: と入力します。
  6. もう一度 / キーを押して email_content をクリックします。
LLM 2 のプロンプト
これで、2 つのトラックがそれぞれ異なる返信を生成するようになりました。もし 10 個のトラックがあったら、ワークフローはスパゲッティのように複雑になってしまいます。 整理された状態を保つために、変数アグリゲーターを使用します。これは、すべての異なる道が 1 つの幹線道路に合流する交通ハブのようなものです。

変数アグリゲーター

変数アグリゲーター
変数アグリゲーターは、すべての異なる道が 1 つの幹線道路に合流する交通ハブのようなものです。

ハンズオン 3:変数アグリゲーターを追加する

1

アグリゲーターを追加する

  1. 終了ノードと LLM ノードの間の接続線を選択して削除します。
  2. 「キャンバス」上で右クリックし、Add Node を選択して、変数アグリゲーターノードを選びます。
変数アグリゲーターを追加
2

パスを合流させる

LLM ノードと LLM 2 ノードを変数アグリゲーターに接続します。
3

出力を割り当てる

  1. 変数アグリゲーターノードをクリックします。
  2. Assign Variables の横にある**プラス(+)**アイコンをクリックします。
  3. LLM 1 の text と LLM 2 の text を選択します。
変数の割り当て
これにより、どちらの LLM ノードが応答を生成しても、変数アグリゲーターノードが内容を集約し、出力ノードに渡します。
4

最後のステップ

  1. 変数アグリゲーターを出力ノードに接続します。
  2. 出力変数を、以前の LLM の結果ではなく、変数アグリゲーターの結果に更新します。
出力変数を更新
ワークフローは以下のようになります:
最終ワークフロー
5

テストと実行

Test Run をクリックし、顧客名を入力して、キーワード Dify を含む入力と含まない入力の両方でテストし、異なる結果を確認してください。

ミニチャレンジ

ビジネスに関する問い合わせメールに対して、適切な返信を生成するにはワークフローをどのように編集すればよいでしょうか?
ナレッジベースにビジネス関連のファイルを追加することを忘れないでください。