検索
特集

LUISを使って頭の悪いLINE Botを作ってみよう!特集: 新たなアプリ「ボット」の時代(2/4 ページ)

LUIS(自然言語解析サービス)とロケスマWeb(お店発見Webサービス)とGoogle Geocoding APIを使って、ユーザーが探しているお店を教えてくれるLINE Botを作ってみよう!

Share
Tweet
LINE
Hatena

LUISへのアカウント登録とLUISアプリの作成

 LUISのアカウント登録とLUISアプリの作成については、前にも述べた「Dev Basics/Keyword LUIS」を参考にしてほしいが、簡単にまとめておこう。

  1. LUISの公式サイトでマイクロソフトアカウントを用いてサインアップ/サインインする
  2. [New App]ドロップダウンから新規にLUISアプリを作成する
  3. 左側のサイドバーにある[Intents][Entities]などを選択して、インテント(ユーザーがしたいこと)とエンティティ(インテントに関連する情報)を定義していく
  4. 例文(utterance)を入力し、そこに含まれるエンティティと、その例文が意味するインテントを指定していく
  5. [Train]ボタンをクリックして、LUISに学習をさせる
  6. [Publish]ボタンをクリックして、LUISアプリを公開する

 本稿では「Dev Basics/Keyword LUIS」でサンプルとして作成した、「findCategory」インテントと「Location」「Category」という2つのエンティティを持つLUISアプリをそのまま利用するものとする。つまり、ここで使用するLUISアプリは例文を受け取ると「ユーザーは何かのお店を探したいと考えているか否か」と、探している場合にはお店の「位置」と「種別」に関する情報を文章から抽出する(位置がなければ近隣のお店を探しているものとする)。

本稿で利用するLUISアプリの編集画面
本稿で利用するLUISアプリの編集画面

プロジェクトテンプレートのダウンロード/インストールとBotの作成

 C# SDKを利用してLINE Botを開発するには「Line Bot Application」プロジェクトテンプレートを利用するのが簡単だ(既にMicrosoft Bot Frameworkを利用してBotを作成しており、これをLINEと連携させる場合には「Line With Bot Framework Application」プロジェクトテンプレートを利用するとよい。ただし、今回はこちらは取り上げない)。

新規プロジェクトの開始と最初に必要な設定

 プロジェクトテンプレートを利用するには上記のページからダウンロードしたら、展開して、テンプレートディレクトリ(「%USERPROFILE%\Documents\Visual Studio 2015\Templates\ProjectTemplates\Visual C#」など)にファイルをまとめてコピーする。その後、Visual Studioでソリューションを新規に作成し、[新しいプロジェクト]ダイアログで[Line Bot Application]を選択する。

[Line Bot Application]プロジェクトテンプレートを選択
[Line Bot Application]プロジェクトテンプレートを選択

 ここではプロジェクト名を「LineBotWithLUIS」として、プロジェクトを開始した。プロジェクトが作成されたら、パッケージの復元をしておこう。もう1つやっておくべきは、先ほど入手したChannel SecretとChannel Access TokenをWeb.configファイルに埋め込んでおくことだ。

<configuration>
  <appSettings>
    <add key="ChannelSecret" value="ここにChannel Secretを入力" />
    <add key="ChannelToken" value="ここにChannel Access Tokenを入力" />
  </appSettings>
  …… 省略 ……

Web.configファイルでChannel SecretとChannel Access Tokenを設定

 この時点でソリューションエクスプローラでプロジェクトを右クリックして、コンテキストメニューから[公開]を選択し、一度AzureにBotアプリを展開しておく。[公開]を選択すると、Azureへ展開するために必要な設定を行うダイアログが表示されるので、適宜、必要な情報を入力していく。ここではWebアプリ名、リソースグループ、App Serviceプランなどを以下のように設定した。

[App Service の作成]画面
[App Service の作成]画面

 また、次の画面に表示される[宛先 URL](エンドポイント)がLINE側でBotへの接続を設定する際に必要になるので、これもメモしておこう。

[宛先 URL]を忘れずにメモしておく
[宛先 URL]を忘れずにメモしておく

 そして、LINE BUSINESS CENTERの[アカウントリスト]タブで[LINE Developers]ボタンをクリックして、[LINE Developers]画面(先ほど、Channel SecretやChannel Access Tokenを取得したページ)に移動して、画面最下部にある[Edit]ボタンをクリックし、表示される画面で[Webhook URL]に今メモをしたエンドポイントを入力する。ただし、プロトコルには「http」ではなく「https」を指定して、末尾に「/api/linemessages」を追加する必要がある。つまり、上の画面であれば「https://linebotwithluissample.azurewebsites.net/api/linemessages」のようになる。

[Webhook URL]の設定
[Webhook URL]の設定

 [SAVE]ボタンをクリックして、変更を保存したら、スマートデバイスで実行しているLINEからカメラ機能を立ち上げて、元のページに表示されているQRコードを取り込む。これにより、自分のLINEで作成したBotを友人として追加できる。

 プロジェクトテンプレートそのままのLINE Botは基本的にエコーを返すだけなので、以下ではLUISなどのサービスを利用して、もう少し役に立つBotにしてみよう。実際のコードを見る前に、このBotで行っていることをまとめておく。

Copyright© Digital Advantage Corp. All Rights Reserved.

ページトップに戻る