SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2017】セッションレポート(AD)

“オラクルの社食で働くLINE Bot”はなぜ賢い返事ができるのか? 秘訣は「スキル」と「フロー」にあり【デブサミ2017】

【16-B-2】【実演&全員参加型】我が社のカフェで働いているLINE Botを皆で体験し、Botを大いに学ぼう。

  • このエントリーをはてなブックマークに追加

 日本オラクルでは2016年秋、東京・青山の本社ビルにカフェテリア(社員食堂)を新設。同社エバンジェリスト Oracle Cloud Developersの中嶋一樹氏は、そのカフェの利用者をサポートする役割を担うBotを開発した。LINEの「友だち」に登録することで会話できるようになる、いわゆるLINE Botで、ユーザーがその日のランチメニューやカロリーを聞くと教えてくれるというものだ。実際に社員の間で日々活用されているという。本セッションでは、参加者がそれぞれ自由に手元のスマートフォンでそのBotと会話して操作するという参加型のデモンストレーションを交えながら、Botが提供する各種機能について紹介。それを支えるアーキテクチャや開発メソッドについて解説した。

  • このエントリーをはてなブックマークに追加

日本オラクル株式会社 エバンジェリスト Oracle Cloud Developers 中嶋一樹氏
日本オラクル株式会社 エバンジェリスト Oracle Cloud Developers 中嶋一樹氏

LINE Botならユーザーは「新しい使い方」を覚える必要がない

 中嶋氏はLINEの画面をスクリーンに映し、Botのデモをスタート。まず「今日のメニューは何ですか?」とメッセージを送ると、Botは「Plate Aは『かつ重』、Plate Bは……」などと当日のメニューを答えてきた。次に「本日の献立を教えてください」と別の言葉で試しても、Botの答えは同様だ。メッセージの表現を変えても同じように適切な答えが返ってくるのは、Botが「意図」を読み取っているからだという。

 続けて「明日は?」と問いかけると、Botはきちんと翌日のメニューを返答。さらに「カロリーを教えてください」と送ると、「どのプレートですか?」と聞き返してきた。これらは「文脈を把握しているからこそ可能なこと」だと中嶋氏は説明する。つまり、Botは前の会話を文脈として覚えているので、「明日は?」だけでも「明日のメニュー」のことだと理解する。そのあとのカロリーについても「明日のメニューのカロリー」だと理解し、追加で確認すべき情報はプレートの種類だけ(いつのメニューかは不要)と判断しているのだ。

 このBotはメニューとカロリーを教えてくれるだけでなく、カフェにまつわるFAQの窓口としても機能している。例えば「カフェで外部のお客様を招いてセミナーを開催するには?」(※カフェは実際にセミナー用のスペースとして利用可)といった質問に対して、申請手順などをFAQから見つけて答えてくれる。FAQは聞かれる内容を予測しきれないため、メニューやカロリーに比べて実装が難しいのだが、中嶋氏はこの機能の将来的な可能性を重視しているという。それは、社内のさまざまなFAQをカバーする「社内ポータル」としての活用だ。

 「既存の社内ポータルは必要な情報が見つけにくいなど、使い勝手が悪いものが多い。面倒な社内申請手続きなどは、ポータルで探すよりも“長老”のような社員に聞いたほうが早かったりする。その役割は、人ではなくBotに集約したほうがよい」(中嶋氏)

 さらにもう1つの機能として、このBotはカフェの照明のコントロール(オン/オフ、照明色切り替え)というIoTの要素も取り入れている。中嶋氏は会場に小型のライトを持ち込み、この機能についても実演。「ライトの色を変えてください」→「何色にしますか?」→「青」→「了解しましたー」といったように、Botとの会話を通じて実際に照明をコントロールできる様子を紹介した。

 ひととおり機能を紹介すると、中嶋氏はこのBotをLINEの友だちに追加できるQRコードをスクリーンに投影。参加者はそれぞれ手元のスマートフォンでBotと会話しながら、照明色の変更などデモで紹介された機能をセッション終了まで自由に試していた。

 「友だちに追加するだけですぐに使える。この手軽さこそが、LINE Botの大きなメリット」と中嶋氏は強調。LINEならほとんどの人は自分のスマートフォンに入っており、使い方も知っている。Botの操作もLINE上で「会話」すればよいだけだ。ユーザーは何か新しい使い方を覚える必要もなく、導入障壁は限りなく低いといえるだろう。

 なお、このBot本体のプログラムはNode.jsで作成され、PaaSの「Oracle Application Container Cloud」上で稼働。API連携により、さまざまな外部サービスを利用している。例えば、ユーザーのメッセージから意図を解釈する自然言語解析エンジンには「api.ai」のサービスを利用。献立(メニュー)データのデータベースは、ExcelなどあらゆるデータをAPI化できる「Oracle Database Cloud」。FAQの機能は、AIを搭載するFAQのSaaS「Oracle Service Cloud」を使っている。そして、IoT対応照明器具の「Hue」を連携サービスの「IFTTT」を介してBotからクラウド経由でコントロールできるようしているという。

自然言語解析の「api.ai」、FAQサービスの「Oracle Service Cloud」など、さまざまな外部サービスと連携して“カフェで働くBot”の機能を実現
自然言語解析の「api.ai」、FAQサービスの「Oracle Service Cloud」など、さまざまな外部サービスと連携して
“カフェで働くBot”の機能を実現

 この構成が示すように、Bot開発においては「すでにあるものは作らずに、それを使うこと」が重要だと中嶋氏は指摘。

 「単体ですべての機能を満たすのは不可能で、いろいろな外部サービスからベストなものを選択してプラグインを追加していく。そのためには、マイクロサービスアーキテクチャが必須。『まずSaaS、なければPaaS』と、できるだけ上のレイヤーから使える外部サービスがないか検討し、自分が作る範囲を狭めていくべき」

次のページ
柔軟にBotの機能を拡張できるように5つのフローを定義

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブサミ2017】セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10045 2017/04/03 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング