人間の会話は曲がりくねっているのが特徴で、2 つの方向が同じになることはありません。自然な会話とは、ボットに事前定義された直線的なインテント解決の道筋を外れてしまうこともよくあるものです。ユーザーが別の会話を開始する前に、ボット がユーザー インテントを合理的な結果に導くことができるようにすることが理想ですが、必ずしもそうとは限りません。
たとえば、次のような会話を考えてみましょう。
これにはボットが現在のインテントを続行するためのエンティティ値が含まれており、同時に新しいユーザーの要件やインテントも提示しています。
ボットは文脈データと会話の継続性を失わずに、ユーザーがタスクを一時停止し、別のタスクを開始して完了させ、元のタスクにシームレスに戻れるよう考慮しなければなりません。
Kore.ai では、ボット、タスク、ノード レベルでの一時停止と再開機能を細かく制御することができ、コンテキストの切り替えルールと動作をコントロールできます。また、タスク切り替え体験を定義するための幅広いオプションを与えることで、インテント フローの割り込みを処理できます。
オプションのうち、[一時停止と再開] オプションはボット、タスク、ノード レベルで設定でき、さまざまなビジネス要件に合わせて設定がレイヤー化されていることを確認できます。また、タスク間でコンテキスト データを渡す機能を使用して、タスク間に条件付き例外を追加することもできます。
続くセクションでは、以下について説明しています。
- さまざまな一時停止と再開の設定、
- ボット、タスク、ノード レベルでのセットアップの階層。
一時停止と再開
[一時停止と再開] オプションでは、ユーザーが別のタスクに切り替えるかどうか、どのように切り替えるか、また終了の方法を選択することができます。一時停止と再開の設定はボット レベル、またはタスクやダイアログ レベルで行うことができます。このセクションでは、ボット レベルでの設定について説明します。「一時停止と再開の階層」セクションで説明したように、これらの設定はタスク レベルでオーバーライドすることができます。
一時停止と再開の設定は、[自然言語] > [インテリジェンス] > [割り込みの管理] ページからアクセスできます。
このプラットフォームでは、以下の 3 つのカテゴリの下に 一時停止と再開のオプションが用意されています。
- 一時停止と再開を許可: タスクを一時停止するためのオプションと、後で再開するためのオプションを選択できます。
- 一時停止と再開を許可しない: 現在のタスクの割り込みの中から新しいタスクを停止します。
- エンド ユーザーが動作を選択できるようにする: 新しいタスクに切り替えるためにエンド ユーザーの確認を求め、いくつかの再開オプションを提示します。
注意: セッション終了後にユーザー入力があった場合、すなわち、少なくとも 15 分以上の非アクティブ状態が続いた後に入力があった場合、その入力が前のセッション コンテキスト内にある場合は、一時停止と再開のシナリオとして扱われます。その代わりに、ユーザーが新しい発話で戻ってきた場合、古いコンテキストは破棄され、新しい会話が開始されます。
一時停止と再開を許可する
タスクの割り込みを許可した後に現在のタスクはどうなるのか、割り込みタスクが完了したら会話はどのように続くのかなどのシナリオでの、ボットの動作を指定する必要があります。
[一時停止と再開を許可] のオプションには以下のようなものがあります。
オプション | 説明 |
---|---|
現在のタスクを一時停止し、新しいタスクが完了したら再開する | ボットは現在のインテントのフローに関係なく、別のインテントが検出されるとすぐに新しいタスクに切り替えます。このオプションを選択すると、[再開オプション] セクションが表示され、新しいインテント タスクが完了した後、一時停止中のタスクを再開する方法を定義するための選択肢が提示されます。詳細については、「再開オプション」のセクションを参照してください。 |
現在のタスクを破棄し、新しいタスクに切り替える | このオプションを選択すると、現在のタスクを破棄し、別のインテントを検出した後すぐに新しいタスクに切り替えます。ボットは新しいタスクに切り替える前にユーザーに通知メッセージを送信し、現在のタスクは破棄されます。メッセージは [応答を管理] 設定でカスタマイズすることができます。 |
ユーザーへの通知なしに新しいタスクに切り替え、現在のタスクを破棄する | このオプションを選択すると、ボットは現在のタスクを破棄し、別のインテントが検出されるとすぐに新しいタスクに切り替えます。ボットはユーザーに切り替えを通知せず、現在のタスクを後で再開しません。 |
現在のタスクを継続し、新しいタスクをフォローアップ タスク リストに追加する | このオプションを選択すると、新しいインテントが検出された場合でも、現在のタスクを継続して実行します。しかし、新しいインテントはフォローアップ インテントの配列に追加されます。詳しくは、「フォローアップ インテント」のセクションを参照してください。 |
一時停止の後再開しない
このオプションを選択すると、ボット レベルの[一時停止と再開] はオフになります。ただし、選択されたタスク、リンクされたダイアログ (例外)、またはノード レベルでは、この動作をオーバーライドすることができます。詳しくは、以下の「一時停止と再開の階層」セクションを参照してください。
エンド ユーザーが動作を選択可能にする
このオプションを選択すると、ボットはエンド ユーザーに確認メッセージを表示し、新しいタスクに切り替えるかどうかをユーザーに確認します。エンド ユーザーが新しいタスクに切り替えることを選択した場合にのみ、ボットは新しいタスクに切り替えます。オプションの横にある [応答の管理] リンクをクリックして、ユーザーに送信される確認メッセージをカスタマイズすることができます。
ユーザーがタスクを切り替えることを決定した場合にボットが取るべき再開オプションを定義する必要があります。詳しくは、「再開オプション」のセクションを参照してください。
再開のオプション
タスクを一時停止にして割り込みタスクを進めたら、割り込みタスクが完了した後一時停止中のタスクをどのように処理するか、つまり再開オプションを設定する必要があります。
オプション | 説明 |
---|---|
一時停止中のタスクを再開する前にユーザーに確認する | 新しいタスクを実行した後、ボットはユーザーに最後の一時停止中のタスクに戻るかどうかの「はい」または「いいえ」の選択肢を提示します。また、オプションの隣にある [応答を管理] リンクをクリックして、ユーザーへのカスタム メッセージを作成することができます。 例: ユーザー: こんにちは ボット: こんにちは ユーザー: 明日のフライトを予約してもらえますか? ボット: どの都市からのフライトですか? ユーザー: ロサンゼルスです。 ボット: 行き先はどちらですか? ユーザー: ところで、明日の天気予報は? ボット: 天気予報を知りたい都市名を入力してください。 ユーザー: ロサンゼルス ボット: ロサンゼルスの天気予報 日付: 3 月 15 日 温度: 25 ℃ 状態: 快晴 ボット: 「フライトの予約」を続けますか? ユーザー: はい。 ボット: 目的地の空港名を入力してください。 |
一時停止中のタスクが再開されたことをメッセージでユーザーに通知する | メッセージでユーザーに通知し、ユーザーの確認なしに一時停止中の最後のタスクを再開します。オプションの隣にある [レスポンスの管理] リンクをクリックすると、通知メッセージをカスタマイズすることができます。 例: ユーザー: こんにちは ボット: こんにちは ユーザー: 明日のフライトを予約してもらえますか? ボット: どの都市からのフライトですか? ユーザー: ロサンゼルスです。 ボット: 行き先はどちらですか? ユーザー: ところで、明日の天気予報は? ボット: 天気予報を知りたい都市名を入力してください。 ユーザー: ロサンゼルス ボット: ロサンゼルスの天気予報 日付: 3 月 15 日 温度: 25 ℃ 状態: 快晴 ボット: 割り込みタスクの再開 「フライト予約」 ボット: 目的地の空港名を入力してください。 |
ユーザーへの特定のメッセージなしで一時停止中のタスクを再開する | 現在のタスクが実行された後すぐに、一時停止中の最後のタスクを再開します。
例: ユーザー: こんにちは ボット: こんにちは ユーザー: 明日のフライトを予約してもらえますか? ボット: どの都市からのフライトですか? ユーザー: ロサンゼルスです。 ボット: 行き先はどちらですか? ユーザー: ところで、明日の天気予報は? ボット: 天気予報を知りたい都市名を入力してください。 ユーザー: ロサンゼルス ボット: ロサンゼルスの天気予報 日付: 3 月 15 日 温度: 25 ℃ 状態: 快晴 ボット: 目的地の空港名を入力してください。 |
1 つの応答でタスクが終了した場合、ユーザーに特定のメッセージを送信せずに一時停止中のタスクを再開する | 切り替えられたタスクがボットの 1 つの応答で完了することがあります。たとえば上記の天気予報の例では、ユーザーが直接「ところで、ロサンゼルスの明日の天気は?」と入力すれば、ボットは単に天気予報のみを回答すればよく、それ以上のステップは生じません。 このような場合にこのオプションを選択すると、選択したオプションに関わらず、ボットは確認も通知もせずに、一時停止中のタスクに切り替えます。 注意: 切り替えは、ユーザーに通知されることなく直接実行されます。
|
一時停止数
[一時停止数] フィールドから、一時停止とするタスクの数を選択できます。ボットは最大でこの数のタスクを一時停止にし、この値に達するとタスクを無視します。
たとえば、一時停止数を 1 と指定して第 3 のインテントが発生した場合、ボットは一時停止と再開オプションの設定に関係なく、新しいタスクを開始しません。
一時停止と再開の階層
ボット レベルで一般的な一時停止と再開のオプションを定義する以外に、これらのオプションを ダイアログ タスクや ダイアログ ノード レベルでカスタマイズすることができます。複数のレベルで一時停止と再開オプションを設定した場合、設定の優先順位は以下のようになります。
ノード レベルの設定
ノードレベルで一時停止と再開の設定をカスタマイズできます。ノードの設定をカスタマイズする場合は、この設定が最優先されます。
ノードの一時停止と再開の設定をカスタマイズするには、以下の手順に従います。
- ダイアログ タスクを開き、設定を変更したいノードにカーソルを合わせます。
- [歯車アイコン] をクリックして [プロパティ] パネルに移動し、[インスタンス] タブをクリックします。
- [インスタンスのプロパティ] パネルで、[高度なコントロール] を選択します。
- [一時停止と再開] セクションで、[このノードのカスタマイズ] を選択し、必要な設定を行います。これらの設定は、上記で説明したボット レベルの一時停止と再開の設定と同じです。
ダイアログ レベルの設定
ダイアログ レベルの一時停止と再開のカスタマイズは、ボット レベルの設定よりも優先度が高くなりますが、ノード レベルのカスタマイズや例外よりも優先度が低くなります。
ダイアログの一時停止と再開の設定をカスタマイズするには、以下のようにします。
- カスタマイズしたい設定のダイアログ タスクを開きます。
- ダイアログ ビルダーの画面右上にある [その他のオプション] アイコンをクリックし、[割り込みを管理] をクリックします。
- [一時停止と再開] セクションで、[このタスク用にカスタマイズする] を選択し、必要な設定を行います。これらの設定は、ボット レベルの一時停止と再開の場合と同じです。
あいまいなインテントのための動作を管理する
(プラットフォーム バージョン 7.1 で導入)
あいまいなインテントの動作フラグを設定して、会話の流れの中であいまいなインテントを処理することができます。以下のようなことができます。
- あいまいなインテントをエンド ユーザーに提示し、H&R 設定に従って進めます。ユーザーがタスクを選択し、一時停止と再開の設定を
- 「現在のタスクを継続し、フォローアップ タスク リストに新しいタスクを追加する」とすると、現在のタスクは一時停止され、新しいタスクが開始されます。
- 「エンド ユーザーが動作を選択することを許可する」とすると、選択はすでに行われているので、ユーザーに確認することなく新しいタスクが開始されます。
- 他のすべての [一時停止] オプションは通常どおり適用されます。
- エンド ユーザーにあいまいなインテントを提示せず、現在のタスクを続行します。これは既定の設定です。
ユーザー認証のための動作を管理する
(プラットフォーム バージョン 7.3 で導入)
ユーザーが認証のためのプロンプト メッセージで関連性のない入力をした場合、以下のような流れになります。
- スモール トークのインテントが特定された場合、スモール トークの応答が表示され、再度認証を促します。
- プラットフォームは、一時停止管理の設定に関係なく、ユーザーの発話の中にインテント (タスクや FAQ) が存在するかどうかをチェックします。
- インテントが特定された場合、現在のタスクを破棄して新しいタスクを開始するかどうかの確認を求めます。
- 複数のインテントが特定された場合、あいまいさのダイアログと、発話を無視して現在のタスクを続行するオプションが表示されます。
- インテントが特定されない場合、認証リンクがユーザーに再度プロンプト表示されます。