学習させることで、どんどん賢くなっていくLUISをbotサービスで活用するには認識系API活用入門(終)(1/3 ページ)

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

» 2017年08月22日 05時00分 公開
[岩本禎史株式会社クロスキャット]

※本稿は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サービスに接続して天気予報をユーザーに返す」処理を加えていきます。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。