ユーザー体験を向上させるため、場合によっては、いつもとは違ったやり方でバーチャルアシスタントのフローを制御したいこともあります。
以下のようなシナリオを考えてみましょう。
- NLPエンジンは、ユーザーの発話に基づいてインテントを特定したのかもしれません。しかし、バックエンドシステムやSDKが設置されているWebページなどの外部情報から得られた追加情報に基づいて、別のタスクが適している場合もあります。
- たとえば、フライト予約のバーチャルアシスタントでは、ウェルカムメッセージの一部として、現在進行中のお得な取引情報をユーザーに提供します。ユーザーの選択に基づいて、ユーザーに提示された取引情報から出発地、目的地、旅行などの旅行詳細情報を事前に入力することで、「フライトの予約」タスクをプログラムで呼び出すことができます。
Kore.aiは、nlMetaデータを利用してプログラム的に仮想アシスタントに情報を渡す方法を提供しています。これは、BotKit SDK、Widget SDK、およびWeb SDKで使用され、必要に応じて、エンティティ値および他のタスク設定とともにトリガーされるインテントなどの情報を渡すことができます。
nlMeta
nlMeta は、ボットに情報を渡すために使用できるオブジェクトです。ボットは、他の情報を解読しようとする前に、この情報を使用してそこに指定されたインテントを実行します。
サンプル
以下は、 nlMeta オブジェクトにどのように入力する必要があるかに関するサンプルです。
'nlMeta': { 'intent': '<intent_name>', 'childBotName': '<child_bot_name>', 'isRefresh': <true/false>, 'entities': { '<entity1_value>': value1, '<entity2_value>': value2, }, 'interruptionOptions': { 'hr': { 'h': 1; 'r': 1; 'nn': true } } }
パラメータ
このオブジェクトで使用できるパラメータは以下のとおりです。
パラメータ | 説明 | ||||||
---|---|---|---|---|---|---|---|
nlMeta | ボット用の自然言語情報のためのオブジェクト | ||||||
インテント | ボットがトリガーする必要のあるサードパーティによって特定されたインテント | ||||||
childBotName(ユニバーサルボットの場合) | ユニバーサルボットの場合にのみ使用され、トリガーする子ボットのインテントを特定します。これは、子ボットからのウィジェットをユニバーサルボットパネルで使用する際にも必要です。 | ||||||
エンティティ | トリガーとなるインテントが必要とするエンティティとバリューのペアを持つオブジェクト | ||||||
isRefresh |
|
||||||
interruptionOptions |
ボットがこのnlMeta情報を受け取ったときに何らかのタスクが進行中の場合、中断の動作を示すために、値は以下が可能:
|
リクエストされたタスクが見つからなかった場合、ボットは「会話をリクエストされたダイアログタスクは利用できません」という標準的な応答を返します。
使用状況
前述の通り、BotKit SDKおよびWeb/ウィジェットSDKを介して、nlMetaを入力し、バーチャルアシスタントに送信することができます。実現方法を以下の図に示します。
- BotKit SDK – metaInfoオブジェクトの一部として。
data.metaInfo = { 'nlMeta': { 'intent': 'Authenticate User', 'isRefresh': true, 'entities': { "Name": "John" }, 'interruptionOptions': 'discardAll' } }
- Web SDK – nlMeta情報は、sendMessage関数を使用してパラメータとして送信することができます。この関数は chatWindow.jsファイルの中にあります。nlMetaデータが以下のように消費される必要がある場合、条件を追加します。
if(_this.text() == “Existing”){ me.sendMessage(_this, attachmentinfo, {'nlMeta': { 'intent': 'Authenticate User'}}); } else{ me.sendMessage(_this, attachmentinfo); }
上記の例では、テキストフィールドに「既存」という値が含まれている場合、認証ユーザーインテントがトリガーされます。
- Widget SDK – nlMeta 情報は、ボタン、メニュー、リストなどのさまざまなテンプレートのペイロードの一環として送信することができます。詳細はこちらをご覧ください。