ユニバーサルボットをトレーニングして、インテントが特定される最も関連性の高いリンクボットに誘導することができます。呼び出しフレーズとトレーニング発話を組み合わせて使用し、ボット識別トレーニングを定義することができます。
ユニバーサルボットのトレーニングは、以下の理由により必要不可欠です。
- ユーザーの発話が関連するリンク先のボットにルーティングされるようにするため。
- トレーニング発話または呼び出し名は、ユニバーサルボットがリンクされたボットを識別するのに役立ち、ユーザーの発話をこれらの識別済みのリンクされたボットにルーティングします。
- リンクされたボットが適格でない場合は、発話が、リンクされたボットにフォールバックボットとしてルーティングされます。
- 発話テストモジュールからリンクされたボットの特定フローを確認することが不可欠です。
トレーニング
次のセクションでは、ユニバーサルボットを効率的かつ機能的にするためのトレーニング手順、およびベストプラクティスについて詳述しています。ユニバーサルボットのトレーニングは、「ボットの識別」を目的としたものであり、標準ボットに用意されているような「インテントの識別」を目的としたものではないことを覚えておいてください。発話は、識別済みのリンクされたボット(何も識別されなかった場合はフォールバックボット)にルーティングされます。ユニバーサルボットのトレーニングは、以下の3つの方法で行われます。
- 特定のリンクされたボットの特定のインテントを識別するための、呼び出しフレーズを使用したトレーニング。
- 特定のリンクされたボットを識別するのに役立つ、呼び出し名を使用したトレーニング。
- リンクされたボットをスコーピングするための、ユーザーの発話を使用したトレーニング。
メモ:インクルーシブボットにはトレーニングは必要ありません。同一トレーニングを選択した場合、トレーニングはボットのスコーピングには使用されませんが、リンクされたボットがインクルーシブボットとして選択解除された場合、このトレーニングは後で使用されます。トレーニングは、トップメニューのビルドタブから、自然言語->リンクされたボットトレーニングオプションを選択して実行できます。このドキュメントでは、お客様がすでにユニバーサルボットを作成し、ボットをリンクしていることが想定されていることにご注意ください。ステップはこちらを参照してください。
呼び出しフレーズ
呼び出しフレーズは特定のリンクされたボットへの参照と、その特定のリンクされたボットからのインテントを含む典型的なフレーズを指します。例―「十分な休暇残高があるかどうかをHRに確認できますか」、「セールスフォースからの最新のリードを表示してください」など。各呼び出しフレーズは次のコンポーネントを構成します。
- リンク先のボットを特定するためのトリガーフレーズ。以下で構成されています。
- トリガーワードのサポートは、プラットフォームがデフォルトで提供しており、このサポートは言語固有の値にも拡張されています。サポートされているトリガーワードの一覧は以下を参照してください。詳細は以下をご確認ください。
- 呼び出し名は、リンクされたボット名の同義語と見なすことができます。詳細は以下をご確認ください。
- インテントフレーズは、ユーザーが実行したいリンク先のボットに関連するタスクです。
パターン
トリガーフレーズと呼び出し名の存在は、以下のパターンルールに従うものとします。
パターン | <trigger words> | <intent words> | <connecting words> | <呼び出し名> | <question words> |
---|---|---|---|---|---|
<intent words><connecting words><Invocation name> | Not relevant | * | by, from, in, with, using | ユーザー定義 | Not relevant |
例 | Zomatoを使用して近くのレストランを取得する | ||||
<Trigger words><Invocation name> { <connecting words> } { <question words> } <intent words> | 聞いて、教えて | * | to, about, for, if, whether | ユーザー定義 | 何を、いつ、どこで、どのように、どれを、なぜ |
例 | Uberに乗車予約を依頼する、またはCleaに今日のスケジュールを確認したい旨を伝える | ||||
<Trigger words><Invocation name> <connecting words><intent words> | 尋ねる、伝える、検索する、開く、話す、起動する、開始する、実行する、再開する、ロードする、開始する、使用する | * | そして、 | ユーザー定義 | 関係ありません |
例 | YouTubeを起動してFilterCopyの動画を再生 |
トリガーワード
プラットフォームでは、以下のトリガーワードがデフォルトでサポートされています(多言語サポートについてはこちらを参照してください)。
- Ask
- Tell
- Search
- Open
- Load
- Begin
- Launch
- Talk to
- Run
フレーズの終了
以下のトリガーワードは、ユーザーがリンクされたボットのコンテキスト全体を終了するために使用することができます。
- 終了
フォールバックボット
特定のボットをフォールバックボットとしてマークしておけば、別のトレーニングオプションで他のボットが検出されなかった場合に、インテントの検出に使用することができます。注意:
- 一度にフォールバックボットとしてマークできるボット数は最大15です。
- ビジネスニーズに応じて、優先するボット一覧をいつでも変更することができます
インクルーシブボット
インクルーシブボットは、ボットのスコーピングプロセスに参加するためのサンプル発話のトレーニングを必要としません。これらのボットは、ユーザーの発話を評価する際に、ユーザーが「呼び出しフレーズ」または「トリガーフレーズ」を使用してリンクされたボットを起動した場合を除いて、常にインテント検出の対象となります。インクルーシブボットとしてマークできるリンクされたボット数は最大3つです。
メモ:リンクされたボットは、フォールバックまたはインクルーシブのいずれかとしてマークされますが、両方マークされることはありません。
リンクされたボット
コンテキスト内のリンクされたボットに関連する情報は、以下のキーの下にあるセッションコンテキストで利用することができます。
- リンクされたボットのIDに対してcurrentLinkedBotid;
- リンクされたボット名に対してcurrentLinkedBotName。
対象ボット
ユニバーサルボット開発者としてし、特定のボットを特定のエンドユーザーに割り当てることで、そのボットからのインテントのみを利用できるようにすることができます。対象ボットに関連して、次の関数を使用できます。
- 特定のユーザーコンテキストで現在の対象ボットトのリストを取得するには、次の手順に従います。
UserContext.getEligibleBots()
- 対象ボットを設定するには:
UserContext.setEligibleBots(["st-linkedBot1","st-linkedBot2"])
ここで、st-linkedBot1、st-linkedBot2などはリンクされたボットのボットIDです(「設定」->「構成設定」->「一般設定」から取得)この関数は、現在の対象ボットを指定されたボットに置き換えます。 - 特定のユーザーコンテキストで現在の対象ボットトのリストを削除するには、次の手順に従います。
UserContext.removeEligibleBots()
ユーザー認証または組織で実施されているその他のアプローチに基づいて、対象ボットを設定できます。ボットの割り当てが提供されていない場合のボットの動作を、設定から定義することもできます。以下を参照してください。
設定
構成設定には、ビルドトップメニュータブの左側のメニューの自然言語->設定からアクセスできます。これらのしきい値を構成できるように、ボットビルダーには次の構成が用意されています。
- ボットの同義語の使用 – インテント検出におけるボットの同義語の使用を有効または無効にするためのトグルです。デフォルトでは無効になっています。
- インテントを可能性の高い一致と見なすための最小MLスコアを定義するMLしきい値は、0~1の任意の値に設定することができます。デフォルト設定は0.3です。バージョン8.1以降では、この設定はリンクされた各ボットのボットの適格性判定基準に置き換えられています。上記をご確認ください。
- 旧バージョンへの切り替えから、ユニバーサルボットの旧バージョンに切り替えることができます。詳細はこちらをご確認ください。
- トリガーフレーズは、ユーザーがトリガーフレーズを使用して、つまりインテントを指定せずに、リンクされたボットをトリガーすることを可能にします。有効にすると、ボットの動作を以下のように定義することができます。
- リンクされたボットで定義済みのウェルカムメッセージを表示する
- カスタムメッセージを表示する。応答を管理を使用して、表示されるメッセージを定義します。
- 最近使用されたボットの設定は、リンクされたボットがトレーニングデータから特定されなかった場合に、リンクされたボットのスコープを絞り込むために使用されます。ボットは、ユーザーが最近使用したボットを5つまで記憶するように設定することができます。
- インテントの再スコアリングは、リンクされたボットのインテントを処理する際に、ユニバーサルボットの動作を定義するために使用することができます。デフォルトでは、ユニバーサルボットは、リンクされたボットから受け取ったインテントを再スコアリングし、上位インテントを特定します。このインテントの識別プロセスは、UBとリンクされたボットの両方で提供されるトレーニングに依存します。ただし、ユニバーサルボットが適切にトレーニングされていない場合には、再スコアリングによって誤ったインテントの識別が行われる可能性があります。上位インテントの識別のための、インテントの再スコアリングを無効にするオプションがあります。以下の設定(バージョン8.0から導入)が可能です。
- 適格なインテントを再スコアリングして最適な一致の可能性を見つける – これはデフォルトの選択であり、さらに設定を変更することができます。
- 一致の可能性の近接性は、トップスコアのインテントと可能性が次に高いインテントの間の最大許容差を定義し、それらを同等に重要であると見なします。0~20の間でパーセンテージを設定することができます。デフォルト設定は2%です。
- 選択用にすべての適格なインテントをエンドユーザーに提示する – これは、1つ以上のリンクされたボットから複数の確定的および/または確率の高い一致が返された場合に、曖昧なインテントの一覧をユーザーに提示します。単一のリンクされたボットから1つのインテントのみが返された場合、そのインテントが実行されます。
- 適格なインテントを再スコアリングして最適な一致の可能性を見つける – これはデフォルトの選択であり、さらに設定を変更することができます。
- ボットの割り当ての動作は、適格なボットが特定のユーザーに設定されていない場合の動作を定義するために使用することができます(こちらをご確認ください)。以下の設定が可能です。
- すべての子ボットを割り当てる:リンクされたすべてのボットが適格です。これはデフォルト設定です。
- 子ボットを割り当てない:ユーザーはリンクされたボットに対して適格ではありません。
導入
ユニバーサルボットの仕組みを見てみましょう。ユニバーサルボットは、ユーザー入力を複数のステージで処理し、適切なボットを特定し、適切なインテントを呼び出します。
ステージ1 – ボットのスコーピング
ユーザーは、「Salesforceと話す」、「Evaに尋ねる」(EvaはHRのボット)などのトリガーフレーズや、「会議を予定する」、「タスクを追加する」などのパターンを使用して、リンクされたボットを呼び出すことができます。
- ユーザーの発話(呼び出しフレーズ)が、リンクされたボット名(呼び出し名)に対して評価されます。
- このボット名は、すべてのリンクされたボット名または適格なボット名(ユーザの適格性基準が定義されている場合)と比較され、1つ以上のスコーピング済みのリンクされたボットを絞り込みます。ボットの適格性:組織内での役割またはチームとの関連性に基づき、様々なユーザーが様々なボットとスキルのセットにアクセスできる場合があります。制限されたスコープを使用することで、ユニバーサルボットは、ユーザーのアクセス制御に基づいて、より適切なボットを特定することができます。
ステージ2 – リンクされたボットに対するフォーク入力
ボットのセットがスコーピングされると、ユーザー入力はスコーピング済みのリンクされたボットすべてに送信されます。リンクされた各ボットからのインテントのランキングが蓄積され、さらに評価されます。
- 発話は、インテントを識別するためにスコーピング済みのリンクされたボットに送信されます。
- 識別されたインテントは、その後の評価および動作のために、ユニバーサルボットのランキングおよび解決に転送されます。
ステージ3 – ランキングおよび曖昧さの解消
リンクされたボットからの応答はランク付けされます。複数のボットがユーザー入力に対して適格である場合には、追加のコンテキストによって曖昧さを解消します。それができない場合は、曖昧さの解消のためのダイアログがボットユーザーに表示されます。
ステージ4 – 達成度の呼び出し
- 上位インテントが実行されます。
- 上位インテントがない場合:
- ユニバーサルボットは、スモールトークのインテントが一致しているかどうかを確認します。
- フォールバックボットが実行されます。