第61話:【Difyの基礎】「作る」前に「探せ」!画面右上の「{x}」に隠された便利ツールを完全解説

チャットアプリを表示したスマホ画面の画像。左側ではロボットの先生が赤い背景で怒っている。右側では同じロボットが花の背景で優しく微笑んでいる。「4ターン目」と書かれた矢印がそれらをつないでいる。) AI活用

前回(第59・60話)は、自分で「変数」を作って、ビールを数えるカウンターを実装しました。 「変数を作るのって、結構大変なんだな……」 そう思った方も多いのではないでしょうか?

実は、Difyには**「自分で作らなくても、最初から用意されている変数」がたくさんあるんです。 これらは以前は「開始ブロック」の中にありましたが、最新のバージョンでは画面右上の「{x}」マーク**の中に格納されています。

今回は、知っているだけで開発が楽になる**「Difyからの無料プレゼント(システム変数)」を使って、「最初は厳しいけど、徐々に優しくなる英会話ボット」**を作ってみましょう。


1. 宝の山は「{x}」の中にあり

チャットフロー編集画面の右上にある「{x}」マーク。 ここをクリックすると、「変数」の一覧パネルが開きます。

前回、私たちはここで「会話変数(Conversation Variables)」を作りましたが、その下をよーく見てください。 「システム変数(System Variables)」 という項目がありませんか?

ここに、sys.querysys.dialogue_count といった謎の英語が並んでいます。 これらは**「設定不要で、最初から勝手にデータを取っておいてくれる機能」**なんです。


2. 特に使える「システム変数」2選

この中から、特によく使う2つを紹介します。

① {x} sys.query (ユーザーの言葉)

  • 正体: ユーザーがチャット欄に入力した「テキスト(文字)」そのものです。
  • 使い道: LLMに「ユーザーの言ったことに答えて」と指示する時、無意識にこれを選んでいるはずです。実はこれも変数の一種だったんですね。

② {x} sys.dialogue_count (会話ターン数)

  • 正体: 「今、何往復目の会話か?」を表す数字です。
    • 1回目の会話 ➡ 1
    • 2回目の会話 ➡ 2
    • ……と、自動で増えていきます。

今回は、この sys.dialogue_count を使って、**「会話が長引くと態度が変わるAI」**を作ります。


3. 実践:最初は厳しく、後は優しく。「ツンデレ英会話ボット」を作ろう

ここからは実践です。 **「最初はスパルタだけど、何度も質問して頑張っていると優しくなる英会話の先生」**を作ってみましょう。

これを作れば、AIに「空気を読む(ユーザーの努力を認める)」能力を与えることができます!

手順1:運命の分かれ道(IFブロック)を設置

いつもの「チャットフロー」を用意し、「開始」ブロックの次に**「条件分岐(IF/ELSE)」**ブロックを追加します。

ここで、さきほどのシステム変数の出番です!

  1. 変数: リストの sys. から始まる部分にある sys.dialogue_count を選びます。
    • (※変数の選択リストでも、システム変数は下の方にあります)
  2. 記号 (以上)
  3. 4

【設定の意味】

  • 4回以上(IF): 会話が4ターン以上続いている ➡ 「頑張ってるね(デレ)」ルート
  • それ以外(ELSE): まだ会話が始まったばかり ➡ 「甘えるな(ツン)」ルート
DifyのIF/ELSEノードで、会話の往復回数(sys.dialogue_count)を条件に指定する設定画面。会話が一定回数を超えた際にAIの回答ルートを自動で切り替えるための、ロジック構築手順を解説しています。

手順2:二人の先生(LLM)を用意する

分岐した先に、それぞれ 「LLM」ブロック をつなぎます。 ここが一番楽しいところです!それぞれのAIに違う「演技指導(プロンプト)」をしましょう。

ルートA:スパルタ先生(ELSE / 3回目まで) まだ会話は序盤です。甘やかしてはいけません。

  • つなぐ場所: 条件分岐の 「ELSE(下)」
  • システムプロンプト:Plaintextあなたは「超スパルタな英語教師」です。 ユーザーが甘えた質問をしてきても、絶対に答えを教えないでください。 「自分で考えなさい!」「甘えるな!」と厳しく突き放し、ヒントも出し惜しみしてください。

ルートB:優しい先生(IF / 4回目以降) 4回もラリーが続きました。ユーザーは困っているか、頑張っています。ここで優しくします。

  • つなぐ場所: 条件分岐の 「IF(上)」
  • システムプロンプト:Plaintextあなたは「とても優しい英語教師」です。 ユーザーは何度も挑戦して頑張っています。 「よく頑張りましたね!」「ここが難しいですよね」と共感し、 分かりやすいヒントや、答えを優しく教えてあげてください。
Difyの会話回数変数(sys.dialogue_count)を利用したキャラクター変更の仕組み。会話が4回を超えた際に、AIが「優しい英語教師」という新しい役割に切り替わり、ユーザーに共感しながら学習をサポートするプロンプト設定例です。

手順3:いざ、授業開始!(テスト実行)

さあ、AIの態度の変化を楽しみましょう。 ちょっと難しい英語の質問(例:「see, look, watch の違い」など)を投げかけてみてください。

1ターン目(スパルタ)

  • 自分:「see と look と watch の違いを教えて」
  • AI:「甘えるな!そのくらい自分で辞書を引け!『意識して見るかどうか』の違いだ。それ以上は自分で考えろ!」 (うわっ、ヒントだけで突き放された……!)

2ターン目(スパルタ)

  • 自分:「もう少し詳しく……」
  • AI:「ダメだ!すぐに答えを聞こうとするな!自分の頭を使え!

3ターン目(スパルタ)

  • 自分:「全然わからないよ……」
  • AI:「努力が足りない!出直してこい!

4ターン目(優しい)

  • 自分:「どうしてもわかりません。教えてください……」
  • AI:「何度も諦めずに食らいついてきましたね。素晴らしいガッツです。 違いは『意識』にあります。 ・See:自然に目に入ってくる(見える) ・Look:意識して視線を向ける(見る) ・Watch:動いているものを注視する(観る) この違いですよ。よく頑張りましたね!

(急にデレた!!)

Difyのシステム変数 sys.dialogue_count によるキャラクター変化の動作エビデンス。会話回数が設定値を超えた瞬間、AIが「厳しい教師」から「共感的な教育者」へと態度を変え、ユーザーの努力に応える高度な対話ロジックの成功例です。

まとめ:「あるものは使う」が鉄則

おめでとうございます! これで、あなたのAIは**「会話の長さ(ユーザーの努力量)」**に応じて態度を変えることができるようになりました。例えばコールセンターで

チャットの回数に応じて対応を変えるという事もできます。今までのチャットボットよりも

ワンランク上のチャットボットができるでしょう!

  • 自分で変数を作る: ビール杯数など、独自のデータを扱いたい時。
  • システム変数を使う: 会話回数やユーザーIDなど、基本的なデータを使いたい時。

この使い分けができれば、開発の手間がグッと減ります。 「作る前に、右上の {x} を探す」。これがDify上級者への近道です!

次回は…… 基礎パラメータを理解したところで、次こそは外部の世界へ飛び出します! AIに「Google検索」の能力を与える**「Tavily Search(タビリー・サーチ)」を使って、「最新のニュースを調べて記事にするボット」**を作りましょう。 情報の鮮度が命のブログ運営には必須の機能です!

コメント

タイトルとURLをコピーしました