Dialog スキルはもう使えないのか？

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/05d67ef0-04bb-7807-4afe-a9f39d4011e0.png)
従来から Watson Assistant を使用している方の場合は、New Watson Assistant の画面ではなく、従来通りの画面が表示されていると思います。
そのような場合、どうすれば New Watson Asistant の画面にアクセスできるのでしょうか？
方法は簡単です。画面上部をよく見ると、上の方に **Switch to new experience** と書かれた青いボタンがあります。
この青いボタンをクリックすると、New Watson Assistant の画面にスイッチできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/7fbc14e0-4afb-b84f-8497-94e4508de291.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/0269cc90-3be7-2e2e-3e4f-900669ae419f.png)
このような画面が表示されましたら、以前の記事[直感的に操作できる Actions で対話フローを作成してみる](https://qiita.com/yanagih/items/f98cff2b5b9ce3208fc4#%E6%97%A9%E9%80%9F%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%82%87%E3%81%86)を参照し、初期設定を実施してください。

無事、New Watson Assistant の画面が表示されたと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/3f62c47a-1ca4-e948-059b-ea68b32a5153.png)

# Dialog スキルが見当たらない 。。。

従来から Watson Assistant を使用している方の場合、思わず、Dialog スキルを探してしまうのではないでしょうか。
早速、メニューから探そうとしますが、なんと、Dialog スキルが見当たりません。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/1a07cd06-af49-024b-691d-748cd69fe5d3.png)


# Dialog スキルの有効化

ご安心ください。New Watson Assistant は Dialog スキルをサポートしています。
Actions がデフォルトのスキルとなったため、初期状態では、メニューから隠されています。
早速、有効化してみましょう。
**Assistant settings** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/c0c1b9ad-5928-db46-6353-0226a4bd91d8.png)
少し下の方にスクロールすると、**Activate dialog** がありますので、それをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/fd67de60-c140-a7a9-789a-6cc94b4fa64f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/b605aa94-8982-5174-b153-712078692804.png)
何やら、アイコンが 1 つ増えました。それに、**Dialog** と書いてあります:v:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/db4acfc6-2344-8714-e08b-e2fc5110b767.png)
なんとまぁ、見覚えのある画面です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/f4690838-b674-10cd-1c1d-3ec4fe2e941b.png)

# Dialog スキルのインポート

従来のWatson Assistant (以降、Classic Watson Assistant)で作成した Dialog スキルの内容を Download し、生成される JSON ファイルを New Watson Assistant 側でインポートすることが可能です。
それでは、一旦、Classic Watson Assistant に戻ります。
画面右上の人型アイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/82d7b15c-0063-7d6e-8f93-f9749acfdd53.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/7a61c7e7-84ea-7844-9cfb-e99998afb801.png)
戻る理由を聞いてきますので、「I'd still like to switch」 を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/e192db5a-52ad-f512-c33d-a97f4c466111.png)
適当な理由を選択してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/c9284ff3-f375-d59d-feb5-024f2270cecc.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/038d9b6d-2b55-936c-158f-38ccde71a22c.png)
無事戻ることができました。

Download を選択して、Dialog スキルを JSON 形式でダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/efcd011f-3625-ffe7-88fe-edc98810b841.png)
ダウンロードしたら、New Watson Assistant に戻り、Dialog の画面に移動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/b5101c70-5aa3-8174-8dfc-15e0c35ad240.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/1009d2cf-d5af-4ff1-7dde-c777999f1dc1.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/966c2fbc-ff96-3976-25e8-0580699344ec.png)
アップロードが成功したら、**Dialog** をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/9294cec4-fcd6-c105-2a6c-72d378d50d36.png)
Classic Watson Assistant で作成した対話フローがインポートできました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/8d1fc0dc-92fd-9848-7c98-c7f13131d004.png)

# Dialog を Activate した場合、Actions は反応しなくなる


ここで注意事項があります。
**Dialog** を有効化した場合、デフォルトの動作として Dialog に定義したノード (インテントとエンティティを含む) に従って対話が処理され、**Actions** に登録したアクションは反応しなくなります。

**Dialog** と **Actions** の両方を使用したい場合は、Dialog ノードの中で **Assistant responds** に**アクションを指定**する必要があります。

:::note info
ユーザーの入力内容を Dialog のノード(インテントやエンティティ)で引っ掛け、そのノードからアクションを呼び出すイメージです。
:::

最初に Dialog に設定されている割引条件の返答内容を見てみます。
「割引条件は」という質問に、「お持ち帰りの場合はピザの価格は半額になります。(Dialog)」という返事が返ってきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/6af8cebc-69c7-92cc-3a6b-ddca61841ef6.png)
続いて、割引条件ノードの **Assistant responds** に**アクションを指定**してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/fb25513b-b6cb-aacf-9d8d-e3046202b669.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/e5188ffe-079a-d09a-4dce-7bd594f19398.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/6caa9384-e774-f73e-2688-4b9776ec4c4c.png)
Assistant responds の Respond with に **$action_result_1** と入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/848202b3-59dc-f347-8945-ae1c6de4cb7d.png)

Try it out でテストしてみます。
**割引条件アクション**が呼ばれたようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/f17a9086-cb12-ec2b-dd1a-9f0a125af2d8.png)

Web Chat 画面で確認すると、アクションの方で定義した内容が返ってきていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52151/488f7c22-aabe-2700-8326-101de26c180b.png)


# いかがでしたでしょうか

New Watson Assistant でも Dialog の使用が可能ですし、Classic Watson Assistant で作成した Dialog スキルをエクスポートし、New Watson Assistant 側でインポートすることが可能です。

# 参考情報

## 公式オンライン・マニュアル: ダイアログのアクティブ化、およびスキルのマイグレーション

https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-activate-dialog

## 公式オンライン・マニュアル: ダイアログからアクションを呼び出す

https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-dialog-call-action