SHOEISHA iD

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

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

イベントレポート(AD)

AIプラットフォーム「Salesforce Einstein」も登場! Heroku×Salesforceで自動応答のLINE Botを実現する

Salesforce World Tour Tokyo 2017レポート

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

 2017年9月26日、27日の両日にわたり、「Salesforce World Tour Tokyo 2017」が開催された。27日に東京プリンスホテルで実施された開発者および管理者のための「Trailblazer Zone」では、最新技術やソリューションに関心を寄せる来場者により盛況を呈した。本稿では、「HerokuとSalesforceでChatbotを実現!!」と題し、LINE、Heroku、Salesforceを使ったLINE Chatbotの実現方法や、注目のSalesforce Einsteinを使った分析機能などを紹介したセッションの内容をレポートする。

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

LINE、Heroku、Salesforceを利用したChatbotのアーキテクチャ

 最初に、SalesforceやHerokuを活用しモバイルアプリやWebサービスの開発を行っている株式会社タンバリンの白石尚也氏が登壇。同社で開発した、携帯料金を教えてくれるLINE Botを題材に、デモを交えながらChatbotの技術について概説した。

株式会社タンバリン ソリューションアーキテクト 白石尚也氏
株式会社タンバリン ソリューションアーキテクト 白石尚也氏

 多くの企業がLINE Botを活用したコンシューマ向けサービスを展開しており、ヤマト運輸やドミノ・ピザジャパンがビジネスで目覚ましい成果を上げていることから、LINEというプラットフォームの高い浸透度がわかる。同社がLINEを採用したのも、より多くのユーザに使ってもらいたいからだ。

 同社のLINE Botは、友達登録をしたユーザが質問をテキスト入力すると、Herokuで文章解析を行い、Salesforce上の顧客情報やナレッジ情報を活用して応答を返す。応答内容はSalesforceに蓄積し、Chatbotをさらに育成することが可能だ。Chatbotでは対応しきれない場合は、SalesforceのLive Agent機能を使い、オペレータによる有人チャットに切り替えることができる。

Salesforceの顧客情報と連携し、携帯料金や通信料を通知するLINE Bot
Salesforceの顧客情報と連携し、携帯料金や通信料を通知するLINE Bot

 LINE Chatbotは、LINE、Heroku、Salesforceを利用している。LINEではMessaging API、LINE Loginを使い、HerokuのWeb DynoがLINE側からのHTTPリクエストを捌く。一般的なLINE Botと違い、Salesforce上のナレッジ、Bot応答、Bot応答不可、Bot辞書などのデータベースを活用して応答を返す点が特徴的と言える。HerokuではHeroku Connectを使ってこれらのデータベースと相互に接続している。

LINE Chatbotのアーキテクチャ
LINE Chatbotのアーキテクチャ

Chatbotに活用できるSalesforce、Herokuの技術

 続いて、株式会社タンバリン 安部草麻生氏が、Chatbotでどのような技術を使い、実装しているかを解説した。

株式会社タンバリン Webエンジニア 安部草麻生氏
株式会社タンバリン Webエンジニア 安部草麻生氏

自然言語解析を行い、ログDB型の対話を実現

 Chatbotの対話の仕組みには一般に、質問に対して辞書内の応答をオウム返しにする辞書型、Bot自体が応答を生成するBot型などがある。今回採用したのは、想定パターンをあらかじめ用意し、質問とのマッチ率が高い応答を返すログDB型だ。Bot応答データベースはSalesforce上に用意されているが、GUI画面での保守が可能であり、利便性が高いという側面がある。

 対話を実現するには自然言語解析が必要だ。ChatbotではHerokuのWeb Dynoで形態素解析エンジンMecabを使い、文章を単語に分解し、辞書をベースに単語の品詞を判別する。その結果から名詞を取り出し、Salesforce上のBot応答データベースの質問から抽出した名詞をマッチングし、最も類似度の高い質問に対する応答を返す。その際に応答をどんどん蓄積していくことで、対話の精度の向上を図っている。

 当然ながらChatbotでは応答できない質問が送られてくる場合もあるが、そのたびに有人対応に切り替えるのは現実的ではない。そこで、応答できない質問についてもSalesforce上に蓄積することで、Chatbotによる応答率を高めている。

HerokuのWorker DynoとSalesforceのLive Agentで有人チャット

 有人チャットを行うLive Agentへの接続には、Web DynoではなくWorker Dynoを使用している。Live AgentはREST APIに対応しており、ロングポーリングを使用するが、Web Dynoは最大30秒でタイムアウトする。何よりもWeb Dynoに時間のかかる処理を行わせると、キューがたまってHTTPリクエストを捌けなくなり、HTTPレスポンスが遅れ、ユーザを待たせることになってしまう。そこで、Web DynoにはHTTPリクエストを捌くことに専念させ、Live Agentとの仲介役にWorker Dynoを採用した。時間のかかる処理はキューイングしておき、バックグランドで処理する、バックグランドワーカーという仕組みである。Worker Dynoは、Web Dynoと同様にスケールが容易で、1日に1回リスタートするという特徴がある。

Einstein Visionを使った画像認識

 安部氏は、Chatbotを進化させるために画像認識が必要と述べた。HerokuはアドオンとしてEinstein Visionという画像認識機能を提供している。Einstein Visionは、独自にモデルを作成してトレーニングを実施でき、APIベースで容易に組み込むことが可能だ。たとえば、自社ロゴの識別や、画像による製品の判別などの用途が考えられる。

自然言語解析処理
自然言語解析処理

次のページ
アプリケーションの開発・デプロイを容易にするHeroku

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
イベントレポート連載記事一覧

もっと読む

この記事の著者

坂井 直美(サカイ ナオミ)

SE、通信教育講座の編集、IT系出版社の書籍編集を経てフリーランスへ。IT分野で原稿を書いたり編集したり翻訳したり。

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング