MENU

Difyその1 チャットボットと「人生相談」をしよう

👑今日の作品

下部で見てください(*^^*)

目次

Difyとは DIfyの始め方

ここでは省略します。最下部に参考にしたYouTubeをリンクで示してありますので、参照してください。よくわかります。

「最初から作成」を選択し、チャットボットをクリック

Screenshot

実は私はここで1番迷っていました。チャットボットが出てこなかったのです。

いち関係者の私

私の画面の場合、上2つのワークフローとチャットフローばかりが出てきて下の3つが出てきませんでした。

その理由はワークフローの下に見える「初心者向けの基本的なアプリタイプ」と言うものを見落としていたせいです。

そこをクリックしないと、チャットボットエージェント、テキストジェネレーターは、私の場合現れなかったのです。

弟子

下記のようになっていたんですね。

(システム)プロンプトを入れる

(システム)プロンプトだけで動く

あなたは人生経験豊富な男性です。いつも落ち着いた口調で話します。

最近、中村天風の本にハマっているので、

先生を敬愛としています。と書きました(*^^*)

Screenshot

ここまでのところは、下記のYouTubeと全く同じです。

いち関係者の私

これだけでこのチャットボットは動きます。右側に質問を入力すればすぐに動きます。

ChatGPTと何が違うのか

誤解を恐れずに言えば全く同じものです。

チャットボットには最初から生成Aiが組み込まれています。

次のような質問をしました。

プロンプト入力!

difyのチャットボットでは、llmの指定がノードしては存在していませんが、右側にモデルを選ぶところがあります。
ここで選べば、llmノードは自動的に入っている、と考えていいですか

すると

ChatGPTくん

はい、その通りです。
Difyでは、右上の「モデル選択(例:GPT-4、Gemini 1.5 Flashなど)」で選択すれば、LLMノードは自動で割り当てられていると考えて問題ありません。

ときました。

「ワークフロー」などは自分でLLMノードを設定する必要がありますが、チャットボットには最初から入っているのです。

ですから、上記のアプリに組み込んだ

「あなたは人生経験豊富な男性です。いつも落ち着いた口調で話します。」

という言葉はChatGPTにおける最初の「役割を与える」というものです。

いち関係者の私

プロンプトエンジニアリングにおけるの「システムプロンプト」または「ロール指定」と呼ばれるものです。

Difyではそのまま「システムプロンプト」と表現したりします。

変数 ユーザーの名前 趣味

さて、もう一度下図を見てもらいたいのですが

Screenshot

システムプロンプトの欄に「ユーザーの名前」とあります。

コレについて説明します。

変数

Screenshot

「ユーザーの名前」はただのテキストですが、その脇の「user_name」を変数といいます。

よくみるとシステムプロンプトの下に変数と言う欄があるのがわかります

その中に、今回のuser_nameと示されているのがわかります

いち関係者の私

これは私が設定した変数です

その名の通り、このアプリを使うユーザの方の名前を表しています

右側をみてもらうとわかる通り、「名前を教えて」と言う欄があります。これはこのユーザネームと言う変数を設定したために自動的に出てきた欄です。

ここでユーザに自分の名前を「かんた」と入れてもらうことによって、この後このアプリはこのユーザの名前を「かんた」と認識してチャットを進めることになります

変数はユーザーが設定する「システムプロンプト」

ユーザーが「かんた」だけなら左側のシステムプロンプトに入れても同じことができます

例えばこのアプリを使うユーザの名前が「かんた」だとすれば、

システムプロンプトに最初から「このユーザはかんたです」と入れてしまえばいいわけです。

するとこのアプリはユーザ名を「かんた」と認識して会話を続けるでしょう。

弟子

しかしアプリを使用する人はかんた1人ではありません。恵もいれば俊広もいるでしょう。ですからシステムプロントにかんたと入れてしまえば、恵と俊宏であるにもかかわらず、「かんた」と呼ばれることになってしまいます。

そこで、「ユーザが設定するシステムプロンプト」のようなものとして、この変数があるわけです

この変数をユーザ自身が入力することによって、カンタも使えれば恵も俊弘も自分の名前で使えることになるわけです。

変数設定を別の側面から見ると

これはChatGPTにおけるカスタムGPTの開始画面と同じ役割をしているとも考えることもできます。

いち関係者の私

と思ったのですが違いました!!
下の記事を見ていただけるとわかります!!

カスタムGPTには開始の言葉と言う欄があって、そこに「スタート」や「今日はどのような相談をしますか」とか、「数学について議論しましょう」と言う任意の言葉をカスタムGPTを作った編集者が入力することができる欄があります。

それを入力すると、カスタムGP Tの最初の場面にそのような文言が出現するのです。

このようなものです。

上の図で

「AIにストーリーを作らせるためには、どのような質問が良いですか」

と書いてある欄がありますが、これはこの対話型プロンプトメーカーを作った方が設定した文言なのです

いち関係者の私

厳密に言えば、ChatGPTはチャットなのでちょっと違いますが、ユーザーが利用するときの意識としては近いものと考えることができます。

システムプロンプトに変数の値を入力する意味は何か?

上のDifyの図をもう一度見ていただくと、変数を2つ設定していることがわかります。

{{user_name}}と{{shumi}}です。

ちなみに{{shumi}}は下記のように設定しました。

すると、右側に「趣味」とでてきます。

これは上の図のラベル名に一致します。

つまり変数を設定すると、チャットの一番最初に「ラベル名」と同じ言葉で最初に聞いてくる、ということです。

システムプロンプトの変数の欄はどんな意味があるのか

上の図の例では、

ユーザーの名前{{user_name}}

と書いてあります。

しかし、趣味{{shumi}}とは書いてありません。

それでも変数として入力してあるため、右側にはそれが示されています。

いち関係者の私

この意味がわからずChatGPT聞いてみました。

プロンプト入力!

プロンプトにshumiがなくても右側に入力を求められます。
しかも必須です。変数設定でそのようにしているので当たり前なのですが。
プロンプトにshumiの変数が入力されていなくても、右側には出てくるのですね。そうすると左側のプロンプトにuser_nameやshimiを入れる意味と言うのは何があるんでしょうか?

ChatGPTくん

とても良い視点のご質問です。Difyにおける「変数(user_nameやshumi)」の扱いについて、以下に整理して説明します。


✅ 結論:

プロンプト内に変数 {{user_name}}{{shumi}} を使うかどうかは、AIの返答にそれらの情報を活かしたい場合に意味があります。

つまり:

  • プロンプトに書かなければ、モデルはその変数を認識せず使いません。
  • 右側に表示される入力欄は、UI上でユーザーに値を入力させるための仕組みです。
  • しかし、その入力内容をプロンプトに書かない限り、AIはそれを知らないまま動作します。

🧠 構造の理解

項目説明
変数(user_nameなど)ユーザーからの入力を受け取るフィールド。入力された値は一時的に保存される。
プロンプト内の {{変数}}AIにその値を認識させるための埋め込み。ここに書かないと、AIはその変数の内容を知らず、応答に使えない。
必須設定(REQUIRED)ユーザーがその値を入力しないと先に進めないようにする。UX設計上の制御。

🧪 例:shumi 変数が必須でも、プロンプトに書かなかった場合

  • ユーザーが「趣味」を入力しても、AIのプロンプトに {{shumi}} がなければ、返答には使われません。
  • UIとしては shumi を必須として聞いているのに、AIの返答には何も反映されないという「無駄」になる。

🎯 では、プロンプトに {{shumi}} を書くべきか?

  • 趣味の話を広げたいなら、絶対書くべきです。 ユーザーの趣味は:{{shumi}}です。これについて話を広げてください。
  • 逆に、今回の対話には不要なら、変数定義ごと削除しても構いません。

💡補足:shumi変数の型が「select」になっている理由

現在 shumiselect 型になっていますね。つまり、選択肢形式のプルダウン入力としてユーザーに表示されます(カスタマイズ可能)。選択肢が未設定の場合は入力しづらくなりますので注意してください。


✅ 最後にまとめ

変数入力欄に出るか?プロンプトに書かなければAIが認識するか?書く意味
user_nameshumi✅ 必須で出る❌ 書かなければAIは使わないAIに使わせたいならプロンプト内に {{}} で書く必要あり

必要に応じて、テンプレート改善のお手伝いもできますのでお気軽にどうぞ。

ということです。

まとめ

ここまでが私の第一弾Difyアプリです。

参考にした動画はい下記のものです。

以下 私の備忘録です

この「公開」は逐次しないとデータが失われる

Geminiのモデルだけではなく、左側のPromptも消えてしまう。

ホーム画面に戻るときは必ず「公開」すること。

Google cloud Consoleにログインして、

ハンバーガーメニュー

IAMと管理

割当とシステム上限を確認

Screenshot
ChatGPTくん

画像ありがとうございます!
お見せいただいたクォータ画面は、「Gemini 1.5 Flash」モデルに関する制限状況を詳細に示しています。ここに「50」と「無制限」が表示されているのは、それぞれ異なる種類の制限だからです。

✅ クォータの2種類の違い(あなたの画像の中身)

名前(Name)意味値の意味
Request limit per model per day for a project in the free tier無料枠での リクエスト回数の制限(1日あたり)50回/日(=使えるリクエストの回数)
GenerateContent free tier input token count limit per model per day無料枠での 入力トークン数の制限(1日あたり)無制限(Unlimited)=トークン数に制限なし

🔍 つまり、こういうことです:

✅ 今のあなたの環境では:

  • Gemini 1.5 Flash1日に最大50回までリクエスト可能
  • ただし1回のリクエストで使うトークン数(テキスト量)には制限がない

📌 用語の補足

用語説明
リクエスト1回の質問・生成などのAPI呼び出し(例:Difyでのチャット1回)
トークン入出力される単語や記号の単位(例:「こんにちは」は2〜3トークン)
無料枠(free tier)Google Cloudで課金なしで使える範囲。月額0円で使える分のこと

❗️注意点:「無制限」だから安心とは限らない

  • 「トークン数が無制限」でも、リクエスト回数が50回/日で制限されているため、使いすぎるとすぐに「429エラー(レート制限)」になります。
  • これは先日あなたが遭遇されたエラーとも一致します。

🔧 対策

方法内容
少し待つ翌日になれば50回がリセットされます(UTC基準)
有料プランにする課金設定すれば、Proモデルやリクエスト上限が緩和されます(要確認)
Gemini Pro を使いたい場合Billing(課金)を有効化+リクエストの増加申請が必要です

✅ 結論まとめ

モデルリクエスト回数トークン量
Gemini 1.5 Flash(無料枠)50回/日無制限
Gemini 1.5 Pro❌ 利用不可(クォータがない or 0)

よろしければ「Gemini Pro を使えるようにするにはどうしたらいいか」もご案内できます。必要でしたらお知らせください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次