コンテキスト管理
効果的なコンテキスト管理が重要なのは、ボットがユーザーとより簡単に、より迅速に、より有用な方法で対話できるようになり、機械的、台本的ではなくなるからです。コンテキストデータはユーザーが早くタスクを完了するのを助け、より自然で人間味のあるやりとりを生み出します。 次の会話を例に見てみましょう。 ユーザー: クレジットカードの年会費はいくらですか? ボット: 初年度は無料で、それ以降は年間XXXドルです。 ユーザー: いいですね、早速申し込みます。 上記の会話では、「申し込む」が「クレジットカード」のコンテキストに存在しています。ここでボットがユーザーに対して、クレジットカードを申し込むのかデビットカードを申し込むのかを尋ねるのは不適切です。FAQの「クレジットカードの年会費」という前のインテントのコンテキストが、「カードを申し込む」というインテントに渡されなければなりません。 Kore.aiのボットプラットフォームでは、コンテキストデータをキャプチャしてさまざまなシナリオで再利用することで、より複雑なユースケースを作成したり、エンタープライズの顧客体験を再定義したりできます。そのようなシナリオをいくつかご紹介します。 インテント間やFAQ間でコンテキストを共有する: 上記のように、ダイアログタスクやFAQなどすべてのインテントのコンテキストを維持しておくと、ユーザーエクスペリエンスを簡単にカスタマイズできます。 コンテキスト重視のFAQ: 特定のインテント (タスクまたはFAQ) は他の特定のインテント (タスクまたはFAQ) がコンテキストに存在する場合にのみ、使用できるようにすることができます。 例: FAQのインテント「食事オプションにはどんなものがありますか」は、「フライトを予約する」タスクがコンテキスト内に存在する場合にのみ使用します。 フォローアップインテント: 現在のインテントのコンテキストは、ユーザーの発話内のそれに続くインテントの特定に使用できます。 例: ユーザーの前のインテントが「プラチナクレジットカードの特典はなんですか」であった場合、ユーザーの発話「手数料はいくらですか」に対してはFAQのインテント「プラチナクレジットカードの手数料はいくらですか」を使用して応答できます。 インテント間でエンティティ値を共有する: エンティティ値または会話フローは、前のインテントのコンテキスト情報を使用して導くことができます。 例: 「天気を調べる」インテント内の「都市名」エンティティは、ユーザーが「フライト状況を調べる」インテントを実行して「目的地の都市」エンティティの値が入力されている場合に、あらかじめ入力しておくことができます。 このドキュメントでは、Kore.aiボットプラットフォームにおけるコンテキスト管理の実装の背景にある概念について説明しています。詳しい手順を説明した例については、こちらを参照してください。 ユースケース例 ユーザー: 私のシンガポール行きのフライトはいつでしたか? ボット: ニューヨーク発、シンガポール行きの便が、6月20日で確定しています。 ユーザー: ビザは必要ですか? ボット: はい、ビジネスまたは観光目的でのシンガポールへの渡航にはビザが必要です。 ユーザー: それでは申請したいです。 ボット: 承知しました。シンガポールの渡航ビザの申請をお手伝いします。滞在期間を教えてください。 上記のような会話を実現するには、次のようなコンテキストオブジェクトを使用できます。 フライト予約の問い合わせが、目的地の都市のエンティティ値を発行 ビザに関するFAQは、予約問い合わせのインテントにより発行されたエンティティ値を使用 ビザの申請には、ビザに関するFAQから「ビザ」と「シンガポール」という用語を使用 上記のようなシナリオを実現するのに、こちらの記事が役立ちます。 実装 コンテキスト管理には、以下のような手順があります。 現在実行されているインテントを示すタグを定義する、出力コンテキスト…