Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GAE/P環境でLINE BOTを作る

GAE/P環境でLINE BOTを作る

「喜多日菜子LINE BOT」の中身のさわりの部分の解説です。
2次会で発表した資料です。

shuukei.imas_cg

May 17, 2017
Tweet

More Decks by shuukei.imas_cg

Other Decks in Programming

Transcript

  1. 自己紹介  たくみP  担当アイドル: 喜多日菜子  Twitter: @shuukei_imas_cg 

    もともとはモバマス-Pixiv集計所のための更新状況通知用 アカウントだった  @[email protected]  運営しているサイト・サービス http://www.shuukei.info/  モバマス-Pixiv集計所  シンデレラガールズ台詞判定  ミリオンライブ!台詞判定  喜多日菜子LINE BOT 2017/05/17 2
  2. 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
  3. 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
  4. 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
  5. 返答 生成 通信フロー(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.返答メッセージ送信
  6. 返答をいかに生成するか  キーワードマッチングで  芸能人・声優のLINE公式アカウントの類はこれが多いの で、ユーザ側もキーワード反応があればよし(自然な対話 は期待してない)としているところがある  対話行為タイプ推定+テンプレート 

    ユーザ発話の意図を機械学習で推定する  意図の例: 挨拶、情報提供、自己開示、質問…  ディープラーニングでEnd-to-End学習  大量の対話例から直接学習する  キャラクター性が重要な場合にはあんまり向かない 2017/05/17 9
  7. 費用  LINE  LINE@フリープランで無料  PUSH APIは使用しない  GAE

     よほど「友だち」が多くなければ無料枠に収まる  その他  形態素解析器用のVMインスタンスが必要  既存の環境が流用できるなら無料 2017/05/17 10
  8. まとめ  LINE Messaging APIは使いやすい  Java, PHP, Go, Perl,

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