ステートの設定方法(フォーム穴埋めタイプ)

フォーム穴埋めタイプの機能を見ていきましょう。


[フォーム穴埋めタイプ]
フォーム穴埋めタイプは、ユーザーと一問一答の対話を行い、情報を収集するステートです。


[使用例]
まずは簡単な例から設定を確認していきましょう。
「お問い合わせ」と発言すると、「お名前」の入力を促す機能を考えます。


[設定例]
まずは、アクションを作成します。

アクション名は、後ほどステートの設定で利用するため、メモしてください。

ステートに遷移するための言葉を入力します。

念のため、ステートに遷移しなかった場合の応答文を設定します。


次に、ステートを作成します。
ここでは、「フォーム穴埋めタイプ」で新規作成を行った後の設定項目について確認していきます。


[ステート基本情報]

「フォーム穴埋めタイプ」を選択します。

「アクション」を選択します。

先ほど作成したアクション名を入力します。

「sys_any_state」を選択します。

「sys_no_state」を選択します。

「このステートに入った時の応答文」を設定します。
応答選択肢は表示させたくないため、[no menu]を入力します。

「このステートから出る時の応答文」を設定します。
全ての入力が終了した際の応答文になります。
入力後はメニューに戻らせたいため、「メニューに戻る」を入力します。

「このステートがキャンセルされた時の応答文」を設定します。
当ステート中にアクションの「sys_confirmation_cancel」を起動することでステートを中断させることができます。
通常は「キャンセル」という会話文が設定されています。
キャンセルされた際はメニューに戻らせたいため、「メニューに戻る」を入力します。

「このステート内で理解できない発言がされた場合の応答文」を設定します。
確認時に「はい」「いいえ」を選択せず何かを入力された際等に表示されます。
応答選択肢は表示させたくないため、[no menu]を入力します。


[フォーム定義]

フォーム定義は大きく2つのセクションに分けられ、ここでは「項目」を設定します。
[追加]項目を追加します。
[編集]項目の応答文などの編集を行います。
[ボタン]項目をひとつ上に移動します。
[ボタン]項目をひとつ下に移動します。
[ボタン]項目を削除します。
[詳細設定]作成されるアクションから編集を行います。

今回は下図の部分を設定します。

「項目名」を入力します。
後ほど「ユーザーの回答を一時保存する場所の名前」として利用されるため、分かり易い項目名を付けてください。
今回は、名前を尋ねるため「name」と入力します。

「sys_any」を選択します。
ここではユーザーの回答がエンティティに沿うかの判定を設定できますが、「sys_any」以外を選択するとステートが上手く動かなくなる可能性があります。
基本的には「sys_any」のまま変更しないでください。

エンティティの属性を判定することができますが、空欄以外にするとステートが上手く動かなくなる可能性があります。
基本的には空欄にしてください。

ユーザーに回答を促す応答文を入力します。

応答選択肢を設定できます。
応答選択肢が表示されていてもユーザーからは自由入力ができます。
[no menu]と入力することでボタンを表示させず、ユーザーに自由入力のみを求めることも可能です。
今回の場合は「匿名希望」と入力します。

正規表現によるユーザーの入力した内容のチェックができます。
チェックがOKの場合は次に進み、エラーの場合は⑳の応答文を表示し再度入力を待ちます。

⑲のチェックがエラーの場合に表示される応答文です。


項目が終了した際の「確認」についての設定を行います。

「確認する」にチェックを入れます。
確認を行わない場合はチェックを外してください。

確認時の応答文を設定します。
{{ state.[ステート名].form.[項目名] }}と記述することで、フォーム穴埋めタイプで入力された内容をそのまま表示することができます。
今回は、ステート名が「ex_state_form1」、項目名が「name」なので、 {{ state.ex_state_form1.form.name }}と入力します。

「はい,いいえ」と入力します。
ここでは、「sys_confirmation_yes」と「sys_confirmation_no」を起動するための会話文を設定します。各々の会話文に任意の言葉を設定する事で、ここの項目で利用することもできます。


それでは、DEMOページで確認しましょう。

「お問い合わせ」と発言すると、ステートで設定した応答文が表示されました。
また、名前の入力もでき、確認メッセージも表示されました。

キャンセルと想定外の言葉にも設定通りに応答文を表示してくれました。


以上で、「フォーム穴埋めタイプ」というステートタイプの設定は完了です。
ここでは簡単な例で設定方法を見ていきました。
次は、実用的な設定例を確認してみましょう。
ステートの設定例(フォーム穴埋めタイプ)