jazug tokyo-night bot-frameworkとかbotとか
TRANSCRIPT
Bot FrameworkとかBotとか
Jazug Tokyo Night October
Tsubasa Yoshino
本日のお話
• 今一度Botについて
• Botを使ったアプリケーションの話
• Bot Framework
• Cognitive Services(時間が余ったら)
自己紹介• 吉野 翼(ヨシノ ツバサ)
• @papemk2
• Microsoft MVP for Microsoft Azure
• C#、XAML、Azure、Band SDK
• 人形町で働いてます
Before
After
本題
Bot
Botで何を思い浮かべますか?
人工知能的なBot
• ちょっと(だいぶ)まだ早い
– ここらへんは大手企業が頑張ってくれる
– ビッグデータとかが必要
• 庶民はもうちょっと簡単な部分から
今のBot
• インターフェースが会話形式ライクなシステム
• 別に会話的やり取りをする必要はなし
– 会話的に操作するのは正直煩雑
煩雑な例• ご注文はなんですか
• 枚数はいくつですか
• サイドメニューは?
• いくつですか?
• etc
• ピザを
• 2枚
• スプライト
• 2つ
BotのUI
• あえて会話にこだわる必要はなし
• それぞれのシステムにあったUI
今のBotのシステム構成(概略)
チャットシステム
Bot Framework
思考部分
操作したいもの
Facebook MessengerSkypeiMessageslacketc
LUISAzure MLetc
操作したいAPI
チャットシステム
• 既存のメッセージアプリ
• 全てのユーザに共通のUI
• メッセージアプリ = プラットフォーム
Bot Framework
• チャットアプリへの入力を必要な場所にルーティングする役割
• ここでゴリゴリ実装することは少なそう
思考部分
• LUISやAzure MLなどのチャットへの入力を理解する部分
• 入力された言葉を理解して適切な動きのフラグを立てる部分
• 賢いBotを作る際に一番ゴリゴリ頑張るところ
APIとか
• チャットを経由して操作されるもの
• Homekit的なものとかが実用的?
• メルカリの事例が面白かった– http://mercan.mercari.com/entry/2016/1
0/18/120000
Botの現状
• 会話を理解して応答するシステムはまだ
• チャットシステムの拡張アプリ的側面が強い
– 全てのユーザに統一的なUIを提供可能
– 配布時にアプリのインストールが不要
シナリオ
シナリオ
• スマーフォンで電気を操作したい
• どうやろうかな?
シナリオ
• アプリを入れる?
• Botを使う?
シナリオ
アプリを使う• 専用に作られた考えられたUI
• 個別にアプリを複数入れる必要がある– 電気とカーテンとetc
• ホーム画面にアイコンが増えるのが嫌
• アプリで容量も食う
Botを使う• 使い慣れた統一されたUI
• 1メッセージ1操作
• 複雑な操作は難しい
• 端末の容量を食わない
• 新規にアプリを入れる必要なし
ここでBot Frameworkですよ
Bot Frameworkのおさらい
• MS製のBot構築用フレームワーク
• Githubで公開中のOSS
• ASP.NET WebAPIベースで簡単にBotの構築が可能
• LUISとの相性抜群
Bot Frameworkの概要• 実装言語
– C#(ASP.NET Web API)– Node.js– RESTを使えば何でも
• デプロイ先– 特に縛りなし(AWSでもオンプレでもOK)– Web Appsが一番楽
• ※ASP.NET Coreは非対応
Bot Frameworkの概要• 対応チャンネル
– Facebook Messenger– Skype– Group Me– Kik– Slack– Telegram– Twilio– Office365 E-mail
• ※TwilioはSMSのみ対応
Bot Frameworkの概要
• チャンネル設定は少々クセもの
• チャンネルは自作可能– アクセス用のREST APIが使用可能
• サイトにチャンネル埋め込みも可– iframe用の簡易チャンネルが使える
チャンネル設定の例
• Facebook1. Bot用Facebookページ作成2. Facebookアプリ作成3. アプリでメッセンジャー有効化4. アクセストークン生成5. Webhook設定6. BotとFacebookアプリの紐づけ7. 定期的にFacebookページへアクセス(アクセスしな
いとサービスが止まる)
Bot Frameworkの概略(旧)
Bot Frameworkの概略(新)
Bot Frameworkの三本柱
• Bot Builder
• Developer Portal
• Bot Directory
Bot Directory
• Botのマーケットプレイス
• 開発したBotを全世界向けに配信可能
• アプリストアのように審査有
• 結構審査は厳しそうな雰囲気
Developer Portal
• Bot管理用のWebポータル
• チャンネルとBotの紐づけ作業を行う
• 公開したBotの簡易テストも可能
– ここでテストすると確実なので必ずしよう
Bot Builder• OSSなBot開発用SDK
• シンプルなWeb APIモデル
• 頑張ればMonoでも動かせるかも?– ASP.NET WebAPIベースなのでもしかすると
• 公開時に使えるエンドポイントは一つ– Botに複数のエンドポイントは持たせられないっぽい
Bot Framework v1• Build 2016で発表
• 凄く簡単に会話Botが作れる
• 作ったBotをすぐ公開できる
• Githubで管理されておりOSS
• とてもv1.0のクオリティではなかった
レスポンス用エンドポイント
?
Bot Frameworkあるある• Botからのメッセージが返ってこない
– MS提供のメッセージサーバがバグってた
• 依存しているライブラリを最新にすると死ぬ
• 破壊的変更がめっちゃ入る– 常にリリースノートをチェックする必要有– Github追わないと辛い
• Etc…(バグが多い印象)
デモ
テスト
• テスト用クライアント(エミュレータ)有
• 常に最新版を使おう– SDKの破壊的変更が多くすぐに旧verが死ぬ
• Botのバグかと思ったらバージョン違いとかあるある
テストツール
• Windows版
– Bot Framework Emulator
• Mac or Linux(Bash on Windows)
– Command Line Emulator
– Mono実装
44
Bot Framework v3
• 2016年7月リリース
• 初の大型アップデート
• v1と完全非互換(エミュレータも)
実用的なBot
• Bot Framework = 会話の入出力部分
• 脳みその部分 = 別に実装が必要
• Cognitive Servicesと組み合わせると手軽
Cognitive Services• Vision API
• Speech API
• Language API
• Knowledge API
• Search API
• ※Botと組み合わせるといいよって言われてるAPI
Cognitive Services
• 基本無料
– 一か月に5000トランザクション~とか
• Azureのサブスクリプションを持ってると少し制限緩和
– 購入も可能(Azure経由)
デモ
LUIS
• 文章解析API
• 自分でテキストマッピングをして自分だけの解析器を作成できる– あらかじめある程度辞書は持ってる雰囲気
• 日本語も対応
まとめ
• 事例とかでだいぶBotもこなれた感じ
• 新しいアプリ配布の形になるかも
– メッセンジャーアプリでゲームとか
• まずは何か作って公開しよう
注意点
• 結構なラピッドリリース
• とても破壊的変更が多い
• バグも多い– System.IdentityModel.Tokens.Jwtを最新に
すると動かない(10/1現在)