Bluemix&Azureで機械学習する自動応答チャットで旅行提案するアプリを...
-
Upload
harada-kazuki -
Category
Technology
-
view
997 -
download
0
Transcript of Bluemix&Azureで機械学習する自動応答チャットで旅行提案するアプリを...
Bluemix&Azureで機械学習する自動応答チャットで旅行提案するアプリを
APIフル活用で実装してみた
自己紹介
• 名前:原田 一樹
• Bluemix UserGroup(BMXUG)のCommunity Manager• 某商社系SIer所属
• 仕事:サービス企画/クラウド技術実証/アジャイル開発
• 保有スキルo AWS: Solutions Architect - Professionalo AWS: SysOps / Developer - Associateo Azure: Implementing Microsoft Azure Infrastructure Solutionso Bluemix: 資格準備中(?)
エバンジェリスト(笑)
kintone × Bluemix対談、
エバンジェリストがPaaSの可能性を語る!
http://ascii.jp/elem/000/001/039/1039691/
「またたび」 とは?
• 「またたびがしたい」と思ってもらえることを目指した 対話型旅行プラン提案bot • 旅行に行きたい日時と予算、人数を伝えるだけで 旅行全体のプランを一括提案! • あなたを理解する機械学習エンジンにより、あなたに似た特性を持った人に好評だった観光地が提案されます!
• 色んな雑談ができるように勉強中
アプリケーション構成
Question and Answer
Auto-Scaling
Monitoring andAnalytics
SendGrid
Virtual machine
負荷テスト
Azure Blob Storage
Azure Machine Learning
観光データ
ユーザーデータ
ヒアリングデータ
評価データ
観光地の画像データを
Public化
ObjectStorage
メール配信
Watson QA
性能監視
スケーリング
ユーザ管理/チャット管理/観光データ管理
チャット履歴データ
MongoLab
予測評価値を付与
CSVファイルの転送
ユーザ評価データCSVエクスポート/
インポート
TravelCorpus
SDKNode.js
乗り換えAPI Git/Build&Deploy/
Track & Plan
アプリケーション構成
Virtual machineAuto-Scaling
Monitoring andAnalytics
Azure Blob Storage
Azure Machine Learning
予測評価値を付与
負荷テスト
ユーザーデータ
ヒアリングデータ
評価データ
メール配信
Watson QA
性能監視
スケーリング
ユーザ管理/チャット管理/観光データ管理
チャット履歴データ
CSVファイルの転送
ユーザ評価データCSVエクスポート/
インポート
SDKNode.js
乗り換えAPI Git/Build&Deploy/
Track & Plan
SendGridを利用したメール配信
MongoLabを使った各種データ管理
ObjectStorage
OpenStack Swiftを使った画像表示
SendGrid
MongoLab
Question and Answer
TravelCorpus
Watson QAを利用した旅行情報QA
乗り換えAPIを利用した旅行ルート案内
観光データ
観光地の画像データを
Public化
アプリケーション構成
Auto-Scaling
Monitoring andAnalytics
観光データ
観光地の画像データを
Public化
メール配信
Watson QA
性能監視
スケーリング
ユーザ管理/チャット管理/観光データ管理
SDKNode.js
乗り換えAPI
ObjectStorage
SendGrid
MongoLab
Question and Answer
TravelCorpus
負荷テスト
ユーザーデータ
ヒアリングデータ
チャット履歴データ
CSVファイルの転送
ユーザ評価データCSVエクスポート/
インポート
Git/Build&Deploy/Track & Plan
Virtual machine
Azure API 実行用の 仮想マシン
Azure Blob Storage
Azure Machine Learning
予測評価値を付与
Blobに評価データと予測評価データを保管
Azure MLでユーザ別観光評価値を 予測
評価データ
ユーザからの観光地評価を保管
観光地データとSwiftによる画像表示連携
• OpenStack Swiftのパブリックアクセス機能を利用して、画像データの保管及びWeb公開を実装。
(https://swift2.open.ibmcloud.com/v1/AUTH_xxxxx/画像ファイル名)
• MongoLabに作成した観光地コレクションから観光地に紐づく画像ファイル名を取得し、上記URLと連結
• チャット応答メッセージに<img>タグを付与して画像表示
ObjectStorage
乗り換えルート案内
• ユーザー情報の最寄駅を出発駅/帰着駅に設定 • ヒアリング時の出発日時を出発時間に設定• ヒアリング時の帰着日時を到着時間に設定• ユーザーに提案するプラン毎のエリアの主要駅を目的駅に設定• 各観光地の最寄駅を到着駅及び次の出発駅に設定• 上記の設定情報を元に複数回乗り換えAPIを実行し、各出力結果を
整形/統合
UserID 最寄駅
00001 東京駅
00002 東京駅
00003 東京駅
【ユーザーデータ】
UserID 出発日時 帰着日時 提案プラン 観光地
00001 9/1 10:00
9/5 20:00 京都 ××温泉○○水族館 …
00002 10/10 15:00
10/18 13:00
沖縄 ××テーマパーク○○体験 …
00003 8/15 7:00
8/15 22:00
横浜 ××川下り○○の滝 …
【ヒアリングデータ】
観光地ID 最寄駅
A00013 ××駅
B12003 ○○駅
C01206 △△駅
【観光地データ】
メール配信SendGrid
• ユーザーが採用したプランを登録メールアドレスに送信する
• 採用時の情報を収集・整形しメール内容に含ませる
o ユーザーネーム
o ヒアリング情報(日程、人数、予算)
o プラン情報(日程、観光地)
email.setTos(tos); // 送信先アドレスは登録メールアドレスから取得し、宛先に設定
email.setFrom(from); // SendGrid経由で送信
email.fromname = 'またたび';email.setSubject('【またたび】採用プランのご案内');email.setHtml(‘name さん<br><br> 採用したプランは下記の通りです。<br><br><br> // ユーザーネームを取得し本文に盛り込む
日程:schedule <br> 人数:number 人 <br> 予算:budget 円 <br> <br><br> // 本文に日程、人数、予算を値を盛り込む
【「place」への旅行プラン】<br> plan <br><br> 旅行を楽しんで来てね!
email.addSubstitution(‘name’, name); email.addSubstitution('plan', plan); email.addSubstitution('schedule', schedule);email.addSubstitution('number', params.hearing_info.number_of_people);email.addSubstitution('budget', budget);email.addSubstitution('place', place);email.addCategory('category1');email.addHeader('X-Sent-Using', 'SendGrid-API');
【Node.js – ソースコード(抜粋)】
Watson Question & Answer
• チャットからWatsonへ質問することが可能
o Travel Corpusへ質問を投げるように設定
• Watsonは質問内容に応じて回答をチャットに送信
• Watsonの回答から最も自信のある回答を1つピックアップ
• 自信度を表すConfidenceの値と回答本文のみをチャット画面に表示
• Watsonが日本語未対応のため英語にて入力する必要がある。
(日本語を入力するとエラーメッセージを返す仕様)
Question and
Answer
Azure MachineLearning(初期実装時点)
参加申し込み開始
後日案内します。
Bluemix UserGroup(BMXUG)http://ibm.biz/bmxug-facebook