Kore.aiのユニバーサルボットは、複数の独立した標準ボットを1つにまとめることで、拡張性のあるモジュール形式のボットの構築を可能にします。
- モジュール化:ドメイン固有の課題に対応するボットを個別に構築し、それらを統合して最適な相互運用を行います。
- 拡張性主要なユースケースに対応するボットをまず構築し、その他のユースケースに対応するボットを追加していきます。
ユニバーサルボットの作成を始める前に、ユニバーバルボットの仕組みや標準ボットとの違いについて理解しましょう。
ボットの動作
ユニバーサルボットの応答は、ユーザーインテントに合致するボットやタスクの数と、それらの関連性(完全一致または候補)によって異なります。自然言語処理(NLP)エンジンは、リンクされたボットに送信された発話を処理し、ユーザーインテントを検出して、関連性に基づいてランク付けします。開発者は、ユニバーサルボットをテストで説明されているように、ボットの応答をテストしてトレーニングすることができます。以下の表は、考えられる様々なNLPの結果において、ユニバーサルボットの応答がどのように動作するかを示しています。
NLPの結果 | ボットの応答 |
---|---|
リンクされたどのボットからも完全一致が1つしか見つからない | 完全一致のタスクを実行する |
1つ以上のリンクされたボットで完全一致が見つかった | ユーザーの発話に含まれる呼び出し名とボットの結果の一致を試みますが、そうでない場合はユーザーに選択を促します。 |
リンクされた単一のボットの2つ以上のタスクで完全一致が見つかった | 現在のボットのコンテキストを使用して曖昧さを解消し、そうでなければユーザーに選択を促します。 |
1つ以上のリンクされたボットで候補が見つかった | 個々のスコアを評価し、P&Rの設定に基づいて上位インテントを実行します。 |
リンクされた単一のボットの2つ以上のタスクで候補が見つかった | P&Rの設定に基づいて、上位インテントを実行します。 |
候補が1つのみ見つかった | ユーザーに候補を表示し、選択するかどうかを尋ねる |
完全一致または候補が見つからない | ユニバーサルボットのインテントを確認する – スモールトークまたはフォールバックボット |
標準ボット vs ユニバーサルボット
ユニバーサルボットは、複数の標準ボットを単一のボットにまとめます。いくつかの例外を除いて、ほとんどの標準ボットの機能をサポートしています。
有効な機能と設定
このセクションでは、標準ボットの基礎知識をお客様が理解していることを前提としています。ユニバーサルボットに関連する詳細のみをこちらに記載します。基本的な操作については、関連する標準ボットのドキュメントを参照することをお勧めします。以下の表の機能列の項目は、標準ボットのドキュメントのURLを示しています。説明列の詳細リンクは、ユニバーサルボットのドキュメントを参照しています。
機能 | 説明 |
---|---|
自然言語 |
|
テスト | ユニバーサルボットは標準ボットをリンクさせるため、自然言語処理(NLP)の設定が最適化され、関連するボットとインテントを正確に認識することができます。少しの違いで、標準ボットと同じようにユニバーサルボットのテストやトレーニングを行うことができます。タスクのトレーニングは、リンクされたボットのレベルで行われます。詳細 |
トレーニング(UB 2.0) | ユニバーサルボット2.0は、プラットフォームのバージョン7.3以降、トレーニングできるようになりましたが、そのアプローチは通常のボットとは少し異なります。詳細 |
標準レスポンス | ユニバーサルボットは、挨拶などのボットレベルの機能に関連する、限られた標準の応答を保持します。自然言語 > デフォルトの会話で、標準応答セクションにアクセスし、関連する標準の応答を編集します。 |
バッチテスト | ユニバーサルボットは、カスタム定義された発話のテストのみをサポートしており、開発者が定義した発話や成功したユーザー発話はサポートしていません。カスタム定義された発話のテストスイートは、標準ボットと同様ですが、アップロードするJSONデータセットファイルに、各テストケースのインテントおよび入力とともにボット名を含める必要があります。また、ダウンロードしたバッチテストのレポートには、対応するボット名とともに結果が表示されます。 |
デフォルトダイアログ | ユニバーサルボットには、未確認のインテントでトリガーされるデフォルトのダイアログタスクが伴います。このタスクをカスタマイズしたり、新しいタスクをインポートすることができます。詳細 |
イベントベースのボットアクション | バージョン8.0では、リンクされたボットから色々なイベント用に様々なタスクを選択できるようになりました。詳細 |
ヘルプ | チャット中にユーザーがヘルプと入力した場合、標準ボットが実行可能なタスク一覧を返し、ユーザーはタスク名を選択して実行することができます。ユニバーサルボットに関して言えば、ユーザーがヘルプと入力すると、ボットはリンクされているボットの名前を返します。ユーザーは一覧からタスクを選択したり実行したりすることはできません。 |
チャネルの設定 |
|
すべて | ユニバーサルボットは、リンクされたボットのチャネル設定を取得せず、独立したチャネル設定を必要とします。リンクされたボットのチャネルとは別に、ユニバーサルボットの新しいチャネルを設定することができます。リンクされたボットの公開済みタスクは、ユニバーサルボットのチャネルから実行されます。詳細 |
設定 |
|
一般設定 | ユニバーサルボットと標準ボットの基本設定は同じです。 |
言語管理 | ユニバーサルボットは、リンクされたボットの有効化された言語を取得しません。ユニバーサルボットで、デフォルト言語と追加言語を明示的に有効にする必要があります。ただし、ユーザーが有効な言語で発話した場合、ユニバーサルボットは、その言語をサポートするリンクされたボットタスクにのみその発話を伝達します。例えば、ユニバーサルボットでドイツ語が有効になっており、ユーザーがドイツ語で発話した場合、NLPエンジンはドイツ語をサポートするすべてのリンクされたボットのタスクを探し、それらのタスクにその発話を送信します。詳細 |
開発者コラボレーション | 標準ボットと同様に動作します。ユニバーサルボットを別の開発者と共有すると、その開発者はボットをリンクしたりリンク解除したりすることができます。 |
ログの変更 | ユニバーサルボットのログの変更には、標準ボットに適用されるすべての変更内容に加えて、以下の内容が記録されます。
|
ボットのインポートとエクスポート(バージョン7.1より対応) | 標準ボットと同様に、公開されているユニバーサルボットと公開されていないユニバーサルボットをエクスポートおよびインポートすることができます。ユニバーサルボットはリンクされたボットを扱うため、以下の点に注意する必要があります。
|
ボットの削除 | 標準ボットと同様に、公開されていないユニバーサルボットを削除することができます。 |
変数管理(UB 2.0) | 標準ボットと同様に、ユニバーサルボットでもグローバル変数やコンテンツ変数を定義することができます。さらに、変数をリンクされたボットに伝えるかどうかを選択することもできます。 |
API 拡張 |
|
SDKツールキット | オンメッセージ、オンフック、オンイベント、オンアラートなどのイベントで有効 |
エージェントへの転送 | エージェントへの転送は、ユニバーサルボットに設定することができます。デフォルトダイアログでエージェントノードを追加する必要があり、エージェントノードの後に別のノードを追加することはできません。 |
WebHookノード | 複数のWebhookノードをデフォルトダイアログに配置することができます。会話中にWebhookノードに到達すると、プラットフォームは標準ボットと同様にBotKitを起動します。 |
チャネルとしてのSDK | 有効になっている |
分析する |
|
チャット履歴 | ユニバーサルボットのチャットはすべて記録されます。開始されたトレーニングは、リンクされた個別のボットに影響を与えます。 |
公開する |
|
すべて | リンクされたボットを1つまたは複数選択し、ユニバーサルボットを公開することができます。公開フローについては、こちらをご確認ください。 |
イベント管理
リンクされたボットの以下のBotKitイベントに対するユニバーサルボットの動作を見てみましょう。
- 会話の終了(以下を参照)
- メッセージ
- エージェント
- Web フック
- イベント
- 通知イベント
コンテキストに子ボットがある場合(子ボットからのタスクが進行中の場合)、開発者の設定に基づいて、子ボットに関連するイベントがトリガーされます。
- 子ボットでイベントが有効になっている場合、そのイベントは子ボットのBotKitに転送されます。
- 子ボットでイベントが有効になっていない場合
- ユニバーサルボットでイベントが有効になっている場合、そのイベントはユニバーサルボットのBotKitに送信されます。
- ユニバーサルボットでもイベントが有効になっている場合、そのイベントはどのBotKitにも転送されません。
以下の表は、上記のシナリオと動作をまとめたものです。
イベント名 | チャイルドボットのステータス | ユニバーサルボットのステータス | 想定される動作 |
---|---|---|---|
メッセージ | 有効になっている | – | 子ボットのBotKitに送信されるイベント |
無効になっています | 有効になっている | ユニバーサルBotKitに送信されるイベント | |
無効になっています | 無効になっています | 無効なシナリオです。この場合、イベントは発生しません | |
その他のイベント | 有効になっている | – | 子ボットのBotKitに送信されるイベント |
無効になっています | 有効になっている | ユニバーサルBotKitに送信されるイベント | |
無効になっています | 無効になっています | 現在の動作と同じです。例:ダイアログがWebhookノードに到達したが、「オンフック」イベントが有効になっていない。 |
会話の終了
次の表は、会話の終了イベントに対するボットの動作を表しています。
会話の終了 | ユニバーサルボットの会話の終了イベント | リンクされたボットの会話の終了イベント | 動作 |
---|---|---|---|
ユニバーサルボット | 有効になっている | 有効または無効 | ユニバーサルボットのトリガーイベント |
ユニバーサルボット | 無効になっています | 有効または無効 | イベントがトリガーされない |
リンクされたボット | 有効または無効 | 有効になっている | リンクされたボットのトリガーイベント |
リンクされたボット | 有効になっている | 無効になっています | ユニバーサルボットのトリガーイベント |
リンクされたボット | 無効になっています | 無効になっています | イベントが発生しませんでした |