応募トーク

これは応募されたトークです。聞きたいと思うトークをSNSで拡散しましょう。選考時に参考にさせていただきます。

talk

Pythonで作るサーバーレスなメッセンジャーボット その設計やアーキテクチャ(ja)

スピーカー

Mitsuki Ogasahara

対象レベル:

中級

カテゴリ:

Web Frameworks

説明

2016年春にFacebookやLINEでのメッセンジャーボット(会話bot)向けのAPIが開放され、流行の兆しを見せています。このトークでは、ただ雑談をするようなボットではなく、ユーザーに価値提供できる“実用的”なメッセンジャーボットを開発したいWebエンジニアをメインターゲットに、スケーラブルなボットをサーバーレスに作る方法や、破綻しない設計のボットを開発方法、会話型UIの課題を解決する機械学習の活用法を紹介します。

目的

実践的なメッセンジャーボットの、実用的な作り方を紹介します。メッセンジャーボットの技術的な仕組みやアンチパターンから始まり、サーバーレスなボットを作るためのアーキテクチャと、ボットの機能を増やしていっても破綻しないような設計の紹介をします。

概要

2016年春に、FacebookとLINEという(特に日本での)ユーザー数の多いメッセンジャーアプリが、メッセンジャーボット(会話ボット、チャットボットなど;以下、メッセンジャーボット)を作るためのAPIを一部開放し、話題になりました。 メッセンジャーボット用のAPIを使って、例えば「りんな」のようなAI型の会話ボットや、Chat Opsのようなことが実現できます。これは、ただ会話を楽しんだり、エンジニアが効率化に使って来た事例です。それだけでなく、会話を通じて飛行機のチケットを購入したり、ニュースを聞いたり、天気を教えてもらったり、そういったことを全てのスマホユーザーが自然に行えるようなメッセンジャーボットを作ることもできます。このようなメッセンジャーボットを「**会話というUIを通じて、ユーザーが何らかのタスクを実現するもの**」と分類し、このトークではその実践的な作り方を紹介します。 メッセンジャーボットの技術的な仕組みは至ってシンプルです。「特定のフォーマットのPOSTリクエストをAPIから受け取り、特定のフォーマットのPOSTリクエストをAPIに送り返す」というだけで、**今までのWeb技術と大して変わりません**。 しかし実際に作ってみると、今までのWebサービスとは違った障壁があります。一回のリクエスト中に複数のメッセージが含まれていたり、Model-View-Controllerな設計での開発が難しく感じたりします。他にも、「会話型UI」特有の自然言語処理・機械学習の活用や、FacebookやLINEなど複数種類のAPIに返すための共通化もしなければなりません。 そこで、このトークでは以下の3点を共有します。 1. AWS Lambdaを使ったサーバーレスなボットを構築することで解決する方法 2. 今までのWebサービスと比較して、どのような設計にしていくか 3. 「会話型UI」の問題を解決するための機械学習の活用 また、このようなメッセンジャーボットの問題を解決するために[bottoku](https://github.com/yamitzky/bottoku)という薄いフレームワークを作りました。フレームワークの紹介もしますが、なるべくフレームワークに依存しない、普遍的な知識の共有をする予定です。
  • このエントリーをはてなブックマークに追加