Slide 1

Slide 1 text

弊社マスコットのマザーゆっくりと、 チャットボットのこれから OSC Hokkaido 2016 InfininteLoop - Masaru Yamagishi

Slide 2

Slide 2 text

自己紹介 名前 : 山岸 大(マサル) 年齢 : 0x19 趣味 : 言語 : 所属 : 2

Slide 3

Slide 3 text

https://www.infiniteloop.co.jp/blog/2016/04/laravel-5-1- lts-feature/ https://www.infiniteloop.co.jp/blog/2016/04/php7-0-all-rfc/ 3

Slide 4

Slide 4 text

4

Slide 5

Slide 5 text

所在地 : サッポロファクトリー1条館3階 設立 : 2007年6月(満9歳) 人員 : 140名前後(絶賛募集中!) 業務 : ソーシャルゲーム開発, Webアプリケーション開発 5

Slide 6

Slide 6 text

祝・仙台支社開設! https://www.infiniteloop.co.jp/blog/2016/05/sendai-office/ 6

Slide 7

Slide 7 text

7

Slide 8

Slide 8 text

仕事中の細かい連絡、 どうしてますか? 8

Slide 9

Slide 9 text

予定変更します 確認のお願い 雑談 日報 技術相談 リンク共有 レビューよろしく 帰りたい 議事録書いた 昼何食べる? アンケートお願い 会議の時間です 外出します 今日の予定は? デプロイします 9

Slide 10

Slide 10 text

めんどい 10

Slide 11

Slide 11 text

めんどい 11

Slide 12

Slide 12 text

見ない 12

Slide 13

Slide 13 text

チャット 13

Slide 14

Slide 14 text

これだ Thanks to . 14

Slide 15

Slide 15 text

チャットのいい所 1. 発言履歴 -> 後から見返せる 2. 場所を選ばない -> リモートワーク, 支社間交流, 外出時交流 3. 非同期 -> 都合の良い時に返信 4. 当人以外にも共有 -> 「秘密の仕様」が生まれない 15

Slide 16

Slide 16 text

チャットのいい所 1. 発言履歴 -> 後から見返せる 2. 場所を選ばない -> リモートワーク, 支社間交流, 外出時交流 3. 非同期 -> 都合の良い時に返信 4. 当人以外にも共有 -> 「秘密の仕様」が生まれない 16

Slide 17

Slide 17 text

逆に 17

Slide 18

Slide 18 text

チャットの苦手な所 1. 情報量が少ない -> 誤解が生まれる 2. 相手の心の内が読めない -> 誤解が生まれる 3. 時間を吸収される -> チャットは悪魔 18

Slide 19

Slide 19 text

チャットの苦手な所 1. 情報量が少ない -> 絵文字や画像を使って表現を増やそう 2. 相手の心の内が読めない -> 気にしない 3. 時間を吸収される -> 気をつける 19

Slide 20

Slide 20 text

チャットの長短を 理解すべし 20

Slide 21

Slide 21 text

21

Slide 22

Slide 22 text

× 22

Slide 23

Slide 23 text

23

Slide 24

Slide 24 text

- 報告・連絡・相談 - 雑談 - 技術共有 24

Slide 25

Slide 25 text

× 25

Slide 26

Slide 26 text

? 26

Slide 27

Slide 27 text

× 27 http://www.jp.playstation.com/software/title/pljm80054.html

Slide 28

Slide 28 text

「マザーゆっくり支配計画」 「マザーゆっくり支配計画」 28

Slide 29

Slide 29 text

「マザーゆっくり支配計画」 今はまだチャットボット...。 × 29

Slide 30

Slide 30 text

30

Slide 31

Slide 31 text

31

Slide 32

Slide 32 text

※1 : https://github.com/fujimoto/php-skype ※2 : https://github.com/gree/php-dbus PHPマザーゆっくり構成図 32

Slide 33

Slide 33 text

PHPマザーゆっくり構成図 ※1 : https://github.com/fujimoto/php-skype ※2 : https://github.com/gree/php-dbus 33

Slide 34

Slide 34 text

▶ hubot 34

Slide 35

Slide 35 text

hubotマザーゆっくり構成図 35

Slide 36

Slide 36 text

マザーゆっくり機能 36

Slide 37

Slide 37 text

マザーゆっくりの使われ方 基本的に全社共通で利用する機能を搭載 = プロジェクト単位の機能は別のBOTを併用 37

Slide 38

Slide 38 text

Webスクレイピング 38

Slide 39

Slide 39 text

Webスクレイピング Webページに見に行くのめんどい ↓ チャットは常に画面に出てるからそこに出ればいい ↓ BOT機能化 39

Slide 40

Slide 40 text

:tenki 40

Slide 41

Slide 41 text

:jr 41

Slide 42

Slide 42 text

:eiga 42

Slide 43

Slide 43 text

発声 43

Slide 44

Slide 44 text

ゆっくりはしゃべる 44

Slide 45

Slide 45 text

ゆっくりはしゃべる AquesTalk を利用して発声 - アラートの通知 - 予定の通知 - 朝の一言 - その他なんでもチャットを介して 45

Slide 46

Slide 46 text

https://www.infiniteloop.co.jp/blog/2013/02/yukkuritalk/ 46

Slide 47

Slide 47 text

ゆっくりがしゃべるまで 47

Slide 48

Slide 48 text

Google Apps 連携 48

Slide 49

Slide 49 text

Google Apps 連携 Google Apps 使ってる ↓ APIもあるし連携出来るだろう ↓ BOT機能化 49

Slide 50

Slide 50 text

:schedule その日一日の Google Calendar 内の予定を通知 朝9:30に社内連絡用の部屋に発言される 50

Slide 51

Slide 51 text

:lunch 51

Slide 52

Slide 52 text

:lunch 52

Slide 53

Slide 53 text

リマインダー 定時に発言して欲しい ↓ Google Spreadsheet に書いたら自動でゆっくりが発言してくれる機能をGASで 53

Slide 54

Slide 54 text

API化 54

Slide 55

Slide 55 text

チームBOT作るの面倒 チーム用の発言BOT作りたいけど、アカウントの用意とか面倒 ↓ マザーゆっくりが発言を代替してくれればいい ↓ 特定のHTTPエンドポイントにPOSTすると、それに合わせた窓・内容を発言してくれる 55

Slide 56

Slide 56 text

ゆっくりのAPI化 56

Slide 57

Slide 57 text

57

Slide 58

Slide 58 text

チームBOT 58

Slide 59

Slide 59 text

ChatOps (バズワード) 59

Slide 60

Slide 60 text

ChatOps? 開発・運用における共有されるべき操作(マージ・ビルド・デプロイ・通知・etc) をチャット上で完結させられるように、 BOTやインテグレーションを実装する開発・運用手法の1つ 60

Slide 61

Slide 61 text

ChatOpsの利点 - 操作のログが残る - 関係者全員に共有される - 共通インターフェースで操作出来る - 連携効果が生まれる 61

Slide 62

Slide 62 text

チームで使う外部サービス - バージョン管理(github, gitlab, subversion, …) - 資料作成(Google Spreadsheet, …) - 継続的インテグレーション(Jenkins, TravisCI, …) - デプロイ(Ansible, Docker, …) - アラート通知(Munin, NewRelic, …) 62

Slide 63

Slide 63 text

にBOTを 63

Slide 64

Slide 64 text

Integrate!! 64

Slide 65

Slide 65 text

連携効果 65

Slide 66

Slide 66 text

連携効果 - チーム共通インターフェース - 属人性の排除 => 全員見れて、全員操作出来る - 統一されたインターフェース - 一箇所での入力 => 全ての外部サービス - 全ての外部サービスの出力 => 一箇所のチャット 66

Slide 67

Slide 67 text

実例 67

Slide 68

Slide 68 text

68

Slide 69

Slide 69 text

BOTのつくりかた 69

Slide 70

Slide 70 text

1 2 3 70

Slide 71

Slide 71 text

hubot 71

Slide 72

Slide 72 text

https://github.com/github/hubot/ 72

Slide 73

Slide 73 text

hubotの構造 73

Slide 74

Slide 74 text

74

Slide 75

Slide 75 text

yo hubot 75

Slide 76

Slide 76 text

bin/hubot --adapter shell scripts/example.coffee を試しに利用する 76

Slide 77

Slide 77 text

アダプタの設定 hubotを利用したいチャットサービスのアダプタを探す(大体ある) - hubot-slack - hubot-chatwork - hubot-gitter2 - skype(後述) - ... 77

Slide 78

Slide 78 text

hubot-slack 78

Slide 79

Slide 79 text

SlackにBOTを登録 79

Slide 80

Slide 80 text

SlackにBOTを登録 80

Slide 81

Slide 81 text

SlackにBOTを登録 81

Slide 82

Slide 82 text

SlackにBOTを登録 82

Slide 83

Slide 83 text

Slack BOTを起動 83

Slide 84

Slide 84 text

@mybot ship it 84

Slide 85

Slide 85 text

スクリプトの追加 `scripts/example.coffee` を参考にやりたいことを scripts に追加していくだけ - HTTPサーバ化 - cron定期実行 - アダプタ以外のAPIを叩く - Webスクレイピング - etc node.jsで出来ることは何でも出来る 85

Slide 86

Slide 86 text

公式スクリプト 公式のスクリプトが100以上 https://github.com/hubot-scripts - trello - redif - auth - youtube - google-translate - github-repo-event-notifier - hearthstone - ... 86

Slide 87

Slide 87 text

非公式スクリプト 87

Slide 88

Slide 88 text

forever - hubot はフロントエンドプロセスで動く - デーモン化が必要 - `npm install --global forever` - `forever start bin/hubot --adapter shell` - バックエンドで動く・プロセス死亡時自動リスタート 88

Slide 89

Slide 89 text

heroku Platform as a Service(PaaS) である heroku にデプロイでも楽 89

Slide 90

Slide 90 text

90

Slide 91

Slide 91 text

チャット周辺環境の 変化 91

Slide 92

Slide 92 text

チャットサービス 高機能化 92

Slide 93

Slide 93 text

93

Slide 94

Slide 94 text

94

Slide 95

Slide 95 text

95

Slide 96

Slide 96 text

チャットサービス API 96

Slide 97

Slide 97 text

あれ... 97

Slide 98

Slide 98 text

API…? 98

Slide 99

Slide 99 text

99

Slide 100

Slide 100 text

100

Slide 101

Slide 101 text

ビジネス向けBOT 101

Slide 102

Slide 102 text

LINE BOT https://business.line.me/ja/products/4/introduction 102

Slide 103

Slide 103 text

Messenger platform https://developers.facebook.com/docs/messenger-platform 103

Slide 104

Slide 104 text

Microsoft Bot Framework https://dev.botframework.com/ 104

Slide 105

Slide 105 text

BOT for business 自然言語処理・機械学習との連携が注目されている - 会話感覚で注文出来るようになる - 個人に最適化したサジェスト 105

Slide 106

Slide 106 text

BOTのこれから 106

Slide 107

Slide 107 text

SNS BOT 107

Slide 108

Slide 108 text

SNS BOT - Twitter - Facebook - LINE - Instagram - … どこにでもBOTがいて、人間のアカウントと変わらずタイムラインに人格を持って住む 108

Slide 109

Slide 109 text

Business BOT 109

Slide 110

Slide 110 text

Business BOT - ChatOps - 業務効率化用自動作業 BOT - チャットルームの雰囲気作り - 一人の人間のように振る舞う - 通販購入のサポート - 「こういうのが欲しい」と BOTに言うと、サジェストしてくれる - リアルタイムサポートデスク - 質問を認識し答えてくれる 110

Slide 111

Slide 111 text

Personal BOT 111

Slide 112

Slide 112 text

Personal BOT 自分の端末に、自分の行動をサポートしてくれるヘルパーAI もういる(Siri, Cortana, OK Google) 他にIoS連携してみたり 112

Slide 113

Slide 113 text

113

Slide 114

Slide 114 text

まとめ - InfiniteLoop にはマザーゆっくりBOTがいて色々してくれる - BOT 利用シーンが急増している - LINE, Microsoft, Facebook も始めた - BOT は生活必需品 - 個人でも会社でも - 一人の「人間」のように振る舞う - 愛着が湧いてくる - 利用する人間によって特徴も変わっていく? - 元々「ROBOT」なので、ROBOTと共に進歩していく 114

Slide 115

Slide 115 text

社員募集中 現在インフィニットループでは、エンジニアを募集しています

Slide 116

Slide 116 text

社員募集中 現在インフィニットループでは、エンジニアを募集しています - PHPを用いたWebアプリケーション開発 - iPhone, Androidアプリケーション開発 - JavaScriptを用いたアプリケーション開発 - Linuxサーバ構築、保守 - ゲーム企画

Slide 117

Slide 117 text

exit(0);