azure bot!! microsoft bot framework で簡単bot開発

18
Azure Bot Microsoft Bot Framework で簡単Bot開発 日本マイクロソフト アプリケーションソリューションアーキテクト 服部 佑樹

Upload: yuki-hattori

Post on 28-Jan-2018

1.169 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

Azure BotMicrosoft Bot Framework で簡単Bot開発

日本マイクロソフト

アプリケーションソリューションアーキテクト

服部佑樹

Page 2: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

Microsoft Bot Framework

Botアプリの開発フレームワーク

Bot アプリケーションをテンプレートから簡単に作成するための便利な

機能をまとめたフレームワークです。

独自の Web サイトやアプリケーション以外にも様々なプラットフォー

ムに対応しクロスプラットフォームの Bot 開発を容易にします。

2017/5/17 2

Page 3: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

Bot ダッシュボード

開発のためのダッシュボードの提供

開発するアプリケーションの設定は Bot ダッシュボードか

ら変更可能です。ダッシュボードからは主に以下の操作が

行なえます。

コネクターの編集

Bot 登録、接続、公開、管理

Bot のテスト

2017/5/17 3

Page 4: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

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 を各種サービスに接続

Page 5: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

Bot Framework を利用した Bot 開発概要

2017/5/17 5

Bot Code Bot Connector Serviceメッセージのインプット←→アウトプット

状態のマネジメント

カンバセーションチャネル

………

Web Chat

Direct Line…

Email

Facebook

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

Page 6: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

Bot Connector の仕組み

2017/5/17 6

作成した Bot の

Web サービス

Page 7: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

Bot Builder SDK対応言語:C# / Node.js

ダイアログの構築

ダイアログは再利用可能

多数のノードで会話処理をスケールアウト可能

ダイアログの状態は Bot Connector で永続化可能

(ユーザーごと、セッションごと、ユーザーセッションごとに保存可能)

ダイアログの種類

組み込みプロンプト

Yes/No、文字列、数字、選択肢による応答

自然言語処理 (Cognitive Services の LUIS で実装)

補足機能(枝分かれ、あいまい除去、複数応答)

情報のプロファイル (住所など)

2017/5/17 7

Page 8: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

Bot Directory

作成した Bot の公開ディレクトリ

検索、利用、登録が可能

各開発者が自由に Bot 公開を申請可能

Bot Directory に表示されるにはレビューと承認が必要

検索して目的のBot を探すことができます。

2017/5/17 8

Page 9: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

開発概要

2017/5/17 9

Page 10: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

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

Page 11: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

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

Page 12: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

Slackの設定(Step④)

2017/5/17 12

Slack との連携の設定

Slack 上にアプリケーションを作成

アプリの基本設定とリダイレクト URLの設定

Slack Bot ユーザーの作成

インタラクティブメッセージの設定

(選択肢の機能を使う場合)

クレデンシャルを発行

Page 13: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

BotFramework の注意事項権限付与の設定

Slack や Messenger などの特定ユーザーに対する権限付与/管理はアプリケーション側で設定する必要があります。

サブスクリプションやリソースグループごとに権限を変更したい場合はRBAC (Role Based Access Control) を用います。

LINEなど、サポート外プラットフォームへの対応

Direct Line APIを使って Bot Connector の部分を開発する必要があります。

2017/5/17 13

Page 14: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

例: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

Page 15: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

Bot開発によく使われるMicrosoftのAI

Cognitive Services

2017/5/17 15

Page 16: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

Language Understanding Intelligent Service (LUIS)

自然言語を理解するための API

LUIS は自然言語をインプットとして、そ

の意図に応じたアウトプットを返します。

LUIS はインプットの意図を示す「インテ

ント」に紐付けるために必要な変数「エン

ティティ」を学習・認識します。

機械が理解できるよう構造化されたデータ

に変換します。

2017/5/17 16

INPUT- 電気をつけて- ライトをつけて- 電気で明るくして- ランプをつけて

Action

電気をつける

LUIS

▶自然言語の差を吸収

Page 17: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

QnA Maker

既存コンテンツから FAQサービスを作成

QnA Maker は、FAQ URL、ドキュメント、本文の内

容などのユーザーが指定したコンテンツから、考えら

れるすべての質問と回答のペアを抽出します。

URLに貼り付けたり、表に記入するだけで簡単にボッ

トのダイアログを作成できます。

チームの誰もがボットの開発プロセスに参加すること

ができます。

2017/5/17 17

FAQコンテンツを▶

ダイアログに変換

Page 18: Azure Bot!! Microsoft Bot Framework で簡単Bot開発

本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、提示された

情報の信憑性については保証できません。

本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。

すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複

写、レコーディング、その他)、および目的であっても禁じられています。これらは著作権保護された権利を制限するものではありません。

Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商標、

著作権、またはその他の知的財産へのライセンスを与えるものではありません。

© 2017 Microsoft Corporation. All rights reserved.

Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における等力商標または商標です。

その他、記載されている会社名および製品名は、一般に各社の商標です。