Kore.ai BotKit SDK は、Kore.ai ボット プラットフォーム上で構築したボットに対して、ユーザーとの対話を正確に制御するためのライブラリ セットです。ボットビルダーのダイアログ エディタを使用してダイアログ タスクを構築する際、イベント ハンドラを追加してメッセージと Webhook イベントをサブスクライブし、SDK を使用してメッセージと Webhook イベントを制御することができます。このトピックでは、BotKit SDK が Bot プラットフォーム、使用できる SDK イベント、および BotKit SDK のダウンロードとインストールと、どのように統合されているかについて説明します。ボットはユーザーの質問に答えるために、また、ユーザーのトランザクションを実行するために構築できますが、場合によっては、ユーザーが目的を達成できるように、ボットとの対話から人間のエージェントに切り替える必要があります。例:
- ユーザーが質問をするか、またはボットが回答するように設計されていないというレスポンスを返す場合。
- ユーザーが、ボットではなくライブ エージェントとのチャットを希望する場合。
- ボットの開発者は、特定の条件に基づいたダイアログ フローを基に、ライブ エージェント転送を設計します。たとえば、特定のユーザータイプやユーザーのトーン分析に基づいて、ダイアログ フローをライブ エージェントに転送したい場合などです。
仕組み
ボット プラットフォームで以下のイベント タイプをキャプチャすると、BotKit SDK を使用したイベント処理をダイアログ タスクに統合できます。
メッセージ
Kore.ai ボット プラットフォームでは、ユーザーはボットに定義されているチャネルのいずれか 1 つで、自分のボットと対話します。以下の図では、Kore.ai ボット プラットフォーム、BotKit SDK、および自然言語処理エンジンを介したユーザー メッセージ フローを確認することができます。 ユーザーとボットのレスポンスのすべてのメッセージが、メッセージ イベントとして BotKit SDK に送信されます。
Webhook
BotKit SDKは、自然言語プロセッサが ボットビルダー ダイアログのタスク フローで SDKWebhook ノードを入力するたびに、Webhook イベントを受け取ります。次のシーケンス図では、ユーザーがボットのチャネル経由でメッセージを送信してからユーザーのレスポンスが表示されるまでのフローを示しています。 Webhook イベントに関しては、サーバー サイドでの検証やビジネス ロジックの実行が必要な場合、またはバックエンド サーバーの呼び出しが必要な場合に、ダイアログ タスク フローに Webhook ノードを追加する必要があります。ビジネス ロジックとレスポンスは、同じ on_webhook
イベントで送信されます。レスポンスは、HTTP ステータス コードの 202 となります。SDK からボット プラットフォームにレスポンス データを送信するには、 sdk.sendWebhookResponse()
イベントを呼び出します。Webhook イベントは、Kore.ai NL エンジンがダイアログ タスク フローで Webhook ノードを処理する際に、SDK によって受信されます。Kore.ai NLP エンジンは各ノードを処理し、定義された条件に基づいて次のノードに移行します。Webhook ノードが処理されると、Webhook の呼び出しが実行され、ボット プラットフォームは on_webhook
イベントを SDK に送信します。以下のシーケンス図は、Webhook を使用したメッセージ フローを示しています。
エージェント転送
以下のシーケンス図では、エージェント転送条件に一致するまで、ボット プラットフォームがユーザーの入力に直接応答します。一致すると、ボット プラットフォームは BotKit SDK 実装に接続し、現在の会話を取得するなどして、チャットを初期化します。BotKit SDK は、ライブ エージェントのセッションが終了するまで、ユーザーとエージェントの会話を統合します。ライブ エージェントに切り替えると、現在のダイアログ タスクが終了します。 ダイアログの会話フローでエージェント転送を設定するには、以下が必要です。
- Kore.ai ボット ビルダーの [設定し] タブ > [SDK 設定] セクションでアプリを作成し、コールバック URL を定義し、クライアント ID と クライアント シークレットを生成して、OnAgentTransferNode を有効にする。
- エージェントに転送するために必要なステップを特定し、移行条件を定義する。
- 以下の図のように、ダイアログ フローにエージェント転送ノードを追加する。
詳しくは、BotKit SDK チュートリアル — エージェント転送」をご覧ください。