Watson Assistant(旧Conversation)を触ってみた

IBM WatsonのWatson Assitant(旧Conversation)を触ってみたので、開始方法やデータの登録をメモとして残します。


Watson Assistantとは

チャットボットなどのユーザーとコンピュータが自然言語で対話可能なアプリケーションを簡単に開発するためのサービスです。(公式より参照

以前は、Conversationという名前だったのですが、最近?変わったようです。

もっと前は似たようなサービスでdialogというのもありましたが、Conversationに取って代わられたようです。


Watson Assitant サービス作成

アカウント登録やログインの方法は別記事にあります。


  1. ダッシュボード画面」の「リソースの作成」ボタンを押下します。
    手順1.png

  2. カタログ画面」へ遷移するので、左メニューの「AI(14)」リンクをクリックします。
    手順2.png

  3. カタログの「Watson Assistant(旧称 Conversation)」をクリックします。
    手順3.png

  4. Watson Assistant(旧称 Conversation)画面」へ遷移するので、「デプロイする地域、ロケーションの選択」は米国南部 を選択して右下の「作成」ボタンを押下します。
    手順4.png

  5. 少し待つと、Watson Assistantのサービスが作成され、「サービス画面」へ遷移されます。
    手順5.png

これでサービスの作成は完了です!!


データの登録


ワークスペースの作成


ワークスペースとは

エージェントといえばわかりやすいかもしれませんね。

人間でいう脳といえば良いでしょうか。学習していくには、言葉を覚えるには脳がないとなので、まずは脳を作ってあげる。

その作業がワークスペースの作成です。

1. 「サービス画面」の「ツールを起動」ボタンを押下します。手順6.png

2. 別タブでWatson Assistantツールが起動するので、起動後の画面の「Workspaces」タブをクリックします。手順7.png

3. 「Workspaces画面」の「Create」ボタンを押下します。手順8.png

4. モーダルウインドウが開くので、フォームの「Name」と「Description」には適当な文字列を入力、「Language」は Japanese を選択して「Create」ボタンを押下します。手順9.png

5. ワークスペースの作成に成功すると、作成したワークスペースのページへ遷移します。


インテントの作成


インテントとは

ユーザーの言葉から、それがどういった意図なのかを判断して返事をするための定義です。

例えば、「ありがとう」と言われたら「どういたしまして」と返す、「疲れた」と言われたら「大丈夫?無理しないで」と返すといったことを定義します。

言葉に表すのが難しいのですが、以下を見ていけば理解するはずです。

1. 「Intents画面」の「Add intent」ボタンを押下します。

手順10.png

2. 「インテント作成画面」へ遷移するので、「intent name」に #hello と入力して「Create intent」ボタンを押下します。手順11.png

3. インテントの作成に成功すると、同ページに「Add use examples」の項目が表示されるので、適当な言葉を入力して、「Add example」ボタンを押下します。

※参考画像では、「こんにちは・おはよう・おはようございます・やあ」の4つの例を追加しています。

追加したら、「」リンクをクリックして、インテントの作成を終了します。

同様に、「intent name」を #goodbye とするインテントを作成します。

手順12.png


会話の作成

会話の流れを作成します。例えば、

ユーザー:お腹すいた

Watson Assistant:お腹が空いたのですね?近くの飲食店を探しましょうか?
ユーザー:はい
Watson Assistant:一番近いお店はWatson餃子というお店になります。このお店までの経路を案内しましょうか?
ユーザー:はい
Watson Assistant:現在地からWatson餃子までの経路を案内します。

という会話があったとき、ユーザーははい と2回返事しているのに、Watson Assistantはそれがどういった意図を持っているかを判断して適切な返事をしています。

こういった自然な会話を行えるようにIntentEntity (今回は省略)を使って会話の流れを作成します。


  1. Workspaces画面」の「Dialog」タブをクリックします。手順15.png


  2. Dialog画面」へ遷移するので、「Create」ボタンを押下します。手順16.png


  3. Dialog作成画面」に遷移するので、「ようこそ」ノードをクリックして、編集ビューを開きます。手順17.png


  4. 編集ビューの「Then respond with:」を適当な言葉(参考画像では ようこそ、Watson Assistant チュートリアルへ!! としている)を入力して「×」ボタンを押下し、編集ビューを閉じます。手順18.png

    編集後、ページ上部の「Try it」ボタンを押下すると、Try it outビューに上記で入力した言葉が表示されます。手順19.png


  5. Dialog作成画面」で、「ようこそ」ノードの「詳細」アイコンをクリックして、「Add node below」を選択します。手順20.png


  6. 表示されたノード編集ビューで、「if bot recognizes.」には#hello を、「Then respond with:」には適当な言葉(参考画像ではよい一日を )を入力して「×」ボタンを押下します。手順21.png


  7. Dialog編集画面」で5と6で作成したノードの「詳細」アイコンをクリックし、「Add node below」を選択する。手順22.png


  8. 表示されたノード編集ビューで、「if bot recognizes.」には#General_Jokes を、「Then respond with:」には適当な言葉(参考画像では電話でのお問い合わせは○○○○-○○-○○○○へご連絡ください。 )を入力して「×」ボタンを押下します。手順23.png


  9. Dialog編集画面」で7と48で作成したノードの「詳細」アイコンをクリックし、「Add node below」を選択します。手順24.png


  10. 表示されたノード編集ビューで、「if bot recognizes.」には#goodbye を、「Then respond with:」には適当な言葉(参考画像ではまたお会いしましょう! )を入力して「×」ボタンを押下します。



まとめ

データの登録のところはチュートリアルを参考に書いているので、基本中の基本の内容です。

アプリを作るには、Entitycontextというのが肝になってきたりします。

Watson Assistantを使用したcar-chat-webというサンプルアプリケーションをつくったので、こちらをclone or downloadしてtmp以下にあるworkspace-******.jsonというワークスペースのデータをエクスポートしたファイルがあるので、ワークスペース画面からインポートしてdialogとかEntityを見てみてください。

少しでも参考になれば。