ついに来ました。80年代HM/HR好きのオカマボットACOと会話ができる日が。
今日ご紹介するDialog(ダイアログ)は、これまで作成してきたIntent(インテント)やEntity(エンティティ)を駆使して会話の流れを作っていくものです。
わかりやすくするとシナリオを書いていくような感じです。
ただですね・・・。結構、機能がたくさんあったりします。
なので、まずは、おしゃべりできるところまで最低限の機能でやっちゃいます。
まずは、Dialogの基本のきほんからいきます。
ユーザーからの何かしらの入力に対してどういう反応を返すかを設定する箱「node(ノード)」
上の画像は、Dialogの画面です。実際には、最初にDialog画面を開くと、「ようこそ」と「その他」の箱のみが表示されています。この箱のことをnode(ノード)といって、ツリー形式にノードをつなげて会話の流れを作っていくわけです。
ノードをクリックすると設定画面が左からスライドして出てきます。
設定画面の一番上にノードの名前があって自由に編集できます。その下に、<If bot recognizes>というのがありますが、これはこのノードが発火するトリガーを何にするか、言い換えると、
どういう条件でこのノードを動作させるか
を登録します。
「ようこそノード」にはwelcomeが設定されていますが、これは初めからデフォルトで入っているもので、会話の始まりです。チャットボットにアクセスしたユーザーに最初に話しかける時に使います。
そのwelcomeが設定されているところの下に、<Then respond with>というのがありますが、これが、どういう動作をさせるかを設定するところです。
ここでは、「あら。いらっしゃい・・・」という挨拶を返すように登録するのですが、プルダウンで<Text>を選択することで、ユーザーにテキストで挨拶を返すことができるようになります。
もう一つ登録します。今度はユーザーから挨拶をしてきたら、どう返すかというのを設定します。
条件にインテントを設定することで会話ができるのだ
「ようこそノード」を選択した状態でAdd nodeボタンをクリックすると下に、新規ノードが作られます。名前は挨拶にしました。
さあここが、先ほどと違うところです。<If bot recognizes>のところに、#Greetingというのが入っていますが、これはインテントです。
「こんにちは」とか、「おはよう」とかユーザーが挨拶してくるときに使いそうな言葉をグルーピングして、Greetingインテントという箱に格納してあります。
インテントについての詳細は、
Watson AssistantでAIチャットボットを作ってみた(第2弾)をご覧ください。
このように条件にインテントを設定することで、ユーザーからのテキスト入力に対して回答をさせることができるようになります。
では回答はどうするかというと、先ほどと同じように<Then respond with>に挨拶に対する返しを設定します。
テキストで「あら礼儀正しいのね・・・」のような感じで、登録しました。
これで、この「挨拶ノード」は
条件(質問):ユーザーが挨拶した時(「こんにちは」「おはよう」など)
反応(回答):テキストで返答(「あら礼儀正しいのね・・・」)
という動作をするようになります。
テスト画面で会話が成り立つか試してみよう
右上のあたりに<Try it>というボタンがあるので、それをクリックするとテスト画面がスライドして出てきます。
最初にwelcomeノードに登録した挨拶が表示されました。
テスト画面の一番下に入力ボックスがあるので、
「こんにちは」と入力してみました。すると。
おー!
会話成立!
オカマボットから返答がきました!
ちゃんと、挨拶ノードで登録したテキストが返ってきましたよ。
今日は、最低限の設定で会話させるところまで紹介しました。
次回は、ちょっと応用編として、
・シナリオ形式の会話:
ユーザーに選択肢を与えて答えさせることで情報を絞り込んでいく時に使います。
・一つのノードの中での回答振り分け:
似たような質問をまとめることで管理しやすくします。
といったのを紹介しますね。
コメント