Dify実践: 対話変数で質問応答を深掘り
学習ポイント
- 対話変数(String型)を用いたセッションを跨ぐステータス管理の方法
- 質問分類器(回答の質を判定するロジック)を用いた条件分岐の設定
- 回答内容から特定の要素を抽出・保存し、動的に次の質問を生成する手順
スクリプト
1. はじめの挨拶と準備
タイムテーブル: 00:01:07 - 00:02:41
よろしくお願いします。ということで、今回もやっていきたいと思います。皆さん聞こえますでしょうか聞こえるようであれば、アクションをお願いできたらと思います。ありがとうございます。ではやっていきましょう。それではこちらですね。見えますでしょうか?見えてますか?オッケーですね。ありがとうございます。じゃあやっていきましょう。今回もですね。この後、残りの部分作っていて、深掘り用のアンケートを反省させて、というところで、今日は目指していきたいと思います。前回の内容はまた前回でアーカイブがもうアップされたかアップされてなかったらちょっとまたスタッフさんにお伝えしますが、見てもらえればと思います。行きましょう。
2. 前回の設定内容の振り返り(変数と状態管理)
タイムテーブル: 00:02:41 - 00:03:51
簡単に軽く、前回の設定内容をお伝えすると、開始からここですね。変数としてこの Q1_answer とか stage ですね。このあたりの会話変数というのを設定しました。これによってですね。例えば stage であれば、回答対応の状態。stage 1 ちゃんと回答してましたとか、stage 2 は Q2 の方回答しましたとか、そういったステージの管理、状態管理とか言いますが、ステータス管理とかこういったものをここでやりましょうみたいな話でした。Q0_answer というのはこれ何かというと、回答者の回答内容というのを、このワークフローの中でずっとこうやり取りをして、一回目やり取りして二回目やり取りして三回目やり取りしてという時に、いちいち覚えてられないのがこの LLM の各ノードだったりするので、それをちゃんと保存しておいて、毎回のやり取りで覚えていってもらいましょうという内容でしたね。これの続きを作っていきたいと思います。ということでやっていきましょう。
3. 問い合わせと自己解決の重要性
タイムテーブル: 00:03:53 - 00:04:47
ではどこまで設定したのか、ちょっと中を見てみますとここら辺全部やりましたね。前回のオーナーなんですが、ちょっと問い合わせなんか僕の方ではうまく出なくて、ちょっと問い合わせなんかもしているんですが、ちょっとその回答内容まだもう少々お待ちいただければと思います。よろしければあの将来ですね。問い合わせもディスコードもありますし、ディスコードで問い合わせしたんですけど、ちょっと返ってこなくて、また確認しておきますが、よろしければご自身でも問い合わせしてみてください。最終的にこう自分で解決をするというところになってくると思うので、案件とか受けた場合ですね。そのあたりもぜひご自身でも問い合わせとかやってみてください。こちらもわかり次第、回答は入れておきます。ということでやってきます。全部やりましたね。
4. ステージ2への更新設定
タイムテーブル: 00:04:47 - 00:09:40
続いてなんですが、ここでここの内容ですねこのルート else からこの下のところ stage 1 になって、このルートで質問分類器があって、ちゃんと内容が足りてましたよねというところの回答内容に対して、このルートだと言ってるんですが、ここのあたりって回答内容の要素を抽出して、その要素を保存をしておいて。質問内容を、回答内容じゃないや、さらに次の質問をするという出力をするという話でした。これ、ステータスですね。ステータスのところでこのステージのところを更新しなきゃいけないです。なんでかっていうと、ここでもう新しく次のステージとしてここですね。ここの部分で次のルートきて、また質問分類器を作んなきゃいけないので、この質問 2 の新しい質問に対して新しい質問分類器作ってこれちゃんと回答してるの?それともできてないの?といったところのルートを作らなきゃいけないと。そのルート行かせるためには何しなきゃいけないかっていうと、この stage と呼ばれているところを更新しなきゃいけないです。なので、やっていきましょう。
ステージを更新するために何をするかというと、このあたりの上の方のやつをコピーした方がわかりやすいですかね。このステージ更新、これをコピーして使います。複製をしまして、そうするとここに出てくるんで、こっちで持ってきて、ですね。ここのルートを通るのと同時につなげちゃいます。こっちに揃えてもいいですし、こっちに揃えてもいいんですけど、ちょっと見た目上じゃあこのあたりに揃えておきますか?で、ここの中をポチッと押して見に行くと、ステージが 1 の状態ではなく今度は 2 にします。いいですね。2 になっちゃうな。こうしましょう。ポチポチとして 2 にしましょう。で、ステージ 2 にした状態で、これぶっちゃけどこにつなげてもいいんですけれども、ここでもオッケーですね。これが一番わかりやすいと思います。もしくはこっちにつなげても大して変わらないですね。なんでかというと、単純に stage という変数に代入をしただけなので、このルートどこにつなげても影響はないので、見た目上わかりやすくしてもいいですし。ここはこだわりですが、もう最後のところにくっつけるのが一番ロジック的に普通では?と思うのであれば、ここにつなげても大丈夫です。ここまでよろしいでしょうか?これなぜ stage に対して 2 を更新するようにしたかというと、次にまた新しくこの投げかけられた質問 2 の内容に対して、ユーザーが回答したときはここで stage 2 の時というルートに行ってほしいからというお話なので。なので、stage という変数をここで 2 にしようという内容ですね。こんな感じになっています。わかりますでしょうか?大丈夫ですかね?ではこのステージ追加のところ、ちょっと名前も変えておきましょう。ステージ追加。次にステージ進む。でステージ 2 です。ここまで終わりましたらグッドボタンを押してもらえればと思います。それまでちょっと待ちたいと思います。ありがとうございます。3 名ですね。あともう何名かいらっしゃるはずですね。あともう一方いらっしゃるかとは思ですが、オッケーです。ありがとうございます。
5. 質問分類器2の作成と接続
タイムテーブル: 00:09:41 - 00:11:22
では続いてまた新しくこちらから来たこの先のものを作っていくので、そうしましたら、これ質問分類ですね。質問分類器というので、今度は 2 にしておきましょう。2 でも結構ですし、えっと、例えばなんだろうな。2 つ目 質問 2 とかしておきましょうか?といったところですね。で、それに対してこの Case 3 のところ、stage が 2 だったときの線をくっつけますと、この中見ていきます。質問 2 のところで、内容はこれは変更しなくて大丈夫ですと。また、この質問新しい回答に対して、ここで質問 2 に関してやってくれるので、特にここはですね。いじらなくて大丈夫です。で、仮に回答内容に対しまして、ここの回答内容に対して、ここで質問内容がなんかちゃんと回答してないねって言った場合に、それが上のルートですね。
6. 回答が不十分な場合のルート設計(質問2への再接続)
タイムテーブル: 00:11:22 - 00:15:52
これどこに接続すると思いますか?皆さん、ちょっとコメントもらえればとぜひ考えてみてください。ここに接続するんじゃない?みたいな。いかがでしょう。考えてますか?皆さん間違ってても全然いいので、むしろ間違えて間違えた方が、質問 1 に接続する。なるほど惜しいですね。素晴らしいです。質問 1 に接続するとどうなるかというと、これですよね。そうするとここって質問 1 の回、また質問 1 に関して AI の方から質問をしてしまいますけど、今ってこの質問 2 が終わった後のステージ後の状況なので、となるとどうなのか。もう今のお話はほとんどヒントにヒントが出てきちゃったかなと思いますが、さあ、どこでしょうか?ぜひコメントもらえればと思います。難しいですかね。今書いていただいてますね。ありがとうございます。そうですね。質問 2 に接続します。つまりはここの質問 2 のところで出力した内容がこのチャットですよね。このプレビューのチャットで出てくると。ここで質問 2 の内容がここで AI から表示されますと、その回答内容を入れました。というのが、また新しくここにあたるわけですよね。新しい開始でだっと来てここでなんかちゃんと質問を返してないねって言った場合には、またもう一回質問 2 に関する深掘りして質問してもらうと。深掘りして質問してもらう指示をしてたのはここでした。中身見てみるとこんな感じですよね。必要に応じて、参加者の回答に対してフォローアップを質問してくださいというここが入っていますとか、追加のコメントや提案がないか尋ねてくださいとかなんか色々ここら辺に書いてますね。これを動かさせたいので。なので、ここで言うとこのこう繋げるんですよね?そうすると、仮に質問分類器の質問 2 でこの上のルート、あれ?なんかこの人ちゃんと質問 2 の回答してないねって判断された場合には、もう一回その内容をこっちに受け取っていってもらって、ここで回答しに行ってもらうと。で、ユーザーに関してはこれ sys.query って最初から入っているので、質問 2 に関する回答がここに自動的に入るようになってるんですよね。今回動くルートがここ来て、ここを来て、こう来てこう来るルートなので、ここの sys.query という回答内容はここを通っていって、ちゃんとここに渡されるということになります。
7. 回答が十分な場合の処理(要素抽出と変数保存)
タイムテーブル: 00:15:54 - 00:21:11
じゃあもう一個のルートですね。これは Class 2 と接している方、ちゃんと答えてるよね。質問 2 でもという話はどんなふうに作っていくかなんですが、前回のここのら辺ですね。ここをを同じ作り方をすればいいので、真似ていきましょうということです。なので、前回の福島カレンテコピーしていきながら見ていきましょう。まず、回答内容の要素抽出 1 というのをコピーアンドペーストをしていきます。複製ですね。複製をしていきます。複製しまして、このあたりでやっておきますか?ちょっとずらしましょう。で、下からつけるとこっちの方がいいですね。このあたりに揃えておくといいですね。一応名前がわかるように、抽出としては 2 としておきましょう。中身に関しては同様で大丈夫です。で、続いてこちらですね。回答内容自体を抽出したものを保存するということですね。なので、これも複製をしましてこんな感じですね。で、つなげておきまして。この上のところが要素抽出 2 に対してのデータ保存ですよね。こうしておきます。今回ここ見てもらえればわかるんですが、ここ テキスト ストリング というところがこれ真っ赤になっています。なんでかというとですね、これってここから取ってきたものという認識をしてるんですね。ちょっとこっち側を見ますと、こっち側ですと、特に赤マークのエラーが出ていないです。これはなぜかというと、Q1 というごめんなさい。この変数に対してここから引っ張ってきたこの値を入力しますよと入れているので、特にエラーは出てないです。それをコピーアンドコピーして複製した場合には、ここから取ってくることを想定した値で設定されているので、でもこっから繋がってないと、むしろこっちから繋がってきてますから。あれ?なんか見当たらないよって言って、無効な変数として出てきます。なので、ここをまず書いてあげます。どこからのもう内容を取ってくるかというと、この回答内容を要素抽出 2 で出力されたものを持っていきたいので、回答内容を要素抽出 2、これですね。ここに書いてありますね。ここに書いてある下にあるこのテキストとされているこの出力内容というのを選びますと、そうするとちゃんと入りました。上がこれ。Question 1 質問 1 の回答内容を入れる箱が設定されていて、これはこのままだとこの上のルートですね。ここでせっかく入れた内容がこっちで上書きされてしまいます。つまり、質問 1 で回答した内容が覚え込ませていたのに、質問 2 で回答した時点で上書きされてしまうと、これは不都合なんで新しく質問 2 の回答内容を保存する箱を作る必要が出てきます。何をするかというと、これですね。この会話変数の設定のところで新しく箱を作る必要が出てきました。ということで、変数を追加というのを押します。ポチッと。今回は Q の 2 に関しての回答内容なので、Q2_answer と入れておきましょうか?で、タイプというのは文字なので String というのを選んでおきます。前回やりました。Number とか色々あるよねという。これ、ちょっとオブジェクトとかになってくると、エンジニアプログラミングとかの話になってくるので、はてなになりやすいですが、今回は簡単な String を使います。文字を扱う場合には、String と覚えておいてください。デフォルト値というところは、最初にえっと入れといた方がいい時もあるんですが、こういう文字の場合には基本的には入れなくて大丈夫です。理由がなければ、基本的にデフォルト値とかに入れないで空白の状態にしてください。この状態で保存します。
8. サーバーエラーとその対処(スキップ)
タイムテーブル: 00:21:13 - 00:29:08
そうしますと、このようにですね。Q の回答出力を保存する箱ができたので、じゃあここですね。ここの Q0 で回答内容を保存したい場所のこの設定で、今は Q0 が選ばれている状態になっているので、これを一旦この右のバツで削除して、送られましたね。アプリケーション。エラーでクライアントサイドは、エクセプション。ヘズオカール。ローリング。ブラウザコンソールがたら。なるほど、なんか怒られましたね。今ブラウザのコンソールがなんか怒られましたね。クライアントサイドでいきなりなんか。おやあ、壊れたっぽいですね。困った。じゃあ違うところに持っていけないかな。ちょっとお待ちください。壊れましたね。これ、私のサーバー環境。自分で立ち上げているサーバー環境なんですが、なんか壊れたので、ちょっと別のところに移して今使えるように急いで作りますね。ちょっとお待ちください。サーバーが落ちちゃったのかな。違うなぁ。他のところでも死んでるってことはブラウザは良くないのか?なるほど、ちょっと共有を一旦止めますね。多分、ブラウザの方で何かの変なのが起きてる。からブラウザを変えます。おそらくブラウザーだな。これは。もしかするとですね。行けたなあ。でもダメだ。ブラウザ。クライアントサイドのエクセプション。ハザーカード。バイルローリンスト。皆さん使えてますか?ご自身の。は。皆さん使えてると、なるほどということは私の PC 環境だな。オッケーです。ありがとうございます。ということは私の PC 環境かネット環境ではないんですが、ちょっとお待ちください。ああ、これは。なんか悪さをしていますね。なぜだ。コンソールで。ちょっとこういうのも共有した方がいいかもしれないですね。なんかこういうの起きちゃった時に。あれどれだっけ?共有でむしろ。もしこれでちょっと 10 分ぐらいでダメだった時には一旦今日を中止とさせてもらって、その分すぐですね。申し訳ないんですが、再度会に回させていただくかもしれませんが、せっかくなので、エラー起きている時にどんなふうに対処するのかとか、そういったところもなんかそのティップスにはならないとは思ですが、参考になった際はですね。今ですね。なんか、例えば、こういうふうに僕、私結構 Claude 使いますけど、例えば仮に Claude のやつで。こんなふうにこんなエラーが出るので、これをもうスクリーンショットして。で、これどういうこと?って入れて、そしたらバーっと出てくるので、ブラウザーコンソールに表示されている具体的なエラーメッセージを見れば原因を特定しやすくなります。と言われました。なので、ここに対してこのブラウザコンソールというのをスクリーンショットして入れて。で入力した内容をこのエラーメッセージで分析をお願いします。なんて言ってやったらなんかできるかなと。ちょっとですね。Google Chrome もそれから Brave もダメで Safari だといけるのか。Safari だといければまだ望みはある。少々お待ちよう。パスワード。ああ、これもダメだな。ビルドが失敗しているということは、多分サーバーはやっぱダメなんだろうな。サーバーがダメだったらそもそも。サーバーがダメだとしたら、そもそもですね、他のやつで死んでいるというのがおかしいところもあるんだが、例えば、これだったらいける。いけたっぽいですね。オッケーです。オッケーです。ちょっと 3 つ目の環境で大丈夫そうです。なんとかお探ししました。よかった。ただ、ちょっと大丈夫かな?大丈夫そうですね。お探ししました。3 つ目の環境でちゃんと見れそうですね。となると 2 つ環境、2 つサーバーでちょっと私死んでるっぽいので、これは後で見なきゃダメですね。といった形でなります。ごめんなさい。見えますでしょうか?大丈夫ですかね?お探ししました。ありがとうございます。では続きをやっていきましょう。いやー、怖いですね。なんでこんなふうになるんだろう。系とでちょっとお待ちください。もう一個の方も一応参考として作っておかないと。でもいいか大丈夫ですね。
9. 質問2の回答保存と変数設定
タイムテーブル: 00:30:02 - 00:31:42
やっちゃいましょう。そしたら、こちらですね。Q2 に対してここの変数を設定するので、ここですね。Q2 の answer を設定します。これですね。もしかすると、ちょっとこっちのパラメーターを設定したとしたのに、上を外そうとして今みたいな変なエラーが出た可能性があるので。上から設定するように気をつけましょう。なので、先にこの変数の設定で Q2_answer というのを設定して。で上書きですね。この上書きの状態のままパラメーターの設定が何かっていうと、ここの出力内容を保存したいので、回答内容、これですね。回答。あ、違いますね。こっちですね。回答内容要素抽出というこっちですね。これのテキストと。そうすると、ここで出力されたテキスト文字の内容がここの Q2_answer という名前の変数データを入れる箱に入れますよというふうな指示がこれでできたわけです。ここまでいいでしょうか?ちょっと見ながらやってみてください。できたらグッドボタン入れていただければ次進みたいと思います。オッケーです。オッケーです。では次行きましょう。
10. 質問3(質問終了)の設定
タイムテーブル: 00:31:42 - 00:35:53
そうしたらですね。次なんですが、もうこの後ほぼ同じなんですが、一旦ちょっと質問 2 を入れない。全体質問 2 から本来であれば、また次の質問を本当はしてもらいたいからですね。インターナルサーバ出られてる。そうしましたら、ここの複製を押して、そうすると複製が出ます。と。で 3 とあります。3 ですね。そしたら今度これですね。2 つ目セミナー満足度についてとか、これ 3 つ目になるわけですよね。3 つ目。例えば、次回次回のセミナーの内容で取り扱ってほしいこととかっていうふうにこう聞きたい内容を入れ替えていくっていう感じですね。その他はテンプレ通り、このままを維持するといったようなテンプレートと言いますか、プロンプトのテンプレートを作っているので、ここだけをどんどん質問したい内容を 1 個目、2 個目、3 個目とどんどん増やしたいだけを増やすというようなイメージです。これ 2 個目できてないのかな 2 個目のところがちゃんと聞けてないですね。2 つ目に関しては、こんな感じですね。セミナーの内容で具体的に良かったところ、悪かったところについて。とかでもいいかもしれませんね。こんな感じで作っていきます。一応これ、一旦はもし質問が仮に 2 個で良かった場合は、最後を単純に質問終了なので、お礼のメッセージを出力してくださいとか言っておきます。もし完了完了。最後のルートだった場合ですね。なので、仮にちょっとこれこっちにしておきます。皆さんは、他のアンケートで 2 個、3 個、4 個と作りたい場合には、まだまだたくさん作るルートを作る必要があるんですが、これは一旦はですね、テストと言いますか、見本として見せるだけなので、3 ルート目でありがとうございました。としてみます。なので、名前自体も 質問終了 と入れて置いていきましょう。で、これですね。そもそも入力されていく内容が赤でエラーになっているので、これはここがつながっていないからですね。これで赤がなくなります。あとはそうですね。終了もさせておきたいので、回答で回答 3 でもいいですし、回答で最後 終了 と名前を入れておいて、この応答のところにスラッシュで先ほどのこの回答終了のこの出力内容、ありがとうございましたと言ってもらう文言を最後表示させるために回答終了のテキストですね。これを入れてオッケーとしましょう。
11. ステージ3への更新と終了メッセージ
タイムテーブル: 00:35:53 - 00:41:22
一応こっちも作ってみましょうか。このステージを進めたいと思うので、これどうなるかというと、これもコピーして複製をしまして、このあたりに置いといて、こちら側から下のルートを引っ張ってきて。でステージを進むと ステージ 3 とします。で、ここの変数の箱は変えずに下の変数を 2 から 3 に進めておきます。ここ。まあ複製したので変える必要はないんですが、こっちはセットですね。上書きにして 3 と入れておいてもいいんですけど、セットの方がわかりやすいので。で、これを、そうですね。この場合、3 にして、まあここに引っくつけておきましょう。特にどこでもいいんですけど、このノードは先ほどお伝えした通り影響がないので、そうすると、このルートを通った人はもう stage 3 の状態になりますので、以降ここですね。stage 3 だと 0 でもないし 1 でもないし、2 でもないので最後ここに当たります。この一番最後の部分に入ってくるので、そしたら最後はじゃあもう質問は終わってますよ。なんていうふうな回答をさせるようにしてみましょうか。ですので、そのルートでは、仮に例えばこの質問終了のものを複製をしまして、このあたりに置いといてわかりやすいように 質問をすでに終了しているメッセージとかで。で、一旦はつなげましょうか。上からこんな感じですね。で、この内容、質問すでに終了してるって書いてあるんですけど、長すぎてダメっぽいですね。これで変わりましたね。こころの内容がアンケートですね。ごめんなさい。アンケートがすでに終了していることをユーザーに伝えるメッセージを出力してくださいとかを送っておきながら、例えばそれプラス。丁寧な言葉で丁寧で優しい言葉で伝えてください。とか入れておいて。で、終了の内容を回答か。回答の内容でスラッシュでこの質問終了。あれ?なんか 1 位になっちゃいますね。なんかエラーが発生してるな。インターナルサーバーエラーとか出てくるのでなんか調子よくないですね。こっちの環境も。終了。なんかおかしいですね。ちょっと今日はこういうこともたまにあります。なんか動き良くないねみたいな。さて、皆さんここまでばばっと作っていきましたが、いかがでしたでしょうか?皆さんここまで設定ができましたでしょうか?設定を完了しましたよ。という方は、グッドボタンをまたという方はそれ以外のリアクションをください。else ですね。一番最後です。ここですね。その他わからない方は全然あそこここの設定がわからないとか、あそこの設定がわからないとか言ってもらえればお伝えするので。オッケーですね。こんな感じで、例えばたった 2 個の質問でちょっと深掘りするようなルートをこれだけ作ったとしても、どれぐらいですかね?12、3 個あるのかな?12345678。11 個。全部で 19 個個ですね。なので質問 10 個くらい作ったら 100 個近くのノードになっちゃうというので、確か 50 個ぐらいが条件じゃなかったっけなと思ってるんですけど、ディフィ、多分でも拡張されたかもしれないですね。
12. 動作確認とエラー対処の例
タイムテーブル: 00:42:13 - 00:59:30
こんな感じでアンケートも深掘りをしていってもらえそうなんですが、動かしてみましょう。皆さんご自身で動かしてみていきましょう。ちょっと私の環境がもしかするとうまく動かないかも。早速なんか折られたな。インターナルサーバーエラーでサーバーエラー起きてるな。サーバーエラーを起こしている。サーバーエラーが起きてるっていうことは。一回ちょっともう一回じゃあ違うサーバーでやってみましょうか。今日はどこのサーバーもなぜか調子が悪いですね。ちょっと皆様ですね。作り終えたらぜひご自身で動かしてみてください。そしたらどうしようかな。クラウドの方で動かしてみたらいけるかな?うちの方でクラウドから動かしてみて、クラウドだとなんとか動きますね。ちょっと一緒にみんなでやっていきましょう。例えば、「こんにちは。生成 AI 活用セミナーにご参加いただきありがとうございました。今日は少しお時間をいただいて、セミナーの感想を聞かせてもらうと嬉しいです。まずは率直に今回のセミナー満足度はいかがでしたか?良かった点や物足りなかった点など、思ったままをお聞かせください」と言って「よかった」としか回答しないようにしてみましょう。よかった。そうするとここで判断してもらって。上で弾かれましたね。「ありがとうございます。セミナーの良かったと言っていただければ嬉しいです。もう少し詳しく聞かせていただけると助かります」と。講師の説明わかりやすい質問したんですけれど、どうでしたか?例えば、じゃあ今回のアンケート深掘りワークフローが詳細を聞けて自分でも作れそうなのが良かったです。とかって入れてみたら、ここのルートで下行くかな。多分しておきますね。「なるほど」と。「一方で、もしここはもう少し詳しく知りたかったとか。この部分はもう難しかったというポイントがあれば、ぜひ教えてください」と。これもちょっと適当な回答してみましょうか。えっと、「初心者には難しかった」とか行ってみましょうか。これでも、もしかしたら下に行っちゃうかもしれないですね。そうした場合には、この質問分類器の方でもうちょっとあ、上に行きましたね。具体的じゃなかったんで上に弾いてくれました。「初心者の方には難しく感じられる内容だったんですね。貴重なフィードバックありがとうございます。具体的にどの部分が特に難しいと感じましたが、例えば専門用が多かったとか、結構具体的に聞いてくれてますね。」どうしましょうか?そしたら、「質問分類器の扱いが説明が難しく、自分でどのように設定すればいいのかまだわかりません」としましょうか?とかって言ったら多分下まで行くんじゃないですかね?この質問分類器で。あ、上ですね。これでもダメなんだ。「実際にどう設定すればいいのかわかりにくかったと。で具体的なフィードバックあると思います。確かに質問分類器は概念自体が少し複雑で、初めて触れる方には設定方法がイメージしづらかった部分かもしれません。例えば、より具体的な設定例やステップバイステップのガイドがレベル化しようと。」すごい沢山聞いてくるんですね。ちょっと思ってよりもちゃんと聞いてくれますね。そしたら、「あらかじめ」。なかなかだけどらないですよね。あのあれですよね。アンケートを実施する運営側はありがたいですけど、ユーザーさんからすると、えっ、これどんだけ聞くんだよってなりますよね。このあたりも調整が必要かなと思います。なかなか下行かないですね。「他にもセミナーの進行方法や内容について。こうだったらもっとよかったりという意見やアイドル」。これ、なかなか手強いですね。「もっとワーク」。例えば、複数個のワークを一気に行ってもらえるといいかなと思います。例えば、X の自動投稿とか、もしくは Sora 2 の API をつなげた動画自動生成とかの方法とかも知れたら嬉しいです。とかってやってみましょうか?これぐらい入れたら下行きますね。多分文字数でちょっと見ちゃってるかな?内容じゃなくて。でばばっと入れました。で、回答で全部終わったらもう。ありがとうございました。っていう風な形だと思います。言ってくれてますよね。「有数生成スミナー形式を確かに」。セミナー全体としてあれが万セボであがればぜひお聞かせください。おかしいですね。ここで質問終了なので、お礼のメッセージを出力してくださいって言ってあるんですけど、ちょっとこれログ見てみましょうか?実行追跡で質問終了のところでどんな判断したんだろう。ちょっと見ていくと。セミナー終了で最後の方で。ああ、なんかつながった。入力になってない。出力なんか入力が変。入力は何もないですね。なんでだろう?ちょっと謎ですが。皆さんいかがですか?うまく動いてますか?ぜひ感想を。香織さん感想いただいてますが、他の方も今動いているかどうかとか、現状をお聞かせいただければと思います。実行。追跡で開始。フェールスで質問に行って質問行ってステージ行って。ちゃんと動いてるが、ここの入力がなされてない。なんか怪しいな。質問 2 までしか行かなくて、その後、どんなに答えても質問。さらに下行かないですか?多分結構長文書かないとダメっぽそうですね。おそらくなんですが、多分今回のそういった質問 2 までしか行かないじゃん。その参加ないよねって言ったときに、この具体的なセミナーの要素で、カッコ内に内容、講師、進行などっていうこれ例を入れてますよね。なので、この内容や行詞、進行などといったところの要素を満たせているような状況だなかった場合とか。あとは文章が単純に足りていなかった場合に、上のルートに判断させてしまう可能性があるからというところがあるので、このあたりをプロンプトを書き換えてあげるっていう人は出てきそうかなと。そういった調整ですかね。その都度必要になってきそうかなと思います。GPT これ 5 がねえな。5 がないですね。回答内容だ。ちょっとな Gemini だと少し固くなるんですよね。ちょっと一旦このままで最後もう一回聞いてみて、なんか話したら下まで行くかだけ見ていきましょうか。えっと、他に、例えば Bold になっちゃってるか。Bold を使ったアプリの開発の方法についてもセミナーで聞いてみたいです。とか入れてみて、押したら下まで行くかいきますね。オッケーですね。なんかそれっぽい回答ありがとうございます。みたいな回答でこんな感じで最後締めくくってくれてまたご参加くださいと言ってくれてますね。こんなふうなことはできるとで、結構ここでこれぐらいしか内容伝えてないんですけど、「アンケートが先週で終了していることをユーザーに伝えるメッセージを出力してください」とは言ってますけど、結果的にはこんな感じで結構会話をしようとしてくれているっていうのがあります。おそらくなんですが、これはやっぱり Claude 3.7. Sonnet の特徴かなと思うので、このあたりはそうですね。Claude だと結構文章をたくさん書きがちとかありますし。そうだなぁ。結構 Gemini は論理的な回答になりやすいとか、論理系が強いので、アンケートはちょっと Gemini じゃない方がいいのかなと思ったりしますけど、そんな風な形で選んで試してご自身で感覚をつかんでいくといったところが、結構その人ならではの AI エンジニアリングのこの特徴が出てきやすいかなと思います。他の方いかがでしょうか?例えば、天木さんとか、もしくはシンタさん、津田隆裕也さん、津田さん、石田さん、庄司さんとかいらっしゃいますね。小笠さん、かずみやさん、皆さんいかがでしょうか?グッドですから大丈夫ですか?今回のケースは結構ですね。一般的というか、ものすごくですね。ベーシックなものだけを。最後の下に行かない。えっと、最後の下に行かないというのはどういうことだ。待ってくださいね。質問 2 までしか行かない、最後の回答はどう回答のところどう設定したらいいか。そうですね。設定というよりは多分単純に回答内容が足りてないって判断されちゃってると思うので、結構長文で回答してあげたら行く可能性あると思います。香織さんはオッケーですね。プラグインインボークエラーっていうことは、えっと、例えばエラーが出ているのって多分これだと LLM じゃないですか?質問分類器はそのエラーが出ているノードですね。天木さん。エラーを出ているノードの部分で、おそらく選んでいる LLM のが動いてない、例えば API 接続してるけど、もうなんか全部使い切っちゃってるとかですね。トークンで無料枠だったものは全部使い切っちゃってるとかもあると思いますし。で、あとはえっと、全体的にそのエラーメッセージをまずはキャプチャーして AI に添付して、なおかつあの Dify で今こういうことやってるんだよってわかるようにワークフローとかも Dify がわかるような感じで入れると、Dify でそういうことをエラー出してるのね。で、AI が理解してくれると思うので、それで回答を得て、その回答内容でエラーが解消されるかみたいなことをやると早いかなと思います。なので、例えばエラーが出てたとして今ですとこういうことですよね。こういう回答内容が出てましたよ。で、まあちょっとこれでこっちはエラー出てないので、いや、あなたのやつ。あなたのワークフローエラー出てないよね?って言われるかもしれませんが、このワークフローで添付した画像のエラーが出力されるが、その原因と対応方法について教えてください。とか入れてみて出てくるかですかね。Google プラグインのエラー原因を特定中。なんで、Google のプラグインのエラーが出てるってことは多分 Gemini が動いてないよねってことでしょうね。なんか無理やり書いてくれてますけど、ちょっと多分無理。クリックが出てますが、こんなふうなやり方で、多分ご自身の AI は回答してくれると思うのでやってみてください。
13. まとめと次回予告
タイムテーブル: 01:00:19 - 01:01:51
結城さんとゆきさんが治るかどうか 21 時になったので、あとはいくつか質問とか何かあれば回答して終わる形になると思いますが、公開更新を押さないと保存自体は自動的にされるんですが、公開をするってやってこれですね。公開するってやると初めてこれで対外的にアプリを使えるようになるんですね。なので、アプリ実行とかってやると、この URL これを他の人に共有してあげれば他の人も使えるとかいう形なので、保存自体は何もしなくてもされます。一旦大丈夫そうですね。ありがとうございます。じゃあまた何かあればですね。このハンズオンチャット版とかに入れておいてもらえればと思いますし、といったところであっという間に 1 時間経っちゃいましたが、以上となります。また来週ですね。また別の内容とかもやっていきたいと思いますしどうですかね。もしこういうのもやってみたいです。ってあれば、ちょっとそれを取り扱えるかどうかわかんないんですが、なんかそういった意見も入れといてもらえればと思いますので、よろしくお願いします。ところで、本日もお疲れ様でした。また次回どうぞよろしくお願いします。ありがとうございました。