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

If/Else ノードは信号機のようなものです。条件をチェックし(例:このメールには価格に関する内容が含まれているか?)、その結果に応じてフローを左右に振り分けます。
ハンズオン 1:分岐点を設定する¶
メールアシスタントをアップグレードして、FlexAI に関連するメールとそれ以外のメールを区別できるようにしましょう。
ノードを挿入する¶
開始ノードとナレッジ検索ノードの間の接続線にカーソルを合わせます。**プラス(+)**アイコンをクリックし、**If/Else** ノードを選択します。
ルールを設定する¶
1. ノードをクリックしてパネルを開きます。
2. IF セクションの **\+ Add Condition** をクリックし、変数 `{x} email_content` を選択します。

3. 判断ロジック:**Contains** のまま維持し、入力ボックスに **FlexAI** と入力します。

これで、IF 分岐の完全なロジックは次のようになります:`メール内容に FlexAI という単語が含まれている場合`。
Info:
分岐点の判断ロジックを理解する
条件を設定する際、FlexAI では交差点の信号のように、情報を判断するためのさまざまな方法が用意されています。
-
Is / Is Not
鍵と錠前の関係のようなものです。内容が設定した値と完全に一致する必要があります。 - Contains / Not Contains
虫眼鏡のようなものです。特定のキーワードがテキスト内のどこかに存在するかをチェックします。今回使用するのはこの方法です。 - Starts with / Ends with
テキストが特定の文字で始まるか、または終わるかをチェックします。 - Is Empty / Is Not Empty
変数に内容があるかどうかをチェックします。例:ユーザーが実際に添付ファイルをアップロードしたかどうかの確認。これらを理解することで、正確かつ柔軟なルールを設定し、よりスマートなワークフローを構築できます。
ハンズオン 2:異なるパスを設計する¶
分岐点ができたので、それぞれの道で何が起こるかを決める必要があります。
A. FlexAI 関連メールのトラック(IF 分岐)¶
IF 分岐の右側にあるプラス(+)アイコンをクリックし、線をドラッグしてナレッジ検索ノードに接続します。
これは次のことを意味します:メールに FlexAI という単語が含まれている場合、前回のレッスンで構築した専門的な返信プロセス(ナレッジベースで情報を検索するプロセス)が実行されます。

B. 無関係なメールのトラック(ELSE 分岐)¶
FlexAI に関連しないメールに対しては、シンプルで丁寧な汎用返信プロセスを作成します。
新しいノードを作成する¶
ELSE の横にある**(+)**をクリックし、新しい **LLM ノード(LLM 2)**を選択します。
この LLM ノードにプロンプトを追加する¶
以下のプロンプトをコピーして貼り付けます。
```plaintext wrap
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."
```
ユーザーメッセージを追加する¶
1. システムの下にある **Add Message** ボタンをクリックします。
2. ユーザーメッセージボックスに **customer name:** と入力します。
3. キーボードで `/` を押します。
4. 変数選択メニューが表示されるので、`customer_name` をクリックします。
5. Enter キーを押して新しい行を開始し、**email content:** と入力します。
6. もう一度 / キーを押して `email_content` をクリックします。

これで、2 つのトラックがそれぞれ異なる返信を生成するようになりました。もし 10 個のトラックがあったら、ワークフローはスパゲッティのように複雑になってしまいます。
整理された状態を保つために、変数アグリゲーターを使用します。これは、すべての異なる道が 1 つの幹線道路に合流する交通ハブのようなものです。
変数アグリゲーター¶

変数アグリゲーターは、すべての異なる道が 1 つの幹線道路に合流する交通ハブのようなものです。
ハンズオン 3:変数アグリゲーターを追加する¶
アグリゲーターを追加する¶
1. 終了ノードと LLM ノードの間の接続線を選択して削除します。
2. 「キャンバス」上で右クリックし、**Add Node** を選択して、**変数アグリゲーター**ノードを選びます。

パスを合流させる¶
LLM ノードと LLM 2 ノードを変数アグリゲーターに接続します。
出力を割り当てる¶
1. 変数アグリゲーターノードをクリックします。
2. **Assign Variables** の横にある**プラス(+)**アイコンをクリックします。
3. LLM 1 の **text** と LLM 2 の **text** を選択します。

これにより、どちらの LLM ノードが応答を生成しても、変数アグリゲーターノードが内容を集約し、出力ノードに渡します。
最後のステップ¶
1. 変数アグリゲーターを出力ノードに接続します。
2. 出力変数を、以前の LLM の結果ではなく、変数アグリゲーターの結果に更新します。

ワークフローは以下のようになります:

テストと実行¶
**Test Run** をクリックし、顧客名を入力して、キーワード FlexAI を含む入力と含まない入力の両方でテストし、異なる結果を確認してください。
ミニチャレンジ¶
ビジネスに関する問い合わせメールに対して、適切な返信を生成するにはワークフローをどのように編集すればよいでしょうか?
Tip:
ナレッジベースにビジネス関連のファイルを追加することを忘れないでください。