シナリオ対話の作成
シナリオ対話とは
シナリオ対話機能とは、「会話の流れ」を構築し、それに沿った会話をエージェントに行わせる機能です。
- アンケート
- インタビュー
- ユーザについての情報収集
- レコメンド
など様々な用途に活用が可能です。
利用方法
実際にシナリオ対話を構築する例を紹介します。
今回例としてユーザのプロフィールについてのアンケート
というテーマでシナリオ対話を行なっていきます。このシナリオに沿った会話をエージェントが行うことで、ユーザの様々なプロフィールを収集することができる状態がゴールです。
1. シナリオの作成
まずはシナリオを作成します。DH-Cconversationの「会話のトレーニング」のページを開きましょう。
トレーニング一覧にある「シナリオ対話の作成」をクリックします。
※「 シナリオ対話の作成」はPCでのみ行えます。
シナリオ一覧画面が開いたら、「新規シナリオの作成」を押しましょう。
2. シナリオの設定
シナリオ作成画面を開いたら、まずはシナリオの設定をします。
「シナリオの設定を表示」を押して、設定画面を表示します。
入力の例
下記を自由に設定しましょう。
シナリオの名前: シナリオのタイトルです。管理用にわかりやすい名前をつけましょう。日本語文字列が利用できます。
トリガー: 会話の中でこのシナリオが開始される条件です。
シナリオのトリガーの種類
現時点では下記の1項目のみ設定可能です。
- 「特定の発話があった場合」
特定の発話にマッチした場合にシナリオを開始します。特定の発話は、改行をすることで複数設定できます。
※ シナリオのトリガーは今後追加予定です。ご要望等あれば随時お寄せください
以上でシナリオの設定は終了です。
この後の作業を快適に行うため、「シナリオの設定を隠す」を押して、設定画面を非表示にしておきましょう。
シナリオのコンテンツを作成する
シナリオの基本設定が終わったところで、いよいよコンテンツを作成していきましょう。
シナリオの設定にある「ノードを追加する」ボタンをクリックします。
シナリオには下記の2つの概念が存在します。
- ノード (Node)
ノードは会話の発話を行う単位です。ノードに発言の内容や発言の際に表示するコンテンツについて設定をします。
- エッジ(Edge)
エッジはノードとノードを繋ぐ線です。エッジには次のノードが発動するための条件を設定します。
ノードを追加する
実際に作りながらイメージを深めていきましょう。「ノードを追加する」を押すと左のモーダルが表示されます。
ノードには、そのノードが発動した際に行われるエージェントの発話について設定をします。
設定可能な項目につい紹介します。
- ノード種別
「質問」「発話」の2種類が選べます。
「質問」: ユーザに質問を行い情報を保持します。
「発話」: エージェントの発話のみ行い、ユーザの情報を保持しません。
- タイトル
ノードのタイトルを設定します。ユーザやデジタルヒューマンUIには表示されません。
- 質問
エージェントが行う発言です。ユーザとの会話で表示されます。
- ステート名 (任意)
質問によって得られた情報を保持するラベルを設定できます。
保持したステートはエージェントの発話内で利用することで、回答結果を発話に含めることができます。ステートについてはこちらの記事をご参照ください。
- クイックリプライ (任意)
エージェントが発話を行う際に表示される選択肢を設定できます。1行に1つ入力してください。
- 拡張データ (任意)
API連携で返される拡張データを設定できます。JSON形式で入力が可能です。
デジタルヒューマンのUIがHTMLコマンドに対応している場合、JSON形式のコマンドを送ることで、様々な情報を表示する事ができます。コマンドは有志が提供しているコマンドエディタで生成する事が出来ます。コマンドエディタの使用方法はこちらをご覧下さい。
- 回答が正しいかをユーザに確認 (任意)
この項目がチェックされていると、エージェントは質問後にユーザの回答が正しいかをユーザに一度確認します。確認して「はい」と回答された場合に、次のノードへ進みます。回答ミスを防ぎたい質問等でご活用ください。
- 「終了」と言われるまで回答を蓄積する (任意)
一問一答でなく、何回も回答をさせたい場合に利用します。この項目にチェックが付いている場合、エージェントの質問に対してユーザが「終了」と言うまでに行われた発話を全て記憶します。
- 選択肢からのみ回答が可能 (任意)
自由入力をさせず、上述した「クイックリプライ」で設定した選択肢からのみ回答してもらいたい場合にチェックします。この項目にチェックが付いていると、選択肢以外の回答を防ぐことができます。
今回は例として下記のように設定をしてみます。名前を尋ね、入力された名前が正しいかどうかを最後に確認します。
設定をしたら「追加する」を押しましょう。
ノードが追加されたことを確認できました。試しにもう1つ任意のノードを追加してみましょう。
今回の例では、年齢について尋ねるノードを追加しています。
これで2つのノードが作成できました。
エッジを追加して条件を設定する
次のノードが発動する条件を設定するために、「エッジ」を追加していきます。
左側のノードの右隅にある・をマウスでクリックしたまま、右のノードの左隅にある・までドラッグします。ノードとノードが線で繋がると、下記のようなモーダルが表示されます。
これがエッジの条件設定画面です。この画面で次のノードが呼ばれるための条件を設定していきます。
エッジで設定ができる条件
- 次の文字列に一致する
- 次の文字列を含む
- 何らかの文字列が入力されている
- 次の正規表現にマッチする
ユーザの発話に対して上記のいずれかの条件を指定しましょう。
指定できる文字列は複数指定が可能です。1行に1つ入力しましょう。
特に条件がない場合は「何らかの文字列が入力されている」を選択しましょう。
設定が終わったら「追加する」をクリックします。
追加が完了すると、エッジでノードが繋がれたことが確認できます。このようにノードとエッジをつなぎ合わせていくことでシナリオ対話を構築することができます。
作業がひと段落したら、右下にある「変更を保存」ボタンを押して保存しましょう。
シナリオコンテンツを編集する
ノードとエッジの繋げ方が理解できたら、コンテンツを拡充していきましょう。
ノードとエッジはそれぞれクリックすると設定を後から変更できます。
シナリオを試す
シナリオの作成が完了したら、「変更を保存」を押してシナリオを保存します。
会話のテスト方法は他のトレーニングと同様です。
DH-Cconversationの「公開設定」ページを開き、「会話をテスト」ボタンを押しましょう。この段階では公開されているエージェントにシナリオは反映されません。
※他のトレーニングと異なり「トレーニングを反映する」を押す必要はありません。
チャット画面が起動したらシナリオのトリガーとなる言葉を入力しましょう。
作成したシナリオの会話が始まれば成功です!
最終更新日 January 1, 2023