前のステップ では、Bot アプリケーションの最も基本的なものとして、オウム返し Bot を作成しました。
続いて、この Bot アプリケーションにヘルプメッセージを返す機能を追加してみます。
応答するメッセージはシンプルなものですが、Bot アプリケーションを拡張する重要な操作です。
1. あいさつメッセージの追加
2. ヘルプ ダイアログの追加
3. ヘルプ ダイアログへの切り替え
4. Web Chat で動作確認
前のステップ で Greeting トリガー(ユーザーが対話を開始した時に呼び出される)の応答メッセージを定義しました。
応答メッセージは常に固定である必要はなく、複数個をランダムに応答させることができます。
挨拶メッセージをひとつ追加して、ランダムで応答するようにします。
-
異なるあいさつメッセージが帰ってくることを Web Chat で確認します。
[Start Bot] または [Restart Bot] をクリックして、Bot を起動します。
[Restart Conversation - new user ID] を何度かクリックして、ランダムで挨拶メッセージが変わることを確認します。
Bot にヘルプメッセージを応答する機能を追加します。
まず ヘルプ ダイアログを Bot に追加 します。
ダイアログは一般的には、他から独立した一連の対話を定義するために使用します。
ここでの手順は一つのメッセージを応答するだけなので、必ずしもダイアログにする必要はありません。またハンズオンで扱っている Bot は簡単な機能なのでヘルプは不要なはずです。今回はダイアログの定義と呼び出し方とを理解するために、ダイアログを使ってヘルプメッセージを応答します。
-
一番上の [MyQnaBot] の [...] をクリックして [Add a dialog] を選択します。
一番上の MyQnABot は プロジェクト、2行目の MyQnABot は ダイアログ と言います。
ユーザーの入力は最初に "MyQnaBot" ダイアログが受け取ります。
ヘルプメッセージを表示するには、メインからヘルプ ダイアログへの コンテキスト切り替え が必要です。
以下では 正規表現 (Regular expression) を
-
"MyQnaBot" ダイアログ (2行目の MyQnABot) を選択して、Property の [Recognizer Type] で "Regular expression recognizer" を選択します。
今までは Intent(=意図、ユーザーが Bot に何をさせようとしているのか)を分類するルールを持っていませんでした。
この手順で正規表現でユーザー入力の意図を分類するようになります。
-
[Create a trigger] ダイアログが開いたら、以下を入力・選択をします。
項目名 値 トリガーの種類 Intent recognized トリガー名 ここでは "Help" 正規表現のパターン (?i)(?:help|ヘルプ|使い方)
以上でヘルプメッセージの追加が終わりました。
Web Chat で動作を見てみます。
-
[Start Bot] または [Restart Bot] をクリックします。
-
Bot が起動したら Web Chat を開きます。
-
以下を参考に入力して、Bot が期待した応答を返すことを確認します。
入力 応答 (※対話開始時) "こんにちは、Q&A Bot です" または "ようこそ、Q&A Bot へ" help Azure についての質問に答えます Help Azure についての質問に答えます HELP Azure についての質問に答えます ヘルプ Azure についての質問に答えます 使い方 Azure についての質問に答えます 任意の入力 「(入力した内容)」と言いましたね
ヘルプのように Intent の分類が比較的簡単なルールの場合には、[Recognizer Type] を "Regular Expression" にすることができます。
ユーザーにもっと自由な入力を認める場合は Default recognizer で分類する必要があります。 Default recognizer を選択すると、Composer は自然言語処理のエンジンとして Language Understanding (= LUIS) を利用します。
この後のステップで取り上げる方法で QnA Maker と連携する 場合にも Recognizer Type を Default recognizer に変更して Language Understanding を利用する必要があります。
Language Understanding については次のステップで取り上げます。
以上で、正規表現を利用してユーザー入力の意図を理解するようになりました。
次のステップでは Language Understanding を利用して、より柔軟で強力な方法でユーザーの意図を予測するように変更します。







