jazug tokyo-night bot-frameworkとかbotとか

52
Bot FrameworkとかBotとか Jazug Tokyo Night October Tsubasa Yoshino

Upload: tsubasa-yoshino

Post on 22-Jan-2018

63 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Jazug tokyo-night bot-frameworkとかbotとか

Bot FrameworkとかBotとか

Jazug Tokyo Night October

Tsubasa Yoshino

Page 2: Jazug tokyo-night bot-frameworkとかbotとか

本日のお話

• 今一度Botについて

• Botを使ったアプリケーションの話

• Bot Framework

• Cognitive Services(時間が余ったら)

Page 3: Jazug tokyo-night bot-frameworkとかbotとか

自己紹介• 吉野 翼(ヨシノ ツバサ)

• @papemk2

• Microsoft MVP for Microsoft Azure

• C#、XAML、Azure、Band SDK

• 人形町で働いてます

Page 4: Jazug tokyo-night bot-frameworkとかbotとか

Before

Page 5: Jazug tokyo-night bot-frameworkとかbotとか

After

Page 6: Jazug tokyo-night bot-frameworkとかbotとか

本題

Page 7: Jazug tokyo-night bot-frameworkとかbotとか

Bot

Page 8: Jazug tokyo-night bot-frameworkとかbotとか

Botで何を思い浮かべますか?

Page 9: Jazug tokyo-night bot-frameworkとかbotとか
Page 10: Jazug tokyo-night bot-frameworkとかbotとか
Page 11: Jazug tokyo-night bot-frameworkとかbotとか
Page 12: Jazug tokyo-night bot-frameworkとかbotとか

人工知能的なBot

• ちょっと(だいぶ)まだ早い

– ここらへんは大手企業が頑張ってくれる

– ビッグデータとかが必要

• 庶民はもうちょっと簡単な部分から

Page 13: Jazug tokyo-night bot-frameworkとかbotとか

今のBot

• インターフェースが会話形式ライクなシステム

• 別に会話的やり取りをする必要はなし

– 会話的に操作するのは正直煩雑

Page 14: Jazug tokyo-night bot-frameworkとかbotとか

煩雑な例• ご注文はなんですか

• 枚数はいくつですか

• サイドメニューは?

• いくつですか?

• etc

• ピザを

• 2枚

• スプライト

• 2つ

Page 15: Jazug tokyo-night bot-frameworkとかbotとか

BotのUI

• あえて会話にこだわる必要はなし

• それぞれのシステムにあったUI

Page 16: Jazug tokyo-night bot-frameworkとかbotとか

今のBotのシステム構成(概略)

チャットシステム

Bot Framework

思考部分

操作したいもの

Facebook MessengerSkypeiMessageslacketc

LUISAzure MLetc

操作したいAPI

Page 17: Jazug tokyo-night bot-frameworkとかbotとか

チャットシステム

• 既存のメッセージアプリ

• 全てのユーザに共通のUI

• メッセージアプリ = プラットフォーム

Page 18: Jazug tokyo-night bot-frameworkとかbotとか

Bot Framework

• チャットアプリへの入力を必要な場所にルーティングする役割

• ここでゴリゴリ実装することは少なそう

Page 19: Jazug tokyo-night bot-frameworkとかbotとか

思考部分

• LUISやAzure MLなどのチャットへの入力を理解する部分

• 入力された言葉を理解して適切な動きのフラグを立てる部分

• 賢いBotを作る際に一番ゴリゴリ頑張るところ

Page 20: Jazug tokyo-night bot-frameworkとかbotとか

APIとか

• チャットを経由して操作されるもの

• Homekit的なものとかが実用的?

• メルカリの事例が面白かった– http://mercan.mercari.com/entry/2016/1

0/18/120000

Page 21: Jazug tokyo-night bot-frameworkとかbotとか

Botの現状

• 会話を理解して応答するシステムはまだ

• チャットシステムの拡張アプリ的側面が強い

– 全てのユーザに統一的なUIを提供可能

– 配布時にアプリのインストールが不要

Page 22: Jazug tokyo-night bot-frameworkとかbotとか

シナリオ

Page 23: Jazug tokyo-night bot-frameworkとかbotとか

シナリオ

• スマーフォンで電気を操作したい

• どうやろうかな?

Page 24: Jazug tokyo-night bot-frameworkとかbotとか

シナリオ

• アプリを入れる?

• Botを使う?

Page 25: Jazug tokyo-night bot-frameworkとかbotとか

シナリオ

アプリを使う• 専用に作られた考えられたUI

• 個別にアプリを複数入れる必要がある– 電気とカーテンとetc

• ホーム画面にアイコンが増えるのが嫌

• アプリで容量も食う

Botを使う• 使い慣れた統一されたUI

• 1メッセージ1操作

• 複雑な操作は難しい

• 端末の容量を食わない

• 新規にアプリを入れる必要なし

Page 26: Jazug tokyo-night bot-frameworkとかbotとか

ここでBot Frameworkですよ

Page 27: Jazug tokyo-night bot-frameworkとかbotとか

Bot Frameworkのおさらい

• MS製のBot構築用フレームワーク

• Githubで公開中のOSS

• ASP.NET WebAPIベースで簡単にBotの構築が可能

• LUISとの相性抜群

Page 28: Jazug tokyo-night bot-frameworkとかbotとか

Bot Frameworkの概要• 実装言語

– C#(ASP.NET Web API)– Node.js– RESTを使えば何でも

• デプロイ先– 特に縛りなし(AWSでもオンプレでもOK)– Web Appsが一番楽

• ※ASP.NET Coreは非対応

Page 29: Jazug tokyo-night bot-frameworkとかbotとか

Bot Frameworkの概要• 対応チャンネル

– Facebook Messenger– Skype– Group Me– Kik– Slack– Telegram– Twilio– Office365 E-mail

• ※TwilioはSMSのみ対応

Page 30: Jazug tokyo-night bot-frameworkとかbotとか

Bot Frameworkの概要

• チャンネル設定は少々クセもの

• チャンネルは自作可能– アクセス用のREST APIが使用可能

• サイトにチャンネル埋め込みも可– iframe用の簡易チャンネルが使える

Page 31: Jazug tokyo-night bot-frameworkとかbotとか

チャンネル設定の例

• Facebook1. Bot用Facebookページ作成2. Facebookアプリ作成3. アプリでメッセンジャー有効化4. アクセストークン生成5. Webhook設定6. BotとFacebookアプリの紐づけ7. 定期的にFacebookページへアクセス(アクセスしな

いとサービスが止まる)

Page 32: Jazug tokyo-night bot-frameworkとかbotとか

Bot Frameworkの概略(旧)

Page 33: Jazug tokyo-night bot-frameworkとかbotとか

Bot Frameworkの概略(新)

Page 34: Jazug tokyo-night bot-frameworkとかbotとか

Bot Frameworkの三本柱

• Bot Builder

• Developer Portal

• Bot Directory

Page 35: Jazug tokyo-night bot-frameworkとかbotとか

Bot Directory

• Botのマーケットプレイス

• 開発したBotを全世界向けに配信可能

• アプリストアのように審査有

• 結構審査は厳しそうな雰囲気

Page 36: Jazug tokyo-night bot-frameworkとかbotとか

Developer Portal

• Bot管理用のWebポータル

• チャンネルとBotの紐づけ作業を行う

• 公開したBotの簡易テストも可能

– ここでテストすると確実なので必ずしよう

Page 37: Jazug tokyo-night bot-frameworkとかbotとか

Bot Builder• OSSなBot開発用SDK

• シンプルなWeb APIモデル

• 頑張ればMonoでも動かせるかも?– ASP.NET WebAPIベースなのでもしかすると

• 公開時に使えるエンドポイントは一つ– Botに複数のエンドポイントは持たせられないっぽい

Page 38: Jazug tokyo-night bot-frameworkとかbotとか

Bot Framework v1• Build 2016で発表

• 凄く簡単に会話Botが作れる

• 作ったBotをすぐ公開できる

• Githubで管理されておりOSS

• とてもv1.0のクオリティではなかった

Page 39: Jazug tokyo-night bot-frameworkとかbotとか
Page 40: Jazug tokyo-night bot-frameworkとかbotとか

レスポンス用エンドポイント

?

Page 41: Jazug tokyo-night bot-frameworkとかbotとか

Bot Frameworkあるある• Botからのメッセージが返ってこない

– MS提供のメッセージサーバがバグってた

• 依存しているライブラリを最新にすると死ぬ

• 破壊的変更がめっちゃ入る– 常にリリースノートをチェックする必要有– Github追わないと辛い

• Etc…(バグが多い印象)

Page 42: Jazug tokyo-night bot-frameworkとかbotとか

デモ

Page 43: Jazug tokyo-night bot-frameworkとかbotとか

テスト

• テスト用クライアント(エミュレータ)有

• 常に最新版を使おう– SDKの破壊的変更が多くすぐに旧verが死ぬ

• Botのバグかと思ったらバージョン違いとかあるある

Page 44: Jazug tokyo-night bot-frameworkとかbotとか

テストツール

• Windows版

– Bot Framework Emulator

• Mac or Linux(Bash on Windows)

– Command Line Emulator

– Mono実装

44

Page 45: Jazug tokyo-night bot-frameworkとかbotとか

Bot Framework v3

• 2016年7月リリース

• 初の大型アップデート

• v1と完全非互換(エミュレータも)

Page 46: Jazug tokyo-night bot-frameworkとかbotとか

実用的なBot

• Bot Framework = 会話の入出力部分

• 脳みその部分 = 別に実装が必要

• Cognitive Servicesと組み合わせると手軽

Page 47: Jazug tokyo-night bot-frameworkとかbotとか

Cognitive Services• Vision API

• Speech API

• Language API

• Knowledge API

• Search API

• ※Botと組み合わせるといいよって言われてるAPI

Page 48: Jazug tokyo-night bot-frameworkとかbotとか

Cognitive Services

• 基本無料

– 一か月に5000トランザクション~とか

• Azureのサブスクリプションを持ってると少し制限緩和

– 購入も可能(Azure経由)

Page 49: Jazug tokyo-night bot-frameworkとかbotとか

デモ

Page 50: Jazug tokyo-night bot-frameworkとかbotとか

LUIS

• 文章解析API

• 自分でテキストマッピングをして自分だけの解析器を作成できる– あらかじめある程度辞書は持ってる雰囲気

• 日本語も対応

Page 51: Jazug tokyo-night bot-frameworkとかbotとか

まとめ

• 事例とかでだいぶBotもこなれた感じ

• 新しいアプリ配布の形になるかも

– メッセンジャーアプリでゲームとか

• まずは何か作って公開しよう

Page 52: Jazug tokyo-night bot-frameworkとかbotとか

注意点

• 結構なラピッドリリース

• とても破壊的変更が多い

• バグも多い– System.IdentityModel.Tokens.Jwtを最新に

すると動かない(10/1現在)