投稿する
📚 【第二期】Dify・n8nハンズオン講座

Dify会話変数入門!深掘りアンケート作成

Dify(ディフィ)の「会話変数」と「If-Else」ノードを使い、ユーザーの回答状況に合わせて質問を深掘りする高度なアンケートボットの作成方法を解説します。

学習ポイント

  • 会話変数を用いたユーザーのステータス(状態)管理の手法
  • 質問分類器(Question Classifier)による回答の質に応じた分岐設定
  • 変数代入ノードを使ったデータの保存と更新プロセス

スクリプト

1. 講座方針の変更と画面共有の確認

(00:01:16 - 00:04:20)

佐藤さんから次回は零点だよと言われてたかもしれませんが、方針を変えて今後ディフィーの方も少し習熟度を上げていく方がいいかなというところがありまして、何回かユースケースというか。こういった使い方できるよねという話だったりとか。細かいところの話とかも週を追うごとにいろいろやっていければと思っております。ということで。画面を共有していきますので少々お待ちください。そうしましたら、画面が画面の共有で。どれいいですかね?こっちにしましょうか?特に何も見えてない状況ですかね?では、こちら見えてますでしょうか?見えてますか?お待ちくださいね。ちょっと一旦共有を落とします。いっか、これで見れるのか。恐れ入ります。もし見えてればコメントで見えてます。といただければと思います。ごめんなさい。ちょっと私の環境だと初なので、こちらがお手数をおかけしますが、すいません。見えてますか?共有画面が。見えてないかも。ごめんなさい。可能でしたら、ハンズオンチャット版のチャンネルに見えてるかどうかのコメントをいただけますと幸いです。ありがとうございます。よかったです。

2. 会話変数の解説とチャットフローの作成

(00:04:21 - 00:11:47)

助かります。ありがとうございます。今日はちょっと難しめの変数というものですね。会話変数というものを使うにあたって、それを使うとどういうことができるのかみたいなところを話をしていきたいと思います。いきなり難しいのは作らないんですが、結果的にこんな感じのものを皆さんで、今日一回か二回に分けて作っていけたらなと思っています。こういうのでだいたいこういうことやると10個以上とか20個とか作るにあたって、すぐに考えるとパパパとたくさん使えるようになるというところを増やしていきたいと思います。では、最初に皆さんもディフィー使えていると思いますので、新しく最初から作っていきたいと思います。ということで、最初から作成をしていきましょう。ここではチャットフローを使えます。今回どういったワークフローと言いますか、チャットフローを作るかというと、アンケートをするにあたって、何かしらのアンケートを答えてもらうときに、例えば、今回のセミナーどうでしたか?ウェビナーどうでしたか?って言って楽しかっただけよりも、もうちょっと掘り下げて聞きたかった場合に、そのようにAIに聞きに行かして。もうちょっと掘り下げて十分かなと思って次の質問に移ってもらうみたいな感じですね。そういったそのユーザーの回答をちょっと掘り下げるということができるようなアンケートを作っていきましょう。という時にちょっと会話変数が必要になってきます。それを会話変数とは何ぞや、どんな設定をするのか、どういう扱って、ワークフルで扱っていくのかをちょっとずつやっていきたいと思います。ということで、アンケート。深掘りアンケートと書いていきましょうか。深掘りアンケートと書きまして。ここら辺は何でもいいので、自分でこういうふうにいろいろとやってこういうアイコンとかを変えておくとわかりやすかったりするので作成をします。こんな感じで。深掘りアンケートの一回目に関しては、まず開始があってLLMがあって、回答があるというところなんですが、どういうことをやるかというと、プレビュール、例えば、開始したいときにアンケートをしてほしいという時に、そのアンケート内容がどんどん。段階によって違うアンケート違う回答質問してもらいたいので。これが。ここに会話変数ってこれ使ったことありますか?使ったことない方、ディスコードのところに書いてもらえればと思います。どのぐらいの方は使ってないですかね?この会話変数というのが使えるようになると非常に便利なので。使ったことないですね。わかりました。プログラミングやコーディングといったところですと会話変数と言わずに、単純に変数です。数学やられたことありますか?X。とかYとかって言って、そのX。やYの中に、いろんな数字が入ってもいいよみたいな感じのものですね。それを変数と呼んだことが学生時代の話を記憶にあるかと思いますが、いわゆる何でも入れていい箱みたいなところを作っていきます。これは後で作ります。一旦は。まず、何をしてほしいかというと、単純に今からちょっとコピーアンドペーストでコメントのところに。こんなこんなものを。今、ハンズオンチャット版の方にコピーアンドペーストできるような出力の仕方でプロンプトを書いたものがあるので、これ枠の方。右上のところにこんな感じでこれですね。ここわかります。ここにコピーボタンあるので、ここでポチッと押すとコピーできます。ちょっと見づらいんですけど。コピーをして。このLLMのところですね。ここでシステム。ここにドカッと入れちゃってください。ハンズなのでゆっくり行きましょう。セミナー参加者にアンケートを取るAIアシスタントです。あなたは。日本のビジネスパーソンを対象として、親しい仲間として振る舞いながらフランクかつ丁寧な口調でコミュニケーション取れます。とまあちょっと。フレンドリーな感じにしてねみたいなことを難しく言ってるだけで。セミナーのディテールとしては生成AI活用セミナー。これXML形式と呼ばれる書き方ですよね。アンケートの目的は?と言って、だだだだと書いてあります。要するに必要な情報を聞き出してくださいというところがミソになります。まずこのRequired Questionsというのが、これが必ず必須質問という意味で、一つ目のセミナー満足度どうですか?っていうように聞くようにしますと。アンケートを実施する際は以下の点注意してくださいということで、このあたりはもう本当にカスタマイズできるんですが、例えば参加者の回答は自由記述にしてくださいとか。勝手にその選択肢出さないでねとか。参加者に挨拶してアンケートの目的をちゃんと伝えてねとかって一発目だ。こんな感じであります。これでセットを受けやった方は、できました。と教えてもらえればと思います。チャット版の方にですね、オッケーです。できました。システムが出てこない。それはAIモデルが選べてないからですね。三角のびっくりマークになっているところでどのモデル使えますか?っていうのが選べてないので、いわゆるセットができてないので、セットはできてなかったらシステムを入れる場所もわからないよね。ということで表示されてない状況です。

3. オープナー(会話の開始)と会話変数の概念

(00:11:59 - 00:21:44)

そしたら、ここで特殊なことをします。これも一つティップスなので、おそらく皆さん使ったことがないであろう右上のこの機能というところをご覧ください。ポチッと押すと、こんな感じですと。ここの機能のところで会話の開始というのを押します。ここ見えますか?ポチッと押すとこんな風にスイッチが押せるんですね。そうするとオープナーを書くというのが出てきます。オープナーなんぞやと。ポチとしてみましょう。そうすると、会話の開始。ここのオープンメッセージを書いてください。変数を使用できます。何のことですよね?ってところなんですが、これ。一旦このオプションを追加というところを押してください。そうすると、なんか書いてありますよね。これ、アンケートチャットボットと会話を始めるなんていうふうに書いてみてください。これで保存します。保存ができましたと。そうすると、これが果たして何に対しての設定なのかというと、ここで。プレビューを皆さん押してみてください。これです。押しておきます。これ更新しなきゃいけないかな?お待ちよ。更新して。あらっ、出てこないですね。本来こういうのを出そうとしてました。っていうのを一旦見せますね。ここなんですけど、見えますか?これ。アンケートロボットと会話を始めるって言って、ここポチッと押すとこんなふうにアンケートロードと会話を始めるっていうふうに押せるっていうので、最初にオープナーって言って会話の開始をする。何か言うことをオープン。オープナーって言い方をします。なので、これを設定しようとしたんですけど、何かが設定がおかしいので。見てみましょうか?変数を使用できるということだが、何かが。オプションで何か変数を使用できるはずなんですけど。ここで違いはあるかというと、ない。いいですね。最初からトラブルましたね。優勝なんですよね。これ。皆さんいかがですか?出てますか?それとも僕と同じように出てないですでしょうか?一回ちょっと出てみましょうか?プレビューすると出ないですね。なんか会話押せてないな。下の方であれかな。今会話してなかったぞ。なんでだ?有効な機能で何かがおかしいですね。皆さんいかがですか。出てます。よかったよかった。じゃああれですね。私がなんかちょっとバグってますね。なぜかバグっているので、会話の開始をなぜか押したのに保存されないという悲しい現象ですが、皆さん押せているようであればオッケーです。それでポチッと押すと、先ほどの例の通り一番最初に。ここで開始とかってユーザーさんにアンケートを開始してもらおうと思った時に。パッと言えないじゃないですか。ここポチッと押してね。だと一番開始しやすいので、こういうものを行っています。出てない方もいらっしゃるんですね。出ません。出た方と出ていない方がいらっしゃると。ちょっとここ原因確認してみます。まあどっちがどうなぜ出て出る人出ない人がいるのかというと、これ設定かな?なんかの。ちょっと後でこういう設定でしたっていう話は確認して出てない方に対してもお伝えしますので、ただ、これなくても始められるので、いわゆるこのアンケートボットの会話を始めるというのをここで。単純に。出てない方は私と一緒でこうなるかと思いますが。ここに入れちゃってポンってやれば同じことなので。アンケートボットと。これが僕が、エラーが出ているのはなんでかというと。まだ。この設定のAPIをうまくつなげていないので。こんな感じで一回はこんにちはと言って。アンケートに参加いただいてありがとうございます。セミナー後のちょっとしたアンケートにお付き合いいただき嬉しいですってまず聞いてくれます。出ない方は結構いらっしゃいますね。オッケーです。何の設定だったっけな。ちょっとこれ細かい設定だったので後で見ますけど。そうすると、アンケートに回答してほしい時にはこれは早速ですが、今回のセミナーの満足がいかがでしたか?良かった点や物足りなかった点など率直な感想を教えていただけますか?ということで、仮にここで良かったって回答する人もいると思ですよね。もうちょっと本当は何が良かったかを知りたいだと思ですけど。このようにもう少し詳しく教えていただけます。とありがたいです。とかっていうふうにやってくれますが、これ結構動作を制御できなかったりします。なので。ここを。当然プロンプトが上手な人はプロンプトをガリガリガリと書くこともできるんですが、こういうふうなやり方もあるよというのを今日見せたいと思います。まず、ここでどんなことやっているのかちょっとお見せするんですが。まずここでアンケートを回答してもらいますと。一番最初にこのアンケートロボットと会話を始めるってポチッと押すと。ここで。見えますか?このステージ零とかステージイコール一とか。これがステージという名の会話変数なんですが、このステージというのがゼロだったらまだ一回も答えてない。一だと答えた内容がちゃんとしていた。一回目の回答内容がしっかりと答えられていた。ステージ二が二個目の質問の回答内容がちゃんと答えられてました。というふうなこの状態を数字を使って管理していきましょう。ということをやっていきます。わかります。プログラミングとかだとステータス管理とかって言ってなんででしょうね。例えば、わからない方申し訳ないんですけど、ドラゴンクエストとかでキャラクターが。モンスターに毒をかけられて毒の状態になったって言ったらステータスは毒とか。っていう。このステータスというのを言うですけど、あとは。麻痺させられるような。バフをかけられたら麻痺状態とかっていうふうにあれも一つのそのステータスという変数。で。この勇者のキャラクター。今ステータス独。この魔法使いはステータス麻痺とかっていうふうにこういった状態を管理するということをよく変数として使います。これに慣れてくると、いろんな複雑なことをやろうとするときにこの状態というものを管理しつつ、その状態をこのIf/Elseというところで判断させられることができるよね。っていうことから。その変数によって一個目の流れなのか、二個目の流れなのか、三個目の流れなのかということをコントロールできるということは、いろいろと多岐にわたっていろんなことができますよね。っていうふうな考えで会話変数というのを使います。もうちょっと応用があるんですけど、基本的に会話変数というのはそういう意味合いで使われるものが多いです。ごめんなさいね。交代した交代したてでこんなに難しいことを言っているかもしれませんが。これがでわかるようになってくるといろいろとできるというところがありまして、やっていきたいと思いますが。じゃあちょっと手を動かしてみましょう。会話変数まずどこで設定しますか?を先に設定したいと思います。吹き出しのXって書いてあります。吹き出しで会話X変数って言うでしょ?だから会話変数みたいな感じで多分書いてあると思ですけど。ここにポチッと押してもらえますと。こんなのが出ますと。皆さんでも出てますか?大丈夫ですかね?ここでティップス見てみましょうか?対話の情報を保存とか管理する。例えば会話履歴を保存しておくとか、または入れられたファイルとか、もしくは生成されたファイルを保存しておくと。とかですね。ユーザーの設定。やっぱりユーザーからなんかこういう設定をしますとかっていうふうなのが来た時に保存しておくとか。管理っていうのは先ほどの麻痺だったのが、今度は毒にするとかっていうふうなのを管理って言うですけど。こういうことをするものが会話変数と呼ばれるものだよというお話になります。ただこれだけだとわからないのでやっていきましょう。じゃあ、変数を追加ボタンをポチッと押してみてください。そうすると、こんな感じで変数名タイプ。どこから見たような形だと思ですが、ここで変数名をステージとします。先ほどのステージですね。ここまで大丈夫そうでしょうか?続いて。ステージという変数名にした後、今回は扱うデータが。ここちょっと見てみましょうか。扱うデータが。このようにゼロとか一とか番号なので。ストリングというふうに最初は書かれてはいるんですが、ここですね。タイプというところです。データのタイプストリングというふうに書かれていますが、これは文字のことなので、ゼロ、一、二という数字で扱っていきたいといった場合にはナンバーを押します。ここですね。タイプというところのプルダウンというところをして。プルダウンという。この項目を言うですけど。こちらポチッと押すとナンバーというのがあるので、ナンバーをしてみてください。でデフォルト値、いわゆる一番最初の初。ごめんなさい。なんかインターネットが落ちちゃいました。見えますでしょうか?大丈夫ですかね?再度共有します。見えました。よかったそうです。通信が遮断されちゃって。今一瞬全てのインターネットが僕の方で全てのものが使えなくなりました。失礼しました。再度お伝えしますね。このステージのところの話をしてました。ここに関しましては。ステージというラベルですよね。ステージという。名前が貼られた箱。データが入る箱で。その中に入っている最初の値がゼロという設定がなされたと思ってください。ここまで大丈夫そうでしょうか?ここまで大丈夫そうですかね。ありがとうございます。そうなりますと。じゃあこのステージをどうやって使っていくのかをこっちの方でやっていきましょうか?はいっ。まずですが。この開始で一番最初。ポチッと押したら。これ。今プレビューでポチっとあったとします。ポチッと押すならあったとします。なかった方はウェビナー開始。アンケート開始とかって入れてスタートしてもらえればと思ですけど。始まった時はこのままLLMに行ってアンケートを聞かれて。で終わりなんですけどね。もう一回。ユーザーからアンケートが回答されますと。その時にまだ数字としてはゼロのままなんですけど、そこで。これどうするかというと。If/Elseをこの真ん中に置いて。このようにして次に次に。ユーザーから質問があったときに、その質問の内容が。ステージがどうだったかというのをすぐに判断させたいって考え方です。難しいですよね。If/Elseって。皆さんご存知確か使ったと思ですけど、自分で判断させたいポイントってどこでもいいんですが、今回は。例にならって。この例に倣ってですね。これは後でDSLをお送りしますけど。一番最初に判断させます。要するにユーザーが何か入れたらすぐに。これってステージゼロの状態だったっけ?この人ステージ一だったっけ?っていうより早く判断させて後続の流れを分けていきたいっていうのがあるので。こんな風にしていきます。なので。お返しの次にIf/Else入れてあげてください。できたよっていう方、できた方からグッドお願いします。オッケーです。はい、そうしましたら。ここで。先ほどお伝えした会話変数でIf/Else君に判断させましょうっていうやり方なので、このIf/Else。の中にどういうふうな設定をするのか見ていきましょう。基本的に何をするかというと、まず。ここがまず判断する元の場所ですよね。ここが。どう判断するかがここですと。判断先、何をもってして判断するかな。AとBをどうやって判断するかのAが先にこっち。でBがこっちなんですけど。このAの方を。ポチッとして。下の方行ってもらえたら。Conversationって見えますかね。Conversation。これが会話変数のグループの名前なんですよね。カテゴリーの名前です。ここにステージというのがあるのでこれを選んでください。ポチッとします。オッケーですか。で。そうすると、変数がこのように。設置されるとさっきこう腹部とかだったのに。こんなふうに変わるんですよ。変数だからもっと数学っぽく。不等号が出てきたりとかします。今回はゼロだったら。まだ他の一個上とか二個下とかに。こっちの。ゼロだったらこのあたり。下とかに行ってほしくないので。ゼロだったら上に行ってほしいということをします。つまりは。ここで言うと、このイコールゼロだったら。というふうにこれ設定します。オッケーですかね?コンスタントとかバリアブルといったところは、今回は一旦は気にしないでください。これが変数定数なんていうことをやるんですが、ちょっとここまで扱うと理解がしずらくなってくるので、順々に今回はコンスタントだけだと思ってください。定数と呼ばれるものを入れておきます。じゃあついでにあと一と二を使う。ので入れちゃいましょう。このElifって呼ぶんですけど、これがポチッと押すと。二個目の条件。これがポチとすと三個目の条件が出せるので。一個二個三個までなるようにElifをポチポチと押してください。そしたら、続いてここのElif ケース2というところを。条件を追加というのをポチッとします。そうすると。同じようにステージという変数を入れておいて。不等号はイコール。ステージという変数の中身がイコール一の場合ですね。同様に、このケース3のところ。条件を追加をポチッとしてもらって。Conversationのところにあるステージという会話変数を入れてもらって。不等号はイコールのままで。今度は数字が二の場合という条件を追加していきます。オッケーでしょうか?そうしますとゼロだった場合は一個目の方で行くよ。とか一だったら二個目のところからルート行くよ。三個目だったら。三個目が二。だったら三個目のルートで行くよという設定ができています。ここもバツボタンを押してみると、どんな風になっているかというと。こんな感じで。たくさんこう出口ができているわけですね。オッケーでしょうか?ここまで設定できたらグッドボタンお願いします。オッケーですね。はい、ありがとうございます。

4. If/Elseの動作確認と変数代入

(00:34:31 - 00:41:07)

はい、そうしますと。じゃあここで一回。再度プレビューでやっていきましょう。今はステージの初期値ゼロのはずなので、ちゃんと開始した後は。このままつーっと通って、今ステージゼロだよねっていうことですーっと行くはずです。いわゆるちゃんとそのまま動くだろうね。というところを一旦確認してみましょう。ということでプレビュー行ってみましょう。先ほどのオープナーがある方もポチッとしてみてください。オープナーが表示されなかった方は。なんでしたっけ?アンケートですね。アンケートに回答はいします。とかって入れて、そうすると確かにちゃんと。If/Elseのところの一番上のルートを通ってちゃんと答えというか?回答と言いますか。反応が来たよねっていうのはわかると思います。ここまで大丈夫ですかね?じゃあ。ここで初めてユーザーが何かを回答したときに。その回答内容というものが。ちゃんと合ってるかどうかを判断させたいんですけど、ここで。毎回一。だとゼロだとずっとここで。上のルートしか行かなくなります。わかります。なので、上のルート一回行ってもうこのロボット君が質問してくれたらもう上のルート行かずに。次に二個目のルート。一個目ではなく二個目のルートに行ってほしいので、このステージをゼロから一にする必要があります。ということで。どうするかというと、どこでもいいんですが。このあたりにしましょうか。ここでこの変数代入というのを入れます。わかりました。今どこにはどこにあったか。もう一回ポチッと押すと。変換のところの下にある変数代入。これを使います。で。変数を何を使うか扱うかですが、右のボタンを押してもらって。そうすると。変数代入する変数どれですか?っていうのをまず選ぶ必要があるので、今回まだ一個しか作ってないので。このステージですよね。これを選びますと。ステージに変数を入れるのよ。と。何を入れますか?の前にどうやって入れますか?の設定が必要です。これは右側に上書きなのか、クリアするのかセットなのか。この下のところはわかりにくいので、今回は割愛します。これ、プログラミング言語になやつなので。毎回一個ずつ。一を増やしていくとか。足した結果のものを出すとか、引いた結果のものを出すとかっていうやつなんですけど。今回はセットを入れます。セットでいいです。セットを押してください。セットっていうことは設定するので何を設置するんですか?ということで。次に一をあの設置しますよと。こういう設定をします。変数代入ですね。まあじゃあちょっと念のため。例えば。ステージ追加。次に進むとかって言っといて。一。とか入れておきましょうか。ステージワンとか。こんなふうにしてここで何やってるのかわかりやすくすると他の人でも。わかるようになるような感じですね。これでセットションというします。そうしましたら。ここまで大丈夫ですか?この変数代入の設定が完了した方、グッドボタンください。オッケーですね。はい、そうしましたら、これでもう一回ちょっとですね。このリフレッシュをしてもらって、最後はもう一回始めてみてください。アンケートを開始すると、一回目は当然ながらうまくいってます。一番上のルートを通っているので。だが、しかし。先ほどは変数を代入しましたよね。と。なので、ステージがゼロから一になりました。ということは、このIf/Else君のところでは。ステージがゼロで上に行ったものが次一だからここになるはずです。と。これになるときにステージ一の時の行き先がないので、あれ?ってなるはずなんですよね。なので、例えば面白かったと言ってみましょう。ポチってやってみると。ここではい、止まりました。動かなくなりました。ということは、ちゃんと状態が変わった。変数の値がゼロから一になったので。ここでさっきは一番上を通っていったけど、次は二番目を通ろうとしている。っていうことをしています。ここまでできた方はグッドボタンをお願いします。オッケーです。

5. 質問分類器による回答内容の判断

(00:40:58 - 00:51:21)

そうしました。らですね。ここのIf/Elseのところで、主に二つ。一つはステージの値が引き継がれていっているのと、もう一つが。アンケートの感想をユーザーが答えているはずなので、その感想内容があるはずです。と。その感想内容をちゃんと感想言えてんの?それとも適当に答えてない?という判断をしてもらう。そんなことをします。ここで使ったことはあまりないかもしれませんが、質問分類器というものを使ってみます。ちょっと入れてみてください。ここですね、これ一個目のElifのところ、ケースに。ステージが一のところ。ここでElifでプラスボタンポチッと押すと選べるので、そこで質問分類器というのを選んでください。中身を見てみましょう。ちょっと私のモデルをどうしようかな。ミニでいいかな。そうすると何かというと。ここで。このモデルがあるってことは。クラスの一とか二に対しての。いわゆるプロンプトにあたるんですが、ここで。それぞれのプロンプトで。合致する方に分類してくれるんですよね。どういうことだとどういうことってなると思います。ここでやってほしいことが。このように。具体的なセミナーの要素に関する感想が不足している。が、クラス一。クラス二が。具体的なセミナーの要素内容、講師進行などに関する感想がある。足りているって書いた方がいいですかね?不足している。に対して。こんなふうにします。じゃあちょっとこれを。ディスコードの方に貼り付けてあるので。使ってみてください。上が不足している、下が足りている。を使ってみてください。セットできた方、グッドボタンお願いします。オッケー。そうですね。そうしましたら、ここで。そしたらですね、上の場合。上の場合でこのように。上のところでこうやってアンケートの目的をたらかんたらって書いた後で下の方行って。何をしたいかというと。不足している場合って。もう一回上に戻したいんですよね。これに戻したいので、ちょっと引き伸ばしましょうか。全然質問できてないじゃん。じゃないや回答できてないじゃん。となるので、もう一回決めは上のルートですとします。もし回答ができてたら。ちゃんと回答ができてたねって言ったら。じゃあ、その回答内容を。どうするかというとまずですね。LLMポチッと押してもらって。ご自身の好きなやつで結構なので。ここで。ちゃんと回答がなされていた。全然短文じゃなくて、そこそこなんか言ってくれてた。といった場合に。そこのどんな話の内容なのかっていうのを、どんな要素を言ってくれたのかっていうのを一応抽出したいよね。という想定で。こんなものポチッと押しますと。参加者がセミナーの要素内容、講師、進行などを具体的に挙げた要素を箇条書きで抽出して、箇条書きの結果以外は不要な出力は行わないでくださいということですね。これを。じゃあポチッと。ディスコードのところに置いたのでコピーアンドペーストしてください。もう一個の下ですね。ユーザーのところ必要なので、ユーザーで。そもそも回答者の。回答した内容が入ってなきゃいけないので、ここで。スラッシュをして。開始。のシスクエリっていうのを入れますと。そうすることでユーザーの回答がこのユーザーの入力欄に入って。システムの方は。指示したプロンプトの通りに動いてくれるであろうという感じですね。ここまで大丈夫そうでしょうか?もうちょっと待ちましょうか?これ一個前に戻るんですが、ここ。ちょっと特殊な書き方してる。してますよね。なんか質問分類器だと。そもそも。質問分類器だとこれ。デフォルトで入力。変数で今開始ってこれ入っちゃってるから気にせずに進めちゃいましたけど。ここですね。こうやって選べたりするので、今回シスクエリっていうのがもう最初から入ってたんですが。本来はここも編集します。これ、ちょっと今私はちゃんと伝えられてなかったんでお伝えします。と。入力変数が。ユーザーの回答した内容ですよね?ってここが設定されてました。最初からなので、違う用途であった場合には、ご自身でここを書き換える必要があります。と。この回答内容の入力に対してもし具体的なセミナーの要素の内容が、感想が不足していると、このモデルが判断したら、クラス一。上のルートに行くよっていうことをやるノードなんですよね。もしも具体的なセミナーの要素に関する感想が足りているよって。LLMが思ったらクラス二のこの下のルートに。進めていくよっていうようなことをやるというふうに理解してください。大丈夫、理解したよっていう形で送っておくことをください。ちょっとわかんない。えっということっていう方は恥ずかしがらず。なんか鳴きマークかなんかありましたっけ。大丈夫そうですか?というふうな、ちょっと特殊な形なんですが、こういうふうな使い方ができます。というところですね。もちろん、単純にクラスという風にこの回答内容は、例えば営業関係だとかって言って営業とかって言ったりとか。もしくは人事関係だということで、人事というふうなアウトプットするとかそういうこともできたりします。そうすると。上のいや質問足りてないじゃん。だともう一回。聞いてくるんですよ。質問足りてないからもうちょっとちゃんと掘り下げて言ってくるんですよ。ちゃんとここは掘り下げるようにしてね。っていうプロンプトがあったはずなので。必要な人で参加者の回答に対してフォローアップの質問をしてくださいという質問に応じて。と言ってあるので、これもプロンプトが多分聞いてくると思います。下のこの質問分類器のノードの下ちゃんと足りてますねってなったらこっちに来るので。そしたら。回答内容をちょっと箇条書きで抽出しましょうというふうに処理が始まる。そんなイメージですね。

6. 変数代入による回答内容の保存と次の質問

(00:51:22 - 01:04:15)

あっという間にちょっと50分経っちゃったので、あとちょっとで今回は終了なので結構ゆっくりやりますが、ここができるようになってくるとまた変わってくるので。そうしましたらここで。このノードで。回答内容を抽出してくれて、どういう回答をしてくれてるよっていう要素を抜き出してくれてますから。それを。あとあと、今回は使わないんですが、例えばの話。その要素を。スプレッドシート。Googleのスプレッドシートに置いておきたいとか。っていう時にそのデータを一応保存しておきたいんですよね。なので、ここで。変数代入として。回答内容を保存する変数に代入したいんですが、そもそも変数がないわけですよね。難しいこと言っているかもしれませんが、頑張ってきてもらいついてきてもらえればと思ですけど、いわゆるそのデータを。保存する箱をまだ作ってないので。箱作りましょうとなります。じゃあデータの箱をどう作るのやりましたよね。こちらですね。ここポチッとしてもらって。会話変数で新しく。回答内容を保存する箱を作ります。変数を追加をしてもらって。今度は何するかっていうと、回答。しかも。クエスチョン一に対する回答なので、例えば。Q1のアンサー。という名前の箱を作ります。回答内容なので、今回は文字ですね。文字なのでストリングのままにします。一番最初特に何も入れていない状態なので、さっきは。ステージというものをゼロに設定したんですが、今回は特に何も入れてなくて必要であれば。回答内容を抽出したものを入れる。なので、ここを何も入れなくていいです。オッケーですかね?これは。状態で保存します。じゃあこのLLMにここちょっと名前変えちゃいましょうか?回答内容要素抽出。ちょっと今一としておきましょう。あと保存ですね。抽出で一。としておきます。この。ここで出たアウトプット。回答内容でなんかいいとか言ってくれたよ。とかディフィーのこと言ってたよ、natlのことでしたよっていうのを抽出してくれたものに対してデータ保存したいなーということなので。ここに。先ほど作った。この変数。使ってデータ内容を入れたいので、変数代入というものをまた使います。と。変数のプラスボタンをポチッと押すと。今回は。ステージではなくQ1のアンサーを。対象として、この箱に対して、今回は。上書きというのをやります。上書き、何を上書きするのかといったら、このパラメーターを設定というところをポチッと押すと。こんな感じで候補が出てくるので。ノードの名前なんだったかというと、回答内容要素抽出。一。これ名前変えておくと便利ですよね。どのノードだったっけ?っていうのはわかる。それのアウトプットテキスト。これを。選びますと。そうすると、ここの変数代入というところでは。Q1のアンサーの文字を。回答内容要素抽出一で出したアウトプットの内容で上書き。に入れてくれますよ。ということですね。一応ここもわかりやすくしておきましょう。回答内容要素抽出一。のデータ保存なのでデータ保存。こんなふうに入れておきましょう。こんなに長くする必要はなくても、わかればいいので。こういうことをします。そうしたらですね。データ保存がこれでできましたと。じゃあ続いて何をするかというと。一個目のアンサーをされました。で、それが回答としては十分でした。十分だったので、その要素を抽出してデータを保存しました。次にやりたいことは二個目の質問をしたいです。一個目オッケー。じゃあ次の質問なんだけどということをしたいので、そこで誰がやってたかというと。この人がやってたんですが、この人は一個目の質問担当だったので。次二個目の質問をします。なので新しくLLMを追加します。これコピーでもいいですね。ちょっと一旦コピーしましょうか?複製して。これを削除して。これを。拡大したり縮小したりすると。なかなか選べないですよね。これつなげて。大丈夫です。ついてこれてます。もうちょっとで終わりなんで今回は。要素を保存した後、次の質問に移りたいです。と。次の質問をさせたいんですが、ここは一個目の質問なので、次の質問をしてもらいたいです。一応テンプレートですね。ごめんなさい。変えてきたかったな。シスクエリとユーザープロンプトを入れるのはなぜですか?一緒にしてもいいんですが、ユーザーというところが、どういう入力がなされるのかというのは想定しやすいというのがあります。ここにユーザーっていうのがあるんです。けれど、これがチャットGPTとかで言う。我々が入力する側。でシステムというのがチャットGPTの言うところの向こう側ですね。チャットGPT君たちの方で決められた回答の仕方っていうのがこう命令が与えられているわけですよね。OpenAIの社員さんとか。それが最終的には一緒くたになって全部コンピューターが処理してくれるんですよ。ここでユーザーというところを。なくても動きますが。ジェミニだとこれちょっと入れとかないと動かないです。クロードもこれ多分クロードは入れなくても動くんだっけな。クロードはシスクエリにして、もしこれを外したとして。テストってやったらどうかな?動くっちゃ動きますね。クロードは動きますが、これジェミニだとユーザーに何の入力がないと。エラーになったりするので、入力。これは入力として。の内容。これは指示をしてLLMに動かさせたいない。入力内容は入力なんですけど、どういうふうに処理をしてほしいのかがシステムプロンプトだと思ってください。こちらが二つ目のところの部分。一旦ですね。同じように。ディスコードに送りますが。こんな感じでもうこの二つ目セミナーで得られたもの以外は一緒です。ちょうど真ん中のところですね。真ん中あたりにある二つ目セミナーで得られたもの以外のところは一緒なんですけど。これをこちらの。送りました。ディスコで送りました。この新しく一番最後に今追加したLLMのところのシステムのところに入れてください。質問二とかやっときましょうか?質問二とか入れて。ノードの名前が変わっといた方が良さそうですね。というところで。最後に。回答というところを。入れとかないとこの。プレビューの声に出してくれないので、内容なので、回答というところを。このように質問二の後ろにつなげて。何を回答するんですか?なんですけど。スラッシュ入れたら。質問二ですね。質問二。のノードのアウトプットのテキストを出しますよ。とします。そうすると今どんな状態かというとちょっと引き気味にします。が。最初に開始した状態だとステージゼロなので、このIfノード君のところでは。ゼロ。一番上ですね。一番上のところのルートに行ってくれます。と。最初の回答なので一つ目の質問です。って言ってくれて。で終わりなんですね。その時ステージ一というのを入力してくれます。じゃあ次に。ユーザーがなんか回答した時にはまた戻って次ステージ一なので。この真ん中のところの。判断されます。次ステージ一なんだね。じゃあここから進めましょうと言って。真ん中のこの質問分類器くんのところに来てくれて、質問。ボルーキ君がちゃんと答えてくれてるのどうだろうっていうのを判断してくれます。ちゃんと答えてないじゃんって言ったら上に戻されます。同じことが繰り返されるので、まだステージ一の状態のまま。ちゃんと答えてくれたなっていう時には下のルートに行くので。このように。ちゃんと答えてくれたときの内容を抽出してくれて、抽出した内容を。回答内容を保存するための変数に入れてくれて。その後で。二つ目の質問をしてくれるというようなことになります。ここまで大丈夫そうでしょう。

7. まとめと次回の案内

(01:04:16 - 01:06:33)

今日中途半端で終わっちゃいましたが、来週これの続きをやっていきます。基本的にどういう風な変数を使って。If/Elseをどうやって使って、どういう判断をさせて。どんなふうに分岐をさせて、どんな処理ができるのか?みたいなことをもうちょっと深掘りしていって、よりいろいろと汎用的に使えるようなスキルを身につけられるようにお伝えしていきたいと思いますというところで。この後。dslファイルかな?お渡しをしておくので。もしご興味ある方はダウンロードいただいて、ご自身のインストールしてもらって。予習とかしてもらっても構いませんし。といったところで。頑張ってもらえればと思います。オッケーでしょうか?ちょっと。オープナーのところがあれ?ってなったところあるので、ちょっと調べておきますね。わかり次第。ハンズオンチャット版のところに入れとくので。っていうところで皆さんよろしいでしょうか。ありがとうございます。というところで。また、質問あれば、質問のハンズオンチャット版でいいかなと思うので、そこで質問いただければと思います。来週ハンズオンやっていければと思います。今後。ハンズオンだけじゃなくて、ちょっと基礎的な部分ですよね。網羅的な部分とかといったコンテンツも作って、皆さんがオンデマンドでできるようにしていきたいと思います。ハンズオンはなるべくそのいわゆるユースケースというか。体系的に基礎並んだ後にこういう作り方できるよね。こんなのもできるよねとか議事録作っていたらこういうことできるよね。みたいな。そういったものを解説ができたらなとは思っている次第です。というところですね。じゃあまた。来週この時間帯でよろしくお願いいたします。本日も。多くの方がお休みかと思いますが、この時間帯でも。ご参加いただきありがとうございました。また来週どうぞよろしくお願いします。