Azure Bot Microsoft Bot Framework で簡単Bot開発 日本マイクロソフト アプリケーションソリューションアーキテクト 服部 佑樹
Azure BotMicrosoft Bot Framework で簡単Bot開発
日本マイクロソフト
アプリケーションソリューションアーキテクト
服部佑樹
Microsoft Bot Framework
Botアプリの開発フレームワーク
Bot アプリケーションをテンプレートから簡単に作成するための便利な
機能をまとめたフレームワークです。
独自の Web サイトやアプリケーション以外にも様々なプラットフォー
ムに対応しクロスプラットフォームの Bot 開発を容易にします。
2017/5/17 2
Bot ダッシュボード
開発のためのダッシュボードの提供
開発するアプリケーションの設定は Bot ダッシュボードか
ら変更可能です。ダッシュボードからは主に以下の操作が
行なえます。
コネクターの編集
Bot 登録、接続、公開、管理
Bot のテスト
2017/5/17 3
Bot FrameworkコンポーネントBot Frameworkは主に以下の3つのコンポーネントにより構成されます。
2017/5/17 4
Bot Directory
世界最大級のBot 公開ディレクトリ
Slack / Twitter / Messenger / SMS / Office 365 / Skypeなどに接続可能
Bot ダッシュボードでの管理
30 を超える言語への自動翻訳
ユーザーや状態の管理
テスト用ツール
GitHub で OSS として公開
適切な話し手になるためのライブラリとサンプル
チャットエミュレーター
Cognitive Services に含まれる関連サービスとの連携
Bot 登録の公開ディレクトリ
Web チャットコントロール経由で登録された Bot を利用可能
Bot の提供チャネルとして構成、検索も可能
Bot Builder SDKs
Node.js, C# によるダイアログ開発
Bot Connector
作成した Bot を各種サービスに接続
Bot Framework を利用した Bot 開発概要
2017/5/17 5
Bot Code Bot Connector Serviceメッセージのインプット←→アウトプット
状態のマネジメント
カンバセーションチャネル
………
Web Chat
Direct Line…
GroupMe
Kik
Skype
Slack
Telegram
Twilio (SMS)
Bot Builder SDK
コードの記述はコチラ
Azureのサービスとの連携
Cognitive ServicesMicrosoft の AI
SQL DatabaseAzure の PaaS DB
Web AppsAzureのPaaS Web
FunctionsAzure のサーバーレス
VM様々な OS が選べる VM
…
Bot Framework
Microsoft Azure
Bot Connector の仕組み
2017/5/17 6
作成した Bot の
Web サービス
Bot Builder SDK対応言語:C# / Node.js
ダイアログの構築
ダイアログは再利用可能
多数のノードで会話処理をスケールアウト可能
ダイアログの状態は Bot Connector で永続化可能
(ユーザーごと、セッションごと、ユーザーセッションごとに保存可能)
ダイアログの種類
組み込みプロンプト
Yes/No、文字列、数字、選択肢による応答
自然言語処理 (Cognitive Services の LUIS で実装)
補足機能(枝分かれ、あいまい除去、複数応答)
情報のプロファイル (住所など)
2017/5/17 7
Bot Directory
作成した Bot の公開ディレクトリ
検索、利用、登録が可能
各開発者が自由に Bot 公開を申請可能
Bot Directory に表示されるにはレビューと承認が必要
検索して目的のBot を探すことができます。
2017/5/17 8
開発概要
2017/5/17 9
Slackとの連携(作成時)
10
Bot Application
④ Slack でアプリケーションの作成Slack にアクセスしてアプリケーションの設定をします。 Slack でアプリの名前やリダイレクト URL の設
定 Slack の Bot ユーザーの作成 インタラクティブメッセージの設定
⑤ ID を発行アプリケーションを作成したら以下を生成します。Client ID / Client Secret / Verification Token
①ポータルで Bot アプリケーションの作成ポータルより Bot アプリケーションの作成をし、Bot Connector の設定をします。ポータルより作成する Bot をアプリとして定義し、以下を生成します。BotId / MicrosoftAppId / MicrosoftAppPassword
⑥ポータルで Slack の ID を登録ポータルより、⑤で発行した ID を登録します。
開発者が提供Microsoftが提供Slackが提供
②アプリケーションを作成Bot を C# / Node.js アプリケーションとして Web サーバーにホストされます。
③アプリに定義追加Bot に①で作成した ID とパスワードを定義します。
Step ①⑥ Step ②③Step ④⑤
2017/5/17
Slackとの連携(コミュニケーション)
2017/5/17
SlackUserBot
Connector
Bot
Application
Slack に投稿 Bot Connector に送る Bot Application に送る
エンドポイント
▶ slack.botframework.com
エンドポイント
▶ api.slack.com
エンドポイント
▶ your.app.url.com
Bot Connector に処理を返すSlack に処理を返すUser に処理を返す
Slackが管理 Microsoftが管理
Azure/オンプレに置くなど
多種多様な選択肢
自分で管理11
Slackの設定(Step④)
2017/5/17 12
Slack との連携の設定
Slack 上にアプリケーションを作成
アプリの基本設定とリダイレクト URLの設定
Slack Bot ユーザーの作成
インタラクティブメッセージの設定
(選択肢の機能を使う場合)
クレデンシャルを発行
BotFramework の注意事項権限付与の設定
Slack や Messenger などの特定ユーザーに対する権限付与/管理はアプリケーション側で設定する必要があります。
サブスクリプションやリソースグループごとに権限を変更したい場合はRBAC (Role Based Access Control) を用います。
LINEなど、サポート外プラットフォームへの対応
Direct Line APIを使って Bot Connector の部分を開発する必要があります。
2017/5/17 13
例:ChatOpsのコミュニケーションフロー
2017/5/17 14
なにをやりたいですか?
会話開始
回答をリセットDBの管理
フローを呼び出し仮想マシンの管理フローを呼び出し…
リソースグループを選んで下さい
質問に戻るDmmProdRGの情報を保持
DmmStagingRGの情報を保持…
仮想マシンを選んで下さい
質問に戻るAppVM1
の情報を保持DBVM1
の情報を保持…
このVMに対して処理を行いますか?
なんの処理を行いますか
DBの管理予想外の回答 VMの管理
DmmProdRG予想外の回答 DmmStagingRG
AppVM1の管理予想外の回答 DBVM1の管理
質問に戻る選択したAppVM1
の停止選択したAppVM1
の起動 …
回答をリセット
会話終了
VMの停止VMの起動 予想外の回答VMの停止
VMの起動オペレーションの
状況を通知
YES
NO
Bot開発によく使われるMicrosoftのAI
Cognitive Services
2017/5/17 15
Language Understanding Intelligent Service (LUIS)
自然言語を理解するための API
LUIS は自然言語をインプットとして、そ
の意図に応じたアウトプットを返します。
LUIS はインプットの意図を示す「インテ
ント」に紐付けるために必要な変数「エン
ティティ」を学習・認識します。
機械が理解できるよう構造化されたデータ
に変換します。
2017/5/17 16
INPUT- 電気をつけて- ライトをつけて- 電気で明るくして- ランプをつけて
Action
電気をつける
LUIS
▶自然言語の差を吸収
QnA Maker
既存コンテンツから FAQサービスを作成
QnA Maker は、FAQ URL、ドキュメント、本文の内
容などのユーザーが指定したコンテンツから、考えら
れるすべての質問と回答のペアを抽出します。
URLに貼り付けたり、表に記入するだけで簡単にボッ
トのダイアログを作成できます。
チームの誰もがボットの開発プロセスに参加すること
ができます。
2017/5/17 17
FAQコンテンツを▶
ダイアログに変換
本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、提示された
情報の信憑性については保証できません。
本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。
すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複
写、レコーディング、その他)、および目的であっても禁じられています。これらは著作権保護された権利を制限するものではありません。
Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商標、
著作権、またはその他の知的財産へのライセンスを与えるものではありません。
© 2017 Microsoft Corporation. All rights reserved.
Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における等力商標または商標です。
その他、記載されている会社名および製品名は、一般に各社の商標です。