ユーザーがタスクの実行中に設定を変更する状況が何度も見られます。
例えば、ユーザーはフライトの予約中に旅行の日程を変更したり、目的地を変更したりする場合があります。
エンティティの変更は、このようなシナリオのための機能です。この機能を使用することで、お客様はユーザーによるエンティティ値の変更や変更後のダイアログの動作制御を可能にします。
エンティティの変更プロセスは、3つの段階に分けることができます。
- 変更の識別:エンドユーザーが変更を望んでいることの識別は、Botの組み込みNLP機能によって行われます。
- エンティティの変更:変更の意図を識別すると、現在のタスクは一時停止され、変更フローがトリガーされます。ユーザーの発話に基づいて、次の3種類の変更フローが考えられます。
- ユーザーがエンティティ名(またはエンティティの同義語)を参照した場合、エンティティ値の入力を求められます。例えば、「I want to change the destination」というユーザーの発話により、目的地エンティティのプロンプトがトリガーされます。同じエンティティノードがダイアログ内に複数回存在する場合、ユーザーが既に入力した最新のエンティティノードが変更されます。
- ユーザーがエンティティ値を指定すると、それに応じてエンティティが更新されます。例えば、「I want to fly to JFK」というユーザーの発話により、目的地のエンティティ値が変更されます。値がダイアログ内の2つ以上のエンティティと互換性がある場合、ユーザーは変更するエンティティの選択を促されます。
- ユーザーがエンティティとその値の両方を参照した場合、エンティティが更新されます。例えば、「change my destination to JFK」というユーザーの発話により、目的地のエンティティ値が変更されます。
- 変更後の動作:エンティティが正常に変更された後、Botが設定できる3つのダイアログ実行フローがあります。
- ダイアログは、エンティティの接続を評価することで、変更されたノードから再実行することができます。
- ダイアログは、変更が識別または作成されたノードから再開することができます。
- ダイアログは、ダイアログ内に存在する指定されたノードから再開することができます。
注:
- この機能はバージョン6.4のリリースで導入されました。
- この機能はすべての言語でサポートされているわけではありません。詳細はこちらを参照してください。
Implementation
Kore.aiプラットフォームでは、次の2つのレベルでエンティティの変更の動作を定義することができます。
- Botレベル
- タスクレベル
Botレベル
Botレベルのエンティティの変更の動作を設定する
- 自然言語 > インテリジェンスオプションからエンティティの変更を選択します。エンティティの変更はデフォルトでは無効になっています。
- エンティティの変更を許可を選択すると、様々なダイアログの再開オプションが利用可能になります。
- 変更済みのエンティティからダイアログを再実行 – 変更済みエンティティの接続を評価してダイアログを再開するには、このオプションを使用します。さらに以下を選択することができます。
- 下流で取得されたエンティティの値を削除 – 識別されたエンティティと変更の間に取得されたすべてのエンティティを削除します。
- 以前に表示されたメッセージの表示のスキップ – メッセージノードからのメッセージのみ。
- 変更識別ノードからダイアログを再開 – 変更が識別されたノードからダイアログを再開するには、このオプションを使用します。
- 変更済みのエンティティからダイアログを再実行 – 変更済みエンティティの接続を評価してダイアログを再開するには、このオプションを使用します。さらに以下を選択することができます。
- プラットフォームのリリース8.0以降は、「ユーザーに入力を求めない」として設定されたエンティティの変更オプションを使用して、ユーザーに入力を求めないとマークされたエンティティに変更プロセスを拡張することができます。
タスクレベル
タスクレベルのエンティティの変更の動作を設定する
エンティティの変更の動作は、タスクレベルでも設定することができます。Botレベルの設定はタスクレベルで定義された設定に上書きされます。
- タスクダイアログのページから、省略記号アイコンをクリックし、変更の動作の管理を選択します。
- これにより変更の動作の管理ダイアログが開かれます。
- デフォルトでは、Botレベルの設定を使用が選択されており、Botレベルの設定が表示されます。
- このタスクのカスタマイズを選択して、Botレベルの設定を上書きします。
- エンティティの変更を許可しないを選択した場合、ユーザーがこのタスクのエンティティ値を修正することを許可しません。
- エンティティの変更を許可を選択した場合、さらに3つのダイアログ再開オプションが与えられます。
- 変更済みのエンティティからダイアログを再実行 – エンティティの変更の動作は、タスクレベルでも設定することができます。Botレベルの設定はタスクレベルで定義された設定に上書きされます。
- 下流で取得されたエンティティの値を削除 – 識別されたエンティティと変更の間に取得されたすべてのエンティティを削除します。
- 以前に表示されたメッセージの表示のスキップ – メッセージノードからのメッセージのみ。
- 変更識別ノードからダイアログを再開 – 変更が識別されたノードからダイアログを再開するには、このオプションを使用します。
- ダイアログ内の特定のノードにジャンプ – このオプションを使用して、タスクフローをジャンプさせる必要のある現在のダイアログからノードを選択します。このオプションを使用すると、ダイアログで再開する前にカスタム動作を追加することができます。コンテキストオブジェクトには、以前の値と現在の値とともに、修正されたエンティティの詳細が含まれます。この情報を使ってダイアログをカスタマイズすることができます。
- 変更済みのエンティティからダイアログを再実行 – エンティティの変更の動作は、タスクレベルでも設定することができます。Botレベルの設定はタスクレベルで定義された設定に上書きされます。
- プラットフォームのリリース8.0以降は、「ユーザーに入力を求めない」として設定されたエンティティの変更オプションを使用して、ユーザーに入力を求めないとマークされたエンティティに変更プロセスを拡張することができます。
トリガー
以下は、エンティティの変更の動作をサポートするパターンです。これらのパターンを中心としたユーザの発話が、エンティティの変更のトリガーとなります。
~amend_synonyms from to
例:「change the departure date from today to tomorrow」~amend_synonyms [to as from with] [instead_of rather_than not]
例:「modify departure date to tomorrow instead of today」~amend_synonyms [to as with]
例:「replace departure date with tomorrow」~amend_synonyms from
例:「alter departure date from today」~amend_synonyms [to as from with]
例:「modify departure date to tomorrow」~amend_synonyms {from} [to as with]
例:「change from today to tomorrow」~amend_synonyms [to as from] [instead_of rather_than not]
例:「change to tomorrow instead of today」~amend_synonyms [to as from] instead
例:「change to tomorrow instead」~amend_synonyms [([it that this] {to}) it that this to]
例:「change it from today to tomorrow」~amend_synonyms
例:「amend departure date」~amend_synonyms
例:「change today」[to as from] [instead_of rather_than not]
例:「to tomorrow instead of today」[to as from] instead
例:「to tomorrow instead」
上記のパターンでは、~amend_synonyms
の概念には"amend", "change","modify","alter","update", "replace", "make", "move", "upgrade", "want"
が含まれます。
ユーザーはこれらのパターンを使用して、複数のエンティティ値を変更することができることにご注意ください。例えば、「Change the departure date from today to tomorrow and departure city to Chicago」の場合、出発日と出発都市の両方が変更されます。
その他の注意事項
- ユニバーサルBotのデフォルト言語には、変更機能は適用されません。ただし、リンク先のBotが進行中の場合は、リンク先のBotの変更設定が反映されます。
- 変更リクエストの識別は、プラットフォームに組み込まれているトレーニングデータに基づいて行われ、現在、英語のダイアログタスク会話でのみサポートされています。
- この機能の範囲には、現在、以前に入力されたエンティティの置換のみが含まれています。部分的な変更、削除、エンティティ値への追加など他のシナリオは含まれません。