見出し画像

アドベントカレンダー2023 #10 : Dialogflowのコンテキストの理解

Dialogflowにおけるコンテキストの活用

AIチャットボットの設計において、会話の文脈を「Agent」に理解させ、適切な応答(Intent)を引き出すための重要な概念としてコンテキスト(Context)が存在します。このコンテキストの概念を理解することにより、より自然な会話の流れを簡潔に表現することが可能になります。

AIチャットボットを設計

ここで、整理しておかなければならないことは、AIチャットボットを設計しているということ。普通のチャットボットではないです。「Intent」は、Chatに入力された内容(Phrase)に基づいて「Agent」が選ぶものであり、フローチャートのような厳格な遷移を設計するものではありません。
フローチャートのような明確な遷移を望む場合は、AIチャットボットではなく、選択肢に基づくインタラクションを提供するタイプのチャットボットが適しています。
AIチャットボットは、ユーザーの入力に基づいて動的に応答することが特徴なため、事前に定義された遷移に従うわけではなく、フローチャートのような固定された流れを設計するには限界があります。

「Context」は、今集中してほしい話題を表現するもの

Dialogflowでは文脈を、「Context」により「Agent」が選択する「Intent」の優先順位を制御することで表現します。それにより、「Agent」が会話の文脈を理解しているかのような振舞いを見せます。例を説明をします。

今回説明する「Intents」の概要

「挨拶」をし、「なにができるの?」という問いかけに、「販売実績の分析をしましょうか?」と提案型の回答をおこない、「はい」と言われたら「分析を実行」する。

想像している流れ

「Context」を設定した場合と設定していない場合の違い

「Context」の設定がない場合の問題点
Chatに入力された内容が「こんにちは」の場合、reporting-start Intentがマッチし、「こんにちは」と応答します。次に「なにができるの」という質問には、requirement Intentがマッチし、特定のサービスを提案する応答が行われます。
しかし、ユーザーが会話の流れを無視して、最初から「はい」と入力した場合、company-report Intentが起動します。文脈の概念がないため、会話が成立しないパターンが出てきます。

いつでも「はい」と言われると、分析をしてしまう・・・

「Context」を設定してみる
「販売実績の分析をしましょうか?」と話題を変化させた後に、「はい」と入力されるとcompany-report Intentが起動するようにします。この話題が、「Context」となります。

特定の話題「CONTEXT:REQUITEMENT」の時に分析をする設定

下の図の上側が開始直後の状態、「Context」が設定された「Intent」は、「Context」がアクティブにならなければ、発動しない振舞いを見せます。「Agent」が「Phrase」を見つけられない状態といった方がしっくりきます。
一方で、特定のレスポンス時に、話題(Context:REQUITEMENT)が設定されると、「Agent」が「company-report Intent」を見つけられるようになります。(下の図の下側)

おなじ「はい」でも、話題(Context)によって反応を変えられるようになる。

コンテキスト管理の重要性

このように、コンテキストを適切に管理することで、AIチャットボットはより自然な会話の流れを実現し、ユーザーがストレスなく目的の要求にたどり着くことができます。Dialogflowのコンテキスト管理機能を活用することで、AIチャットボットはより高度な会話能力を発揮することができます。

次回は、コンテキスト以外の会話の制御が行える「イベント」か、「今回のAIチャットの設計見直し」について記載します。

この記事が気に入ったらサポートをしてみませんか?