スモールトークとは、ボットがエンドユーザーと交わすカジュアルな会話のことです。エンドユーザーと気軽に会話できることにより、ボットの社会性を高め、リコール率を向上させることができます。スモールトークの会話は、ボットとユーザーの間の一連のインタラクションボレーとして設計されています。How Are You?などのソーシャルインプットに答えられるボットは、ボットに好印象を与え、ユーザーとの貴重なつながりを築くのに役立つ可能性が高くなります。機能
- カスタムスモールトーク機能を使用して、パーソナリティを構築し、興味のある分野について気軽な会話を行えるようにボットをトレーニングします。
- また、ネストした会話を構築することにより、会話中のフォローアップに答え、ボットをより魅力的にすることができます。
- あいさつやスモールトークのような標準レスポンスの一部を置き換えることで、ボットに内蔵されているスモールトークの能力を拡張することができます。
- また、プラットフォームはユーザーの発話に含まれる絵文字を識別し、それに応じてスモールトークで応答することができます。
- ただし、発話の最初のhelloなどの挿入語は、スモールトークとはみなされません。例として、ユーザーの発話であるHello, I need to transfer moneyは、transfer moneyのインテントと照合されます。
デフォルトのスモールトーク
スモールトークは、ボットのニーズに合わせて設定されるボットレベルのタスクです。新しいボットを作成すると、グループgreetingsのスモールトークがデフォルトで生成されます。 なお、既存のボットでスモールトークタスクを開くと、あいさつに関する標準レスポンスがスモールトーク機能に移行したことが通知されます。続行しないことを選択して、 標準スポンスを続けることができます。なお、移行を続行した場合、>Greetingsが標準レスポンスセクションから永久に削除され、取り戻すことができなくなります。 以下は、あいさつ文グループのメッセージです(これらは、あいさつ文の標準レスポンスやその他のカテゴリーで続行を選択すると、スモールトークに移行されます)。
あいさつ | |
---|---|
ユーザーが“Hi”と言ったときのレスポンス | ユーザーが“hi”“hello”“hey”などと言ったときや、ボットの名前を入力したときに表示されます。 |
“how are you”に対するレスポンス | ユーザーが“how are you”と聞きます。 NLではユーザーが以下のように言うと解釈しています。 <how are you>, <how are u doing> <how are u how are u> <how have u been doing> <how have`u`been> <how`do`u`do> <how`are`u`doing> <how`are`u> whazzupp whatcha`upto watsup wassup howzit comment`est`vous comment`ca`va ca`va <what`up <what`is`up`today <what`is`up <what`is`the`word> <what`is`the`latest`word> <what`is`new> <what`is`happening> <what`is`going`on> <what’up <is`everything`OK <is`everything`alright <how`you`feeling <how`you`doing <how`is`tricks <how`is`life <how`is`it`going <how`is`everything <how`is`by`you <how`have`you`been`doing> <how`have`you`been> <how`goes> <how`goes`things <how`goes`it <how`is`your`day <how`do`you`do> <how`are`you> <how`are`things> <heya> |
“who are you”に対するレスポンス | ユーザーが“who are you”と言ったときに表示されます |
コンテキストではタスクがないときに、ユーザーが“great”“awesome”などと言います | ユーザーが“great”“awesome”などと言ったときに表示されます(おそらくタスクを終えた後) |
ユーザーが“that helped”“that was useful”などと言いいます | ユーザーが“good”“great”“awesome”“cool”“fair“enough”“that helped”“it helps”“that was useful”“that was handy”などと言ったときに表示されます(おそらくタスクの完了後) |
コンテキストではタスクがないときに、ユーザーが“no”“nope”などと言います | これは、ユーザーへのレスポンスにおけるスモールトークです ー 発話は“No”“Nopes”などです |
コンテキストではタスクがないときに、ユーザーが“I am done”“That’s it for now”などと言います | ユーザーが“I am done”“that’s it for now”“that’s all”などと言ったときに表示されます(おそらくタスクを終えた後) |
ユーザーが会話の終了を示唆します(例:“good night”“bye”“ttyl”など) | この状態は、以下の「フォローアップタスク設定」が構成されているダイアログタスクでのみ生じます:「はい、このダイアログの最後で、ダイアログ設定の「フォローアップタスク」リストにおいてタスクを選択し、実行するようにユーザーに頼みます」ボットは、ダイアログの最後で、フォローアップインテントの配列をユーザーに提示する際にこのメッセージを示します。 |
ユーザーが感謝の言葉を言います | ユーザーがボットに感謝するときに表示されます。 |
コンテキストにタスクがないときに、ユーザーが“OK”“fine”“yes”などと言います | ユーザーが“OK”“fine”“got it”などと言ったときに表示されます(おそらくタスクを終えた後) |
概要
スモールトークは、ユーザーの発話とボットのレスポンスのシリーズです。スモールトークの主な目的は、ユーザーとの気軽な会話であり、一般的に、機能的なトピックやビジネス上の取引はスモールトークに含まれません。スモールトークにおけるさまざまなユーザーのクエリは、グループに分類され、階層構造が割り当てられています。あいさつカテゴリは、すべての新規ボットにデフォルトで自動生成されます。このグループには、あいさつや歓談に関するさまざまな質問が含まれています。追加のグループやカテゴリを定義し、各グループの下にインタラクションフローを構築することができます。
- 各グループは、1以上のトップレベルの質問を含めることができます。トップレベルの質問には、1つ以上の子質問を含めることができます。
- 1つの子質問には、1つ以上の後続する子質問を3レベルまで含めることができます。すべての質問には、1つ以上の代替質問を含めることができます。
- すべての質問には、1つ以上のレスポンスを含めることできます。複数のレスポンスがあった場合、プラットフォームはランダムに1つのレスポンスを選びます。
用語解説
以下は、スモールトークに関連するさまざまな用語です:
- グループ – 目的と内容に基づき、スモールトークはグループに分類されます。
- ユーザークエリ – 各グループに対して、ユーザークエリ、代替クエリ、および子クエリを加えることができます。クエリはパターンを使用して形成されます。パターンの詳細についてはこちらをご覧ください。
- ボットレスポンス – 各ユーザークエリには、ボットレスポンスが関連付けられている必要があります。これらは、プレーンテキスト形式またはJavaScriptで使用できます。チャネル固有のレスポンスを指定できます。複数のレスポンスを入力することもでき、そのうちの1つは実行時にプラットフォームによってランダムに選択されます。
グループ
新規グループを手動で作成したり、あるいは既存のJSONやTSVファイルをインポートしたりすることができます。また、デフォルトのあいさつ文カテゴリーを変更する こともできます。
- 新規グループ:
- 左ペインのビルドで、会話スキル>スモールトークをクリックし、右上の新規グループをクリックします。
- 新規グループダイアログボックスのグループ名 フィールドに名前を入力します。
- 続行をクリックします。
- 開いているスモールトークエディターから、ユーザー発話 – ボットレスポンスのペアを入力して、リストに追加できます。
- インポート:すでに自社のスモールトークをお持ちの場合は、同じ内容をインポートすることができます。ファイルは、JSONまたはTSV形式である必要があります。フォーマットの詳細については、サンプルファイルをダウンロードすることができます。
- 左側ペインのビルドで、会話スキル>スモールトークをクリックします。
- その他 (楕円)のアイコンをクリックして、 インポートオプションを選択します。
- スモールトークを含むファイルを選択し、次へをクリックします。
- インポートが開始されます。なお、既存のスモールトークはインポートされたファイルに置き換えられます。
- 変更:
- 既存のグループをクリックして、同じグループに変更することができます。
- 開いているスモールトークエディターから、ユーザー発話 – ボットレスポンスのペアを入力して、リストに追加できます。
クエリ – レスポンス
グループを作成/インポートすると、クエリ – レスポンスのペアを追加/変更することができます。
- ユーザー列にはユーザークエリを、ボット列には対応するボットレスポンスを入力します。
- Enterまたは追加を押して、クエリ – レスポンスのペアをリストに追加します。
- クエリはパターンを使用して設計されます。パターンの詳細についてはこちらをご覧ください。
- 各ユーザークエリには、ユーザーが同じクエリを尋ねる場合の別の方法を示す代替質問を入力できます。
- 各ボットのレスポンスに対して、代替レスポンスを入力することができます。プラットフォームは、実行時に1つのレスポンスをランダムに選択します。
- ポイントした質問の前に表示されるハンドルバーアイコンを使用して、質問の順序を並べ替えることができます。
- 各ユーザークエリには、子クエリを含めることができます。親質問に答えて初めて、子質問を行うことができます。子クエリを追加するためには、質問をポイントすると質問の横に表示される+アイコンを使用します。
- レスポンスはチャネル固有およびJava Script形式です。レスポンスの横に表示される設定(歯車のアイコン)をクリックしてカーソルを合わせると、レスポンス管理ウィンドウが開きます。こちら:
- すべてのチャネルに表示されるデフォルトのメッセージを指定します。
- チャネル固有レスポンスについて:
- +レスポンスの追加をクリックします。
- 新規プロンプトメッセージをクリックします。
- チャネルを選択します。
- 詳細モードを使用して、標準テキストまたはJavaスクリプトでレスポンスを入力します。該当する場合は、テンプレートを選択します。(メッセージのフォーマットの詳細については、こちらをご覧ください)
- 保存をクリックします。
設定
スモールトークのグループにカーソルを合わせると、以下のオプションが表示されます:
- グループを削除します。
- 設定オプションでは、以下のことができます。
- 使用する変数ネームスペースをこのスモールトークグループに関連付けて、変数ネームプレースを管理します。このオプションは、可変ネームスペースがボット用に有効になっている場合にのみ表示されます。詳細は、ネームスペースの管理をご参照ください。
スモールトークのコンテキスト
ユーザーの発話パターン定義の中で必要な情報をマークでき、その情報をコンテキストの中で利用できるようになります。NL分析の下にスモールトークという新しいセクションが導入され、進行中のスモールトークからのコンテキスト情報が保存されます。この情報を使用して、スモールトークメッセージをパーソナライズできます。
- アンダースコア「_」記号を含めることでユーザー入力パターンのセクションをマークすると、必要な情報を示すことができます。例として、I am from _~location Where are you from?では、ユーザーの発話から場所を取得できます。
- この情報は、スモールトークのコンテキストに保存され、以下の方法でアクセスできます:
context.smallTalk.matchData._0
JSONの構造は以下のとおりです:{ "pattern": "I am from _~location Where are you from?", "matchData": { "_0": "chicago" }, "previousMatchData": [] }
- 同じユーザー入力に複数のパターントークンを定義して保存でき、それらのパターントークンには位置カウント変数 – _0 、_1 、_2など)を使用してアクセスできます。これらは位置情報を含んでいるため、ユーザーの発話からオプションのトークンが欠落している場合には連続性がありません。例として、パターンを考えてみましょう:how is the _[ climate temperature ] { at _~location } ~time
- Case1:
- ユーザーの発話:”how is the temperature in London today“
- コンテキスト:
{ "pattern": "how is the _[ climate temperature ] { at _~location } ~time", "matchData": { "_0": "temperature" "_1": "London" "_2": "today" }, "previousMatchData": [] }
- Case2:
- ユーザーの発話:”how is the climate today“
- コンテキスト:
{ "pattern": "how is the _[ climate temperature ] { at _~location } ~time", "matchData": { "_0": "climate" "_2": "today" }, "previousMatchData": [] }
- Case1:
- コンテキストは、previousMatchedData配列の下にある子ノードから、以下の方法でアクセスできます:
context.smallTalk.previousMatchData[i].matchData._0
変数iは、親レベルに基づいて0、1、および2のインデックス値を取ります。親スモールトークコンテキストのJSON構造は以下のようになります:{ "pattern": "That is nice", "matchData": {}, "previousMatchData": [ { "pattern": "I am from _~location Where are you from?", "matchData": { "_0": "chicago" } }, { "pattern": "That is far.", "matchData": {} } ] }
- コンテキストは、以下のいずれかのシナリオが発生するまで存続します:
- セッションの終了。
- 新しいプライマリースモールトークインテントが検出されました。
- スモールトークではない他のインテントは、トリガーされます。
トレーニング
ひとたびスモールトークに変更が加わると、ボットがスモールトークを拾うためのトレーニングが必要になります。スモールトークエディター画面でトレーニングをクリックして、ボットをトレーニングします。メモ:スモールトークファイルをインポートすると、自動的にトレーニングが開始されます。
留意点
- スモールトークでは、3つのレベルの子ノードのみが許可されます。子質問は、対応する親レベルの質問が前のボレーで回答された場合にのみ識別されます。
- 質問は、グループ内で追加された順に評価されます。一般的なスモールトークは最後に、特定のスモールトークは最初に加えることが望ましいです(例として、 今日はいかがですかは最初に、お元気ですかは後に加える必要があります)。主要な質問は、追加した後で並べ替えることができます。
- また、グループは追加された順に評価されます。
- すべてのカテゴリーにおいて、トップレベルの質問は重複させることができません。
- インテントおよびナレッジ収集は、スモールトークよりも優先されます。つまり、 インテント(またはFAQ)とスモールトークが検出された場合、インテント(またはFAQ)に優先順位が付けられます。
- 特定されたスモールトークはランキング・解決の後に表示されます。
- ユニバーサルボット:
- ユーザーがユニバーサルボットのコンテキストにいる場合は、ユニバーサルボットのスモールトークが考慮されます。
- ユーザーが子ボットのコンテキストにいる場合は、子ボットのスモールトークが考慮されます。ただし、これに対応する子ボットのスモールトークが発見できない場合は、ユニバーサルボットのスモールトークを検討します。
- スモールトークは言語固有のものです。ボットが多言語に対応している場合には、対応している各言語でスモールトークを設計することができます。
- スモールトークの割り込み動作は、 ビルド>インテリジェンス>割り込み管理の以下のオプションで処理されます: