トピック・チェンジに対応することで向上するユーザー体験

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/f01a89ac-6959-341b-d395-d3ce9b1eec6a.png)



# トピック・チェンジとは？

**トピック・チェンジ**という言葉を聞いたことがありますか？
初めて聞いたよ！という方がいらっしゃるかもしれません。
平たくいうと、いわゆる「話が脱線した」とか「話題が急に変わった」といった状況です。
日常会話では、よくありがちな**トピック・チェンジ**にバーチャル・アシスタントはちゃんと対応できるのでしょうか？
また、**トピック・チェンジ**に対応できると何か良い事でもあるのでしょうか？

# Watson Assistant ならトピック・チェンジに対応できます

#### トピック・チェンジに対応させる方法
実は、初期設定でトピック・チェンジが**有効化**されています。
一応、設定内容を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/2addad4a-f081-e873-fefc-345a9074894e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/60b301f3-1db0-b5f4-9835-3b7d048f9529.png)
デフォルトで有効化されていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/fb297edd-c128-3121-1232-6332fbe14945.png)

#### トピック・チェンジの動作確認

それでは早速確認してみましょう。
確認には、以前作成したアクションを使用します。
第 3 回目: [直感的に操作できる Actions で対話フローを作成してみる](https://qiita.com/yanagih/items/f98cff2b5b9ce3208fc4)
第 4 回目: [注文のキャンセル処理を追加する 〜セッション変数の使い方〜](https://qiita.com/yanagih/items/ea38bc109527a5127dc0)

:::note info
作成したアクションをエクスポートし、Githubにアップしました。
インポートすることですぐに試すことが可能です。
Githubへのリンク → [1st-actions](https://github.com/Watson-bx-04/1st-actions/blob/main/README.md)
インポート手順は[こちら](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-actions-global-settings#actions-global-settings-upload)を参照してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/58e9381d-40e3-7634-e6fa-4db98e463d74.png)

:::

やり方を忘れた方は、[こちらの記事](https://qiita.com/yanagih/items/f98cff2b5b9ce3208fc4#%E3%83%86%E3%82%B9%E3%83%88-1-%E6%B3%A8%E6%96%87%E3%81%AE%E5%AE%8C%E4%BA%86) を参照してください。

対話フロー上、想定していない「割引条件を教えて」と入力してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/922ac4e2-2c01-ff35-cba2-8da9ae2fc9e8.png)

想定外の質問にも、ちゃんと答えた後に、元の対話フローに戻っている様子がわかります。

#### トピック・チェンジが動作しない場合のユーザー体験

では、トピック・チェンジに対応していない場合を見てみます。
方法は簡単です。設定を Off にするだけです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/009743d7-0ba4-cc44-5b89-fad0123a42d4.png)

それでは早速試してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/eb2697ad-3f43-9a8f-2a27-dc3d34ccff82.png)

当たり前ですが、**ピザの注文アクション**では、[OK] もしくは [修正] を想定しているので、「割引条件を教えて」といった想定外の質問には答えられません。
(チャットボットと対話していて一番見たくない「分かりませんでした」が出てしまいました。。。)

ピザを注文する実際のシーンでは、これ以外にもユーザーはいろいろな質問をしてくる可能性があります。
そして、そのタイミングも不特定多数です。その不特定多数のタイミングをシナリオの中に組み込むのはとても困難ですが、Watson Assistant の**トピック・チェンジ**を使えば、想定外の質問にも答えられるバーチャル・アシスタントを簡単に構築できます。

:::note info
[紹介した](https://qiita.com/yanagih/private/947175fd124d3148dbce#%E3%83%88%E3%83%94%E3%83%83%E3%82%AF%E3%83%81%E3%82%A7%E3%83%B3%E3%82%B8%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%95%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95)トピック・チェンジの ON / OFF はバーチャル・アシスタント全体に関わる設定でしたが、実はアクション単位にトピック・チェンジを **OFF** に変更することが可能です。場合によっては、トピック・チェンジを許可したくないシナリオがあるかもしれません。その場合は、**対象のアクションにてトピック・チェンジを OFF** に変更してください。
手順については[こちら](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-change-topic)の最終行を参照ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/785f8088-4ac7-2c42-0921-9d90eb040473.png)

:::

# トピック・チェンジに関するデモ動画

トピック・チェンジへの対応ある・なしの様子を比較した動画デモを[こちら](https://video.ibm.com/recorded/131207556)にアップしてあります。

:::note warn
デモ動画では、トピック・チェンジを**脱線**と表現しています。
:::

全体で2分6秒と短い動画ではありますが、トピック・チェンジが発生する時間を書いておきますね。

1回目のトピック・チェンジ: 31秒〜
2回目のトピック・チェンジ: 1分6秒〜

特に、1回目のトピック・チェンジは検索エンジンとの連携パターンとなっています。
検索エンジンとの連携は、2022年12月15日の記事で取り上げる予定ですが、待ちきれない方は公式マニュアルの[Adding a search integration](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-search-add)をご参照ください。

# まさに WIN-WIN になれます

**トピック・チェンジ**に対応できれば、

* ユーザーは想定シナリオに縛られることはなく、たとえ話が脱線したとしても、ちゃんと元のトピックに戻れる
* 想定外の質問はトピック・チェンジに任せることで、待受処理は必要最小限に抑えることができ、対話フローの実装wシンプル化できる

等のメリットが受けられます。
これはユーザー側にとっても、開発者側にとっても、**WIN-WIN な機能**ですね。

# 参考情報

#### 公式オンラインマニュアル: Allowing to change the topic ...
https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-change-topic

#### 公式オンラインマニュアル: Adding a search integration
https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-search-add

#### 公式オンラインマニュアル: Global settings for actions
https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-actions-global-settings

#### IBM Video: イライラしない柔軟な対話
https://video.ibm.com/recorded/131207556