のんのんびりびりプログラマー

のんびりプログラム関係を書いています。また日々思った事を思った時に。

ChatBotのAI化に向けてLUISを使ってみる④

いよいよLUISをBotApplicationに追加してみます。

 

前のブログでLUISのアカウント作成、IntentsとEntitiesの登録、テストを書いています。

 

まだの方は下記を参考にしてください。

【LUISアカウント作成】

ChatBotのAI化に向けてLUISを使ってみる① - のんのんびりびりプログラマー

【IntensとEntitiesの登録】

ChatBotのAI化に向けてLUISを使ってみる② - のんのんびりびりプログラマー

【テスト】

ChatBotのAI化に向けてLUISを使ってみる③ - のんのんびりびりプログラマー

 

 

では公開してツールに移植していきます。

 

【Publish App】を選択して

【Endpoint Key】と【Endpoint slot】を選択して【Publish】をクリック

 

f:id:shiganaise:20170717022554p:plain

 

これでAPIが完成です。

赤枠【Endpoint url】にURLが出ます。

 

f:id:shiganaise:20170717022740p:plain

 

こんな感じでURLが出てきます。

この【q=】の後に文章を送るとJSON形式でIntentsとEntitiesが返却されます。

https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/XXXX&timezoneOffset=540&q=

 

アプリに入れる前にブラウザで試してみます。

【q=東京から新大阪まで新幹線で】

でやってみると下記が返って来ました。

 

{
  "query": "東京から新大阪まで新幹線で",
  "topScoringIntent": {
    "intent": "到着時間計測",
    "score": 1.0
  },
  "intents": [
    {
      "intent": "到着時間計測",
      "score": 1.0
    },
    {
      "intent": "None",
      "score": 0.0132731646
    }
  ],
  "entities": [
    {
      "entity": "新幹線",
      "type": "交通手段",
      "startIndex": 9,
      "endIndex": 11,
      "score": 0.9684145
    },
    {
      "entity": "新 大阪",
      "type": "到着点",
      "startIndex": 4,
      "endIndex": 6,
      "score": 0.346304983
    },
    {
      "entity": "東京",
      "type": "出発点",
      "startIndex": 0,
      "endIndex": 1,
      "score": 0.9234941
    }
  ]
}

想定通りのJSONで返ってきました。

ではVisualStudio2017に埋め込みましょう。

埋め込む場所はRootDialogのMessageReceivedAsyncメソッドの中です。
BotFrameworkを使っています。

LUISのURLはプロパティ値とします。
string.Formatをしやすいように"{0}"を付けておきます。

そしてMessageReceivedAsyncメソッド内で
画面から入力されたメッセージを取得して
string.Formatして"q="の後にくっつけます。

そしてWebClientのDownloadStringメソッドを使用します。
ここでひとつ注意ですが、
返却のJSONに日本語が含まれていると文字化けするので、
必ずEncodingしましょう。

取得したresponseをPostAsyncすれば画面に表示されます。

f:id:shiganaise:20170717145405p:plain

ではデバッグで試してみます。
デバッグしてエミュレータを起動して
【東京から大阪に飛行機で行く】
を入力して【Enter】を押します。

f:id:shiganaise:20170717145824p:plain

 

f:id:shiganaise:20170717145934p:plain

 

想定通りにJSONが取得できました。

裏での【response】はどうなっているかと言うと

 

f:id:shiganaise:20170717150121p:plain

 

こちらも正しく取得できています。

 

あとはJSONを加工したり、

どのIntentsの場合、どのEntitiesの場合はで

ロジックを変更するかです。

 

 

下記はVisualStudio2017でのBotFrameworkのインストールと使い方のリンクです。

*************************************************************************************************

【ダウンロード編】

Visual Studio2017でBot Frameworkをやってみる① - のんのんびりびりプログラマー

【ダウンロード編】

Visual Studio2017でBot Frameworkをやってみる② - のんのんびりびりプログラマー

【起動編】

Visual Studio2017でBot Frameworkをやってみる③ - のんのんびりびりプログラマー