会話セッションとは、ボットとユーザー間で行われる連続したやり取りであると定義されています。これらのセッションは、ボットビルダーやボット管理コンソールの複数の分析ダッシュボードで使用されます。Kore.aiのバーチャルアシスタントプラットフォームによって、これらの会話セッションをどのように作成および終了するかをカスタマイズすることができます。
会話セッションは請求セッションとは異なります。請求セッションについてはこちらを参照してください。
概要
会話セッションとは、エンドユーザーとボット間で行われる連続したやり取りであると定義されています。
- バージョン7.2のプラットフォームリリース前 – エンドユーザーが最後に操作してから休止状態持続期間(15分に設定)が経過すると、新しいセッションが作成されていました。
- バージョン7.2以降 – 休止状態持続期間(15分に設定)が経過した後、
- エンドユーザーが戻ってきて同一インテントで続行した場合、現在のセッションは継続されます。
- エンドユーザーが戻ってきて新しいインテントで続行したり、既存のインテントに対して無効な入力をした場合、新しいセッションが作成されます。
- バージョン8.0以降のプラットフォームには、次のようなオプションがあります。
- 休止状態後に、主動的にセッションを閉じる – セッションの管理の詳細については、こちらを参照してください。
- 休止状態後に、主動的にセッションを閉じない – 前述のバージョン7.2の動作を維持します。
会話セッションは、バーチャルアシスタントまたはボットとのすべてのやり取りに対して作成されます。これには以下のものが含まれます。
- 対話セッションとしてマークされた、ユーザーからの1つ以上のメッセージを含むすべての会話。これには、認証の詳細を含む、すべてのチャネルとイベントにおけるエンドユーザーのすべてのやり取りが含まれます。
- onConnectイベントメッセージなど、ボットが開始したコンバージョンセッションは、すべて非対話セッション;として記録されます。これらのセッションは、ユーザーメッセージが受信されるとすぐに対話セッションとして更新されます。非対話セッションは、請求セッションの計算には考慮されません。
- 開発者のやり取りも会話セッションとして含まれます。フラグはユーザーセッションと開発者セッションを区別し、これらの開発者セッションに対して請求セッションは作成されません。
注意:会話セッションに非対話型および開発者のやり取りが含まれるようになったのは、バージョン8.0からです。
セッションを管理
この機能は、プラットフォームのバージョン8.0でリリースされました。設定 > か環境設定のセッションを管理オプションを使用して、会話セッションの動作を定義することができます。 
- 休止状態後に主動的にセッションを閉じない – このオプションでは、ユーザーが15分以上の休止状態の後に戻ってきて新しいインテントを入力した場合にのみ、セッションを閉じます。このオプションは、プラットフォームのバージョン8.0がリリースされる前のデフォルトの動作でした。このオプションは、今後のリリースでは非推奨となります。
- 休止状態後に主動的にセッションを閉じる – このオプションは、定義された休止状態時間の経過後、セッションを閉じます。以下のパラメータを設定することができます。
- 休止状態持続期間 – デフォルトでは15分に設定されており、セッションを終了するタイミングを決定します。5~60分の任意の値を設定することができます。
- 終了前の動作 – ユーザーに通知せずにセッションを終了するか、メッセージを送信してセッションの終了をユーザーに通知するかを選択することができます。このメッセージは、応答の管理リンクを使用してカスタマイズすることができます。
導入
会話セッションはいつ開始されますか?会話セッションは、すべてのやり取りに対して作成されます。
- すべてのチャネルとイベントにおけるエンドユーザーとのすべてのやり取り – 会話セッションは、On_connectに対して作成されます(スクリプトの実行、メッセージの実行、ダイアログのトリガーのシナリオ)。これらの会話セッションには次の2つのカテゴリがあります。
- 対話セッションとは、ユーザーからの1つ以上のメッセージを含む会話を指します。
- 非対話セッションとは、ユーザーからのメッセージがない会話を指します。ボットが開始する会話セッションは、すべて「非対話型」として開始されます。これらのセッションは、ユーザーからのメッセージを受信するとすぐに対話セッションとして更新されます。非対話セッションは、請求セッションの計算には考慮されません。
- 開発者のやり取りも会話セッションの作成に考慮されますが、これらはユーザーセッションとは異なるものとして表示され、請求セッションの作成には考慮されません。
会話セッションはいつ終了しますか?
- 前述の「セッションを管理」オプションで設定された休止状態時間が経過すると、プラットフォームは休止中のセッションを積極的に閉じるようになります。
- 「破棄」の発話が検出された場合
- チャットウィンドウが更新された、つまり「refresh: true」が検出された場合
会話セッションが終了するとどうなりますか?
- セッション終了後、以下の情報または変数がクリアされます。
- 会話セッション
- ボットユーザーセッション(カスタムTTLのない開発者定義の変数)
- ダイアログコンテキスト(トピックファイルと会話の詳細)
- 設定済みの場合、会話セッションを閉じる前に、プラットフォームはサポートされているチャネルのユーザーにセッション終了のメッセージを積極的に送信します。
- 「refresh: true」の場合:
- 全セッション情報がクリアされます。
- 新しい会話セッションが作成されます。
- 「すべて破棄」の場合
- ダイアログコンテキストの現在のタグと過去のタグがクリアされます。
- センチメントトーンがリセットされます。
- 同じ会話セッションが継続されます。
- 「破棄」の場合
- 現在のダイアログコンテキストがクリアされます。
- 現在のタグは、過去のタグの中の最後に更新された「タグ」に置き換えられ、過去のタグはクリアされます。
会話セッションの開始と終了時にはどうなりますか?ユーザーがボットとやり取りを行うたびに、ユーザー、セッション、進行中のダイアログ/タスクに関する情報を保持するコンテキストオブジェクトが作成されます。これらの値はシステムによって維持されます。コンテキストオブジェクトの一部である変数は、次のように分類できます。
- セッションコンテキスト – 詳細はこちらを参照してください。
- グローバル – ユーザーが会話を開始するとすぐに作成され、セッションが終了するまで保持されます。
- ダイアログ – 特定のタスク(ダイアログ)用に作成され、ユーザーインテントに応じて変更されます。
- セッションコンテキスト – 詳細はこちらを参照してください。
- エンタープライズコンテキスト – 企業内のすべてのボットとすべてのユーザーが利用できる、システムで定義されたキーと値の組み合わせです。
- ボットコンテキスト – システムで定義されたキーと値の組み合わせで、この特定のボットのユーザー全員が利用できます。
- ユーザーコンテキスト – ユーザーがすべてのボットで利用できるシステム定義のキーと値の組み合わせです。
- ユーザーセッション – エンタープライズ内のすべてのボットが、この特定のユーザーに対して定義することができるキーと値の組み合わせです。
- ボットユーザーセッション – 特定のユーザーからの入力に基づいて、特定のボットに定義することができるキーと値の組み合わせです。
バーチャルアシスタントの耐用期間におけるさまざまなマイルストーンは、次のようにマークすることができます。
- セッション開始 – ユーザーがバーチャルアシスタントを開いたとき
- ダイアログ開始 – ユーザーインテントが特定されたとき
- セッション終了 – 次のような場合に発生します。
- 前述のように設定された休止中の動作に基づいてセッションが閉じられたとき
- ボットが次のいずれかによってセッションを閉じるように明示的な支持を受けたとき
- エンドユーザーがチャットウィンドウの「再接続」ボタンを使用
- BotKitからの「refresh=true」コマンドを使用
- ダイアログ終了 – 次の3つの方法によって発生します。
- ダイアログが正常に終了したとき
- ユーザーが明示的に「すべて破棄」または「やり直す」というコマンドを与えたとき
- ユーザーが明示的に「破棄」というコマンドを与えたとき
グローバルコンテキストはセッション開始時に作成され、ダイアログコンテキストはダイアログ開始時に作成されます。次の表は、さまざまなセッション終了とダイアログ終了のシナリオに対するコンテキスト動作の詳細です。
| コンテキストオブジェクト | パラメータ | セッション終了 | ダイアログ終了 | |
|---|---|---|---|---|
| すべて破棄/やり直す | ダイアログを終了/破棄 | |||
| グローバルコンテキスト | ccId | クリア | クリア | 破棄された場合に保持されるクリア |
| currentLanguage | 保持 | 保持 | 保持 | |
| suggestedLanguages | 保持 | 保持 | 保持 | |
| onHoldTasks | クリア | 保持 | 保持 | |
| dialog_tone | クリア | 保持 | 保持 | |
| currentTraits | クリア | クリア | クリア | |
| intentAmbiguityCount | クリア | クリア | クリア | |
| ユーザー入力 | 保持 | 保持 | ダイアログ終了の場合に保持されるクリア | |
| 履歴 | クリア | クリア | クリア | |
| message_tone | クリア | クリア | 保持 | |
| currentTags | 保持 | 保持 | 保持 | |
| smallTalk | クリア | 保持 | 保持 | |
| endOfTask | 達成/キャンセルされたタスクの詳細 | キャンセルされたタスクの詳細 | 達成/キャンセルされたタスクの詳細 | |
| historicTags | クリア *再接続および更新の場合に保持される | 保持 | 保持 | |
| 開発者 | クリア | 保持 | クリア | |
| updatedOn | クリア | 保持 | 保持 | |
| ダイアログコンテキスト | ボット | クリア | クリア | クリア |
| botid | クリア | クリア | クリア | |
| taskid | クリア | クリア | クリア | |
| 意図 | クリア | クリア | クリア | |
| intentType | クリア | クリア | クリア | |
| invocationSource | クリア | クリア | クリア | |
| エンティティ | クリア | クリア | クリア | |
| entityErrorCount | クリア | クリア | クリア | |
| amendEntities | クリア | クリア | クリア | |
| currentNodeId | クリア | クリア | クリア | |
| currentNodeName | クリア | クリア | クリア | |
| previousNodeId | クリア | クリア | クリア | |
| previousNodeName | クリア | クリア | クリア | |
| 同義語 | クリア | 保持 | 保持 | |
| followupIntents | クリア | クリア | 保持 | |
| セッションコンテキスト | エンタープライズコンテキスト | TTL*に基づいてクリア | 保持 | 保持 |
| ボットコンテキスト | TTL*に基づいてクリア | クリア | クリア | |
| ユーザーコンテキスト | TTL*に基づいてクリア | 保持 | 保持 | |
| ユーザーセッション | TTL*に基づいてクリア | 保持 | 保持 | |
| ボットユーザーセッション | デフォルト – クリア、カスタム – TTL*に基づいてクリア | 保持 | 保持 | |
*TTL – Time to Live
- ダイアログコンテキストオブジェクトの場合、プラットフォームによって6時間に設定されます。
- ボットコンテキスト、ボットコンテキスト、ユーザーコンテキスト、ユーザーセッション、ボットユーザーセッションについては、30分に設定されていますが、開発者によってカスタマイズすることができます。
