ここでは、早速、ボタンの作成方法についてご説明いたします。
ボタンを管理するセルの構造
ここでは、1作例として、 犬を販売しているペットショップのボットについて、ボタンの仕組みを解説します。
上記のセルの記述は、実際に稼働するボットの中では下記のような表示になります。
分解してみる
メッセージ部分
ボタンではなく、発話として表示される項目。
ページ繰りがある場合、(1/2頁)などのように表記すると
ユーザが現在どの位置にいるのかが分かりやすいです。
ボタン部分
ボタンの個数は決まっていませんが、どんなに多くても8個を超えないくらいがちょうどいいかと思います。
ページ繰り、トップへ戻るボタンの導入を考えると、項目の多いカテゴリは5、6個ずつに分けて記載するのがおすすめです。
また、2つ以上からといった最低個数の指定もありません。1つのみで運用することも可能です。
ボタン部分をさらに分解
? これから犬を飼い始める人へ[c_first]
?(半角ハテナ と 半角スペース)
ボタンを作成するための記号。文字列の先頭に記入することでボタンが作成されます。 半角が全角になっていたり、書き抜かりがあるとボタンになりません。
これから犬を飼い始める人へ
「実際にボタンの中に表示される文字列」です。ある程度長くなっても改行して表示されます。ボタンの仕組みについては下記注釈①もご参考ください。
[c_first]
このボタンを押した時にbotに送られるコマンドです。[]でくくられた中身をbotに送信します。 []でくくられた中身は、「実際にボタンの中に表示される文字列」より優先して処理されます。半角英数だけでなく日本語での記述も可能です。他のユーザ発話の行に「#」でくくられたコマンドが記述されている場合、確実にそのシナリオが呼び出されます。 また、ボタンを管理するセルの中では、[]を使うものと使わないものを混ぜて使うこともできます。
注釈①ボタンの仕組み
ボタンは、? をつけたボタン作成行の語尾に[]がついている場合には[]の中身(コマンド)を、ない場合には「実際にボタンの中に表示される文字列」を、ユーザに代行して発話する仕組みです。
「実際にボタンの中に表示される文字列」が丸々ユーザ発話に記載されたシナリオがある場合、ボタンを押すことによる発話だと、スコア(一致度)が非常に高くなるため、ボタンを押した際にほぼ確実に「実際にボタンの中に表示される文字列」が書かれたシナリオが発話されます。
(ユーザ発話同士が非常に似通ったシナリオが複数ある場合、スコアが下がり的確な返答が 返らない場合もあります。その場合には、部分的にでも[]内のコマンドを使った確実な遷移をお勧めします。)