検索
特集
認識系API活用入門(終):

学習させることで、どんどん賢くなっていくLUISをbotサービスで活用するには (1/3)

コグニティブサービスのAPIを用いて、「現在のコグニティブサービスでどのようなことができるのか」「どのようにして利用できるのか」「どの程度の精度なのか」を検証していく連載。最終回となる今回は、LUIS(Language Understanding Intelligent Service)とMicrosoft Bot Frameworkを組み合わせてbotサービスを作成します。

PC用表示 関連情報
Share
Tweet
g+
LINE
Hatena

※本稿は2017年7月6日の情報を基に作成しています。この記事内で使用している画面やコグニティブサービスの仕様は変更になっている場合があります。

 本連載「認識系API活用入門」では、MicrosoftのコグニティブサービスのAPIを用いて、「現在のコグニティブサービスでどのようなことができるのか」「どのようにして利用できるのか」「どの程度の精度なのか」を検証していきます。連載第1回の「Deep Learningの恩恵を手軽に活用できるコグニティブサービスとは」では、コグニティブサービスとは何かの概要とAPIを使うための準備の仕方を説明しました。

 前回は「LUIS(Language Understanding Intelligent Service)」の概要とLUISへアプリケーションを登録する方法、LUISに学習させる方法を紹介しました。最終回となる今回は、LUISとMicrosoft Bot Frameworkを組み合わせてbotサービスを作成します。

Microsoft Bot Frameworkを使う

 LUISの準備が終わったところで、ここから実際にLUISを呼び出すアプリケーションの作成に入ります。今回は天気予報botアプリケーションということで、Microsoft Bot Frameworkを使用します。

Microsoft Bot Frameworkとは

 Microsoft Bot Framework(以下、Bot Framework)は、Microsoftが提供するbotサービスのための仕組みです。Skype、Microsoft Teams、Facebook Messenger、Slackなどのサービスと接続して独自のチャットbotを提供できるようになります。

ダウンロード

 今回はC#でbotサービスを作成するためのプロジェクトテンプレートを使用するので、Bot Frameworkのサイトからプロジェクトテンプレートをダウンロードします。プロジェクトテンプレートは以下のサイトからダウンロードできます。

 「Visual Studio project templates」の下の「Bot template for Visual Studio for developing bots with C#」をクリックし、「Bot Application.zip」というZIPファイルをダウンロードします。


Bot Frameworkのプロジェクトテンプレートダウンロード画面

 ダウンロードが完了したら、このZIPファイルをZIPファイルのままの状態でVisual StudioのC#プロジェクトテンプレートのフォルダに置いてください。

 通常、Visual Studio 2015のC#プロジェクトテンプレートのフォルダは下記のようになっています。

C:\Users\[ユーザー名]\Documents\Visual Studio 2015\Templates\ProjectTemplates\Visual C#

Microsoft Bot Framework Emulatorのダウンロードとインストール

 「Bot Frameworkを使ったアプリケーションの作成中に動作確認を行いたい」というときに、わざわざSkypeなどの実際のサービスに接続させてテストするのは非常に面倒です。そんな作成中のテストのために実際のSkypeなどの代わりをしてくれるのがMicrosoft Bot Framework Emulator(以下、Bot Framework Emulator)です。

ダウンロード

 Bot Framework Emulatorは下記URLからダウンロードできます。


Bot Framework Emulatorのダウンロード

 この記事の執筆時点での最新バージョンは3.5.29となっていました。

インストール

 Download the Bot Framework Emulator下のリンクから「botframework-emulator-Setup-3.5.29.exe」というファイルがダウンロードできたら、実行してインストールします。


Bot Framework Emulatorのインストール

「Bot Application」プロジェクトの作成

 Visual Studioを起動し、新規プロジェクトを作成します。Visual Studio 2015では、C#のテンプレートの下に「Bot Application」が新たに追加されていますので、これを選択します。プロジェクト名は「LUIS_WeatherBotApp」としています。


新しいプロジェクトの作成

 今回はLUISの結果と天気予報の結果をJSON形式で受け取るので、JSONを取り扱えるようにするためライブラリを追加します。

 まず、メニューバーの「プロジェクト」から「NuGetパッケージの管理」をクリックします。「参照」をクリックし、検索のテキストボックスに「Json」と入力すると、「System.Runtime.Serialization.Json」が検索結果として表示されます。これを選択して、画面右側の「インストール」ボタンをクリックします。


System.Runtime.Serialization.Jsonのインストール

 変更の確認の画面が表示されたらOKボタンをクリックします。

 ライセンスへの同意の画面が表示されたら「同意する」をクリックします。

 続いて、先ほどインストールしたSystem.Runtime.Serialization.Jsonをプログラム内から使用できるようにするため、参照を追加します。メニューバーの「プロジェクト」から「参照の追加」をクリックします。

 フレームワークの中にある「System.Runtime.Serialization」にチェックを入れ、「OK」ボタンをクリックします。


System.Runtime.Serializationの追加

botのインタフェース部分の作成

 botアプリケーションのテンプレートを使用すると、インタフェースとなる部分の機能は既にCSファイルができている状態です。それがControllersフォルダの下の「MessagesController.cs」と、Dialogsフォルダの下の「RootDialog.cs」です。


プロジェクト作成後の構成

 実はこのテンプレートから作成しただけの何も手を加えていない状態のままでも、すでにbotサービスとして動かせます。試しに動かしてみましょう。

 プロジェクトを実行すると、ブラウザが立ち上がり、botサービスが起動したことが分かります。


プロジェクトを実行するとサービスが立ち上がる

 続いて、Bot Framework Emulatorを起動します。「Enter your endpoint URL」のところに起動したbotサービスのEndpoint URLを入力してbotサービスに接続します。

 上の例の場合、下記のようになります。

http://localhost:3979/api/messages

 正常に接続できていれば、画面右下のlogに下記のように表示されます。

POST 200 [conversationUpdate]


Bot Framework Emulatorでサービスに接続

 ここで、画面下の「Type your message…」のところに、何でもいいので入力してメッセージを送信してみてください。すると、botサービスからレスポンスが返ってきます。


何か入力すると、レスポンスが返ってくる

 このbotサービスのレスポンスの処理はRootDialog.csに記述されています。そのため、最終的にユーザーにレスポンスを返す部分はRootDialog.csになります。そして今回は、「LUISに受け取ったメッセージを渡して結果を受け取り、さらにそこから天気予報のWebサービスに接続して天気予報をユーザーに返す」処理を加えていきます。

       | 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

ページトップに戻る