Slide 1

Slide 1 text

GAE/P環境でLINE BOTを作る たくみP 2017/05/17 http://www.shuukei.info/

Slide 2

Slide 2 text

自己紹介  たくみP  担当アイドル: 喜多日菜子  Twitter: @shuukei_imas_cg  もともとはモバマス-Pixiv集計所のための更新状況通知用 アカウントだった  @[email protected]  運営しているサイト・サービス http://www.shuukei.info/  モバマス-Pixiv集計所  シンデレラガールズ台詞判定  ミリオンライブ!台詞判定  喜多日菜子LINE BOT 2017/05/17 2

Slide 3

Slide 3 text

喜多日菜子 LINE BOTとは  LINEで「友だち登録」して1対1でチャットができる  @xqw2205g  いわゆるチャットボット(人工無能) 2017/05/17 3

Slide 4

Slide 4 text

LINEでBOTを作る手順  まず開発者自身のLINEアカウントが必要  管理者アカウントや2段階認証で頻繁に使う  LINE@(ラインアット)のアカウントを作る  店舗や企業、アーティストの公式アカウント的なもの  LINE@アカウントに対し、Messaging APIを有効化する  LINE Developersのページで設定を行う  Channel Secret, Access Token, Webhook URL等  Twitter APIを使うときの設定みたいなもの  設定したWebhook URLでHTTPSで待ち受けする プログラムを作る 2017/05/17 4

Slide 5

Slide 5 text

LINE@とは  店舗などの「公式アカウント」を提供するもの。複数 LINEアカウントで共同管理できる  一斉配信、1:1トーク、タイムライン機能など  LINE@だけでもキーワードに反応するだけのBOT的なも のが作れなくもない 2017/05/17 5

Slide 6

Slide 6 text

LINE Messaging APIとは  トークルームに送信されたメッセージはすべて Webhook URLにHTTPS POSTリクエストで送られる  JSON形式(公式ライブラリを使えば意識する必要なし)  匿名化されたuser idと、リプライのためのreplyTokenが 添付される  各種メディアも添付される(画像、音声、動画、位置…)  Reply message APIを使って返事を送る  上述のreplyTokenを使う。制限時間数十秒  PUSH message APIを使えば任意のタイミングでメッ セージを送信できる  PROプランかつPUSH API有効化が必要  ¥32,400/月 2017/05/17 6

Slide 7

Slide 7 text

GAE SE/PythonでBOTを作る  GAE SE(Google App Engine Standard Environment)  利点: 無料で28インスタンス時間/日まで使える、勝手に スケールする  欠点: 言語縛りがきつい(Python2.7系など)、独特の概念  手順  プロジェクトを作成する  プロジェクトIDをつける  https://(プロジェクトID). appspot.com でアクセスできる  SSL証明書は自動で提供される  適当なWebフレームワークで待ち受ける  受け取ったメッセージを元に返答を生成してReply message API(HTTPS POST)を投げればよい 2017/05/17 7

Slide 8

Slide 8 text

返答 生成 通信フロー(Reply message API) ユーザ LINEサーバ GAE a1.メッセージ送信 a2.HTTPS POST (Webhook URL) Task Queues a3.TQに突っ込む b1.TQからPUSH b2.HTTPS POST (Reply message API) b3.返答メッセージ送信

Slide 9

Slide 9 text

返答をいかに生成するか  キーワードマッチングで  芸能人・声優のLINE公式アカウントの類はこれが多いの で、ユーザ側もキーワード反応があればよし(自然な対話 は期待してない)としているところがある  対話行為タイプ推定+テンプレート  ユーザ発話の意図を機械学習で推定する  意図の例: 挨拶、情報提供、自己開示、質問…  ディープラーニングでEnd-to-End学習  大量の対話例から直接学習する  キャラクター性が重要な場合にはあんまり向かない 2017/05/17 9

Slide 10

Slide 10 text

費用  LINE  LINE@フリープランで無料  PUSH APIは使用しない  GAE  よほど「友だち」が多くなければ無料枠に収まる  その他  形態素解析器用のVMインスタンスが必要  既存の環境が流用できるなら無料 2017/05/17 10

Slide 11

Slide 11 text

まとめ  LINE Messaging APIは使いやすい  Java, PHP, Go, Perl, Ruby, Python, Node.js各言語対応の Bot SDKも完備  テキスト以外にも各種メディアや選択肢も送信できる  無料でもリプライだけなら事実上無制限に使える  API制限: 10000回/分 (とても緩い)  某短文SNSとは大違い  チャットボットは楽しい  アイドルのボットならなおさら 2017/05/17 11