SlideShare a Scribd company logo
今こそ
2017/03/25
.NETラボ勉強会2017年3月
なかしょ(中島進也)
Microsoft Bot Framework
を学ぼう
Profile
名前:なかしょ(中島 進也)
Twitter:@nakasho_dev
ブログ:なかしょの技術日誌
http://nakasho-dev.hatenablog.jp/
最近の興味
➢Xamarin、Chatbot、IoT
主な参加コミュニティ
➢JXUG、.NETラボ、Cogbot
※本資料は私個人の意見であり、所属企業・部門見解を代表するもの
ではありません。
2
チャットボットについて
3
チャットボットとは?
4
人間の代わりにテキストまたは音声でコミュニケーションを自
動でおこなうプログラムである。
1960年代に開発されたELIZA(イライザ)が起源と言われてい
る。
チャットサービスのシェア(2017/1)
5
※statistaによる調査
https://www.statista.com/statistics/258749/most-popular-global-mobile-messenger-apps/
様々なチャットボットプラットフォーム
6
Microsoft Bot Framework
Facebook Messenger Platform
Slack Botkit
Amazon Lex
LINE Messaging API
WeChat public accounts
Hubot
NTT docomo Repl-AI
User Local 人工知能チャットボット
Oracle ChatBot Platform
Twitter Automated experiences
Octane AI
…
チャットボットへの期待(1/4)
7
三菱総合研究所・事業開発部門統括室副統括室長 比屋根一雄氏
➢ボットの魅力は
サービスの購入先がアプリストアからボットストアに移る可能性がある。フェイス
ブックやLINEの存在感が高まるだろう。音声対話によりユーザーも広がるし、家
電などの機器の使い勝手も高まる。ビジネスでも業務改善が期待できる
➢既存のサービスとの違いは
いつでもすぐに返事がくる。かつ普通に会話しているのと一緒の感覚で指示できる。
キーボード、マウス、タッチパネルとインターフェースが進化してきたが、音声対話
が次世代のインターフェースになる
➢技術的な課題は
AIの進化は必須。相手の意図を的確に先読みする機能はまだまだだ。あとは雑踏で
もしっかり声を聞き取る機器も求められる
➢日本の企業はボットとどう付き合うべきでしょうか
日本では音声よりテキスト対話が普及するのでは。日本ではスマートフォンに話しか
ける人が少ない。音声対話が文化として定着するには時間がかかる。それはそれで、
優秀なアプリケーションが開発できれば日本の企業もボットで勝者になれるだろう
日刊工業新聞2016年7月15日:http://newswitch.jp/p/5464
チャットボットへの期待(2/4)
8
野村総合研究所
➢今後5年間のチャットボット関連技術のロードマップ
➢2016~2018年度:
チャットボットのためのフレームワークやサービス、APIが登場
➢2019~2020年度:
関連サービスが多数登場、チャットプラットフォームとの融合が進む
➢2021年度以降:
チャットボット同士が連携し、「パーソナルエージェント」へと進化
2017年3月9日:新たな顧客接点としての活用が期待される「チャットボット」
https://www.nri.com/jp/news/2017/170309_1.aspx
チャットボットへの期待(3/4)
9
Facebook CEO マーク・ザッカーバーグ
➢人工知能と自然言語処理〔の発達〕と人力の補助により、ユーザーは
Messengerボットに友達に話しかけるのと同じように話かけることが
できる
➢企業やビジネスとのコミュニケーションのために、企業独自のアプリ
をそれぞれインストールしたいと思う人はいない
http://jp.techcrunch.com/2016/04/13/20160412agents-on-messenger/
https://blog.comnico.jp/we-love-social/chat-bot
チャットボットへの期待(4/4)
10
Microsoft CEO サティア・ナデラ
➢人間の言語は、最も強力なインターフェースだ。あらゆるコンピュー
タが人間の言語を理解したら、世界はどう変わるだろうか。私たちが
住んでいる世界を、大きく変えることができる
➢野心として狙��ているのは『テキスト入力を受け入れ、音声入力を受
け入れ、あなたを深く知っている。あなたの文脈、あなたの家族、あ
なたの仕事を知っていて、そして世界を知っている』ような知的アシ
スタントを作ることだ
http://jp.techcrunch.com/2016/09/27/20160926microsoft-ceo-satya-nadella-on-how-ai-will-transform-his-company/
http://businessnetwork.jp/Detail/tabid/65/artid/4574/Default.aspx
Microsoftによる知的アシスタントといえば
11
Microsoftによる知的アシスタントといえば
12
http://rinna.jp/http://www.msxiaoice.com/
シャオアイス りんな
@tayandyou
Tay Zo
マイクロソフトの AI のビジョン:長年の研究活動に根ざし、会話にフォーカス
https://news.microsoft.com/ja-jp/2016/12/14/161214-microsoft-ai-vision/
https://www.zo.ai/
AIの民主化
13
https://news.microsoft.com/ja-jp/2017/01/25/170125-ai-whats-next/
Microsoft Bot Framework
14https://blog.botframework.com/
15
https://github.com/Microsoft/botbuilder
Microsoft Bot Framework 関連図
16
Bot Connector
Bot State Service
Bot Server
Bot Builder
SDK
Bot DirectoryDeveloper Portal
Microsoft Bot Framework 関連図
17
Bot Connector
Bot State Service
Bot Server
Bot Builder
SDK
Bot Directory
Bot Connector
・各チャネルの仕様に合わせて適切に
データを変換してくれる
⇒ワンソースでマルチチャネルに対応
・「誰がどのBotに話しかけている
か」という状態を渡してくれる
Developer Portal
Microsoft Bot Framework 関連図
18
Bot Connector
Bot State Service
Bot Server
Bot Builder
SDK
Bot Directory
Bot State Service
・ユーザの状態を管理する。
Developer Portal
Microsoft Bot Framework 関連図
19
Bot Connector
Bot State Service
Bot Server
Bot Builder
SDK
Bot Directory
Bot Builder SDK(C#, node.js, REST API)
・Bot ConnectorとBot State Serviceと接続するイン
タフェースを提供する
・Cognitive Serviceと連携するインタフェースを提
供する
Developer Portal
20
シンプルなプロンプトやコマンドダイアログか
ら洗練されたフォームまで提供してくれる。
Skypeでは音声通話もサポートしている。
Carousel機能
21
Markdown機能
22
Codesample機能
23
Location機能
24
Channel Inspector
25
https://docs.botframework.com/en-us/channel-inspector/channels/Teams/
Channel Inspector
26
Skype
Web Chat
Email
Facebook
GroupMe
Kik
Microsoft Teams
Slack
Telegram
SMS
Buttons
Carousel
Channeldata
Codesample
DirectMessage
Document
Emoji
GroupChat
HeroCard
Images
List
Location
Markdown
Members
ReceiptCard
SigninCard
ThumbnailCard
Typing
Video
Channel Feature
27
・オフラインで動作確認や実際にサーバにデプ
ロイしたボットの動作を確認できる
Bot Framework Emulator
28
メッセージを選択すると、その際
に通信したJSONデータがDetails
(画面右上)に表示される。
オンラインデ
バッグ時には
Bot Serverの
AppIDと
Passwordが必
要
https://github.com/microsoft/botframework-emulator/wiki/Getting-Started
29
・ユーザが入力した自然言語の意図を理解したうえ
でどのアクションを実行すべきかの判断を
LUIS(Language Understanding Intelligent Service)
に委ねることができる。
※ただし、意図を理解するためにLUISを学習させる
必要がある。
LUISとの連携例
30
Bot Server
LUIS
天気情報サービス
品川の天気はどうですか?
①
品川の天気はどうですか?
②
Intent:天気検索
Entity:品川
品川
晴れ
品川は晴れです
④
SearchWeat
herが実行さ
れる
以下のようにLuisIntentアトリビュートを設定したメソッドを定義しておく
[LuisIntent(“天気検索")]
public async Task SearchWeather(IDialogContext context, LuisResult result)
テンプレートの適用
31
http://aka.ms/bf-bc-vstemplate
でダウンロードしたZIPファイルを
"%USERPROFILE%¥Documents¥Visual Studio 2017¥Templates¥ProjectTemplates¥Visual C#¥“
に配置する。
ASP.NET WebAPIプ
ロジェクトとして作
成される。
サンプルアプリ
32
https://github.com/Microsoft/BotBuilder/tree/master/CShar
p/Samples
➢具体的な機能を持ちボットとして動作するサンプル
➢AlarmBot、EchoBot、PizzaBot、AnnotatedSandwichBot
https://github.com/Microsoft/BotBuilder-
Samples/tree/master/CSharp
➢BotBuilderの機能ごとに焦点をあてたサンプル
➢cards-CarouselCards、core-MultiDialogs、intelligence-LUIS
33
・Botの登録
・各チャネルとの接続設定
・Webチャットでの確認
・Direct Line APIの設定
・診断ツール
Botの登録
34
https://dev.botframework.com/bots/new
生成したMicrosoft
App IDとPassword
をボットサーバ側に
登録する。
ボットサーバのエン
ドポイントURLを指
定する。
Botの管理
35
https://dev.botframework.com/bots
My botsを選択すると、
作成済みのBotが一覧
で表示される。
MyBotの管理・診断
36
ボットサーバのエン
ドポイントやAppID
を表示している。
ボットサーバとの通
信が正常か否か診断
する。
MyBotのチャネル管理
37
使用可能なチャネルの一覧
Skypeは設定不要で標準で
使用可能。
ボットを公開するまでは
TestLinkから使用する。
使用可能なチャネルを追加
する。
Addを選択することで詳細
な手順が表示されるので、
その手順に従えば簡単に設
定できる。
MyBotページからのWebチャット
38
Direct Line API について
39
Bot Connector Bot Server
Bot Builder
SDK
Direct Line API
Direct Line APIを使用することで Bot
Connectorが未対応のチャットプラット
フォームと接続したり、スマートフォンアプ
リと直接接続することが可能となる。
Direct Line API の実装例
40
https://github.com/kenakamu/line-bot-sdk-csharp
https://blogs.msdn.microsoft.com/kenakamu/2017/01/10/linebotwithcsharp/
line-bot-sdk-csharp
➢Line Messaging API SDK
➢Line Bot Application
➢Line With Bot Framework Application
Microsoft中村 憲一郎氏が作成したライブラリと
アプリケーション
Direct Line API の実装例
41https://blog.xamarin.com/add-yap-to-your-app-with-bot-framework/
「Add Yap to Your App with Bot
Framework」というタイトルで、
Xmarin.iOSでの実装例がある。
Xamarin Shopping Appというショッピ
ングアプリサンプルをBotで実装してみ
た例である。
Botmetrics adds support for the Bot Framework
42
https://blog.botframework.com/2016/10/11/botmetrics-guest-post/
今は
Node.jsの
み対応
43
・開発者によって登録
されたBotを公開する
ためのディレクトリ
・ストアと同じく公開
には審査が必要
・ユーザはWebチャッ
トにより試用可能
Bot Directory
44
https://bots.botframework.com/
開発者によって登録
されたボットを一覧
で表示している。
Bot Directory(Azure Bot)
45
https://bots.botframework.com/bot?id=azurebot
Botの概要を表示
Botがどのチャネルに
対応しているか表示
Botとつながるための
リンクを表示
Azure Bot Service Preview
46
https://azure.microsoft.com/ja-jp/services/bot-service/
Bot Framework を使用した
サーバ構成
47
Azure
サーバ構成例(全部Azure上で運用)
48
Bot Connector
Bot State Service
Bot Server
Bot Builder
SDK
Microsoft
Cognitive Services
オンプレミスAzure
サーバ構成例(Bot Serverをオンプレミスで運用)
49
Bot Connector
Bot State Service
Bot Server
Bot Builder
SDKMicrosoft
Cognitive Services
インターネット
他社AI
サービス
オンプレミスの注意点
50
Bot Framework は.NET Coreには対応していない
➢ASP.NET を動作させるにはWindows Serverが必要
➢導入先の意向でLinuxのみのサーバ環境ではASP.NETの動作環境がな
いこともある
GitHub上で.NET CoreへのPortingを対応中
➢[C#] Porting to .net core #572
➢https://github.com/Microsoft/BotBuilder/issues/572
.NET Core へのPortingが待てない人は...
51
monoという選択肢
以下の構成で動作が可能
➢Apache HTTP Server + mod_mono モジュール
➢XSP(Web Server)
➢mono
または、自分でPortingを実装してContributeしましょう。
https://github.com/mono/xsp
情報資産に関する注意点
52
Microsoft Bot FrameworkはBot Directory で公開することが前
提である。
➢特定組織のみで利用するプライベートBotの運用は現在認めていない。
➢公開前にプライベートで利用することもできるが、チャネルごとに利
用可能な人数が決まっている(らしい)。
➢プライベートBotについて要望があれば上げて欲しいとのこと。
Bot Connectorは会話情報を匿名化してサービス改善の目的の
ために使用する(かも)。
➢v1のFAQには記載されていたが、v3のFAQには記載されていない。
➢匿名化されるとはいえ会話情報を使用されるのであれば、Bot利用者の
セキュリティ方針によっては、守秘義務が含まれる情報をBotで扱えな
い。
Bot Framework 関連情報
53
日本語ドキュメント
54
SecretaryBot 開発チーム Blog
➢https://secretarybotja.wordpress.com/
BEACHSIDE BLOG
➢http://beachside.hatenablog.com/
Microsoft Bot Framework v3.0 からはじめる BOT 開発
➢http://qiita.com/annie/items/edc26c0ee9603e84a2e4
青い空の向こうへ
➢https://blogs.msdn.microsoft.com/bluesky/
日本語ドキュメント
55
Cogbot コミュニティ
➢https://cogbot.connpass.com/
Microsoft Cognitive Services & Bot Framework Advent
Calendar 2016
➢http://qiita.com/advent-calendar/2016/cogbot
チャットボット Advent Calendar 2016
➢http://qiita.com/advent-calendar/2016/chatbot
英語ドキュメント
56
Home Page | Blog | Bot Framework
➢https://blog.botframework.com/
DevOps for the Bot Framework
➢https://channel9.msdn.com/Series/DevOps-for-the-Bot-
Framework/
Microsoft/BotBuilder - Gitter
➢https://gitter.im/Microsoft/BotBuilder/
ご清聴ありがとうございました。
なかしょ(中島 進也)
@nakasho_dev
57

More Related Content

今こそ Microsft Bot Framework を学ぼう