Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Bot Builder V4 SDK + QnA Maker / LUIS

345 views

Published on

Cogbot 勉強会 #16 (2018年8月28日開催) セッション資料
Bot Builder V4 SDK + QnA Maker / LUIS の説明

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Bot Builder V4 SDK + QnA Maker / LUIS

  1. 1. Cogbot勉強会!#16 2018年8月28日 瀬尾佳隆 (@seosoft) Microsoft MVP for AI Bot Builder V4 SDK + QnA Maker / LUIS
  2. 2. 自己紹介 ◼瀬尾佳隆 (せおよしたか) • MVP for AI • https://yseosoft.wordpress.com/ • 坂道 と仏像 / 屏風絵が好き ◼最近のお仕事は “AI” っぽいもの ・・・が続いている感じ 2
  3. 3. デモアプリのソースコード https://github.com/seosoft/Cogbot16_2 01808 中身に興味がある方は ご覧ください 3
  4. 4. 今日の内容 ◼Bot Builder V4 SDK (復習) ◼AI Bot 用 NuGet パッケージ ◼QnA Bot ◼LUIS Bot 4 QnA Maker, LUIS を利用する AI Bot の開発はとても簡単
  5. 5. 今日の内容 ◼Bot Builder V4 SDK (復習) ◼AI Bot 用 NuGet パッケージ ◼QnA Bot ◼LUIS Bot 5
  6. 6. .NET Core 2.1 https://www.microsoft.com/net/download/d otnet-core/2.1 6 QnA Maker / LUIS の NuGet パッケージを 使わない Bot なら、 .NET Core 2.0 でも OK
  7. 7. Bot Buider V4 SDK https://marketplace.visualstudio.com/items? itemName=BotBuilder.botbuilderv4 7
  8. 8. Bot Framework Emulator 8 https://github.com/Microsoft/BotFramework -Emulator
  9. 9. プロジェクトテンプレート (VS 2017) 9
  10. 10. Startup.cs ◼ConfigureServices メソッドがポイント • Bot クラスと State クラスを指定するのが、ここ 10
  11. 11. Conversation State ◼v3 の UserData • 型付きのプロパティを持てるようになった • Dictionary<string, object> を継承することをお勧め 11 今日は使いません・・・
  12. 12. IBot 12 ◼メッセージ処理が IDialog ではなくなった • OnTurn メソッドで処理を受ける • UserDataは、型付きの ConversationState に • SendActivity メソッドでメッセージ送信
  13. 13. 今日の内容 ◼Bot Builder V4 SDK (復習) ◼AI Bot 用 NuGet パッケージ ◼QnA Bot ◼LUIS Bot 13
  14. 14. ターゲットフレームワークを変更 14
  15. 15. 期間限定の注意 15 Microsoft.AspNetCore.All のバージョンは 2.1.2 を指定すること (2018年8月時点)
  16. 16. QnA / LUIS 無しのパッケージ一覧 16 パッケージは 5個
  17. 17. 今日の内容 ◼Bot Builder V4 SDK (復習) ◼AI Bot 用 NuGet パッケージ ◼QnA Bot ◼LUIS Bot 17
  18. 18. QnA Maker 用パッケージ 18 “ai qna” で検索するとよい
  19. 19. QnA Bot の準備完了 19パッケージは 6個
  20. 20. QnA Maker パッケージの特徴 ◼シンプルな QnA Bot ならば非常に簡単 ◼ただし、適合解を “勝手に” 応答してしまう挙動 ◼プロパティ設定で多少は応答をカスタマイズできる • REST 呼び出しにする手もある 20
  21. 21. appsettings.json 21
  22. 22. Startup.cs 22
  23. 23. Bot.cs (シンプルな例) 23 これだけで 適合解を返す 適合解が 見つからなかった場合
  24. 24. Bot.cs (柔軟な例 - 1/2) 24 しきい値と 回答の個数を指定
  25. 25. Bot.cs (柔軟な例 - 2/2) 25 回答の カスタマイズ
  26. 26. 今日の内容 ◼Bot Builder V4 SDK (復習) ◼AI Bot 用 NuGet パッケージ ◼QnA Bot ◼LUIS Bot 26
  27. 27. LUIS 用パッケージ 27 “ai luis” で検索するとよい
  28. 28. LUIS Bot の準備完了 28パッケージは 6個
  29. 29. LUIS 用パッケージの特徴 ◼Intent とそのスコアの取得は簡単 ◼Entity のパースが少し面倒かも ◼複数の Intent があるとコードが長くなる • 回避策(一案)は、このあとで紹介 29
  30. 30. appsettings.json 30
  31. 31. Startup.cs 31
  32. 32. Bot.cs (シンプルな例) 32 Intent と スコアだけなら簡単
  33. 33. Bot.cs (柔軟な例 - 1/2) 33
  34. 34. Bot.cs (柔軟な例 - 2/2) 34 Intent が増えると コード肥大化 Entity のパース
  35. 35. Bot.cs (コード整理 - 1/2) 35 Intent ごとの Delegate を作成
  36. 36. Bot.cs (コード整理 - 2/2) 36 Intent ごとに 処理を分ける
  37. 37. まとめ ◼AI Bot の開発はとても簡単 • NuGet パッケージのバージョンには注意 • Startup.cs の記述はパターンで覚えて OK • QnA パッケージ、LUIS パッケージを使えば AI Bot 開発もラクラク • ただし ”勝手に応答してしまう” など、柔軟さに欠ける場合もある 37
  38. 38. 参考) REST 版 QnA Bot QnA Maker で NuGet パッケージを利用しない方法 38
  39. 39. Bot.cs 39
  40. 40. QnaResponse.cs 40 REST 呼び出しの応答をデシリアライズするクラス

×