【Bluemix Challenge最優秀賞】またたび〜旅行提案bot_LT資料〜
-
Upload
harada-kazuki -
Category
Technology
-
view
7.896 -
download
1
Transcript of 【Bluemix Challenge最優秀賞】またたび〜旅行提案bot_LT資料〜
またたび ~対話型旅行提案bot~
【チーム】 CTC Cloud Club
開発メンバー紹介
原田 一樹 (Bluemixアーキテクト/
スクラムマスター/開発者)
岡 桃葉 (プロダクトオーナー/開発者)
中村 哲雄 (アプリ開発リーダー)
「多機能なアプリケーションも手早く実装できる。そう、Bluemixならね。(今回はAzureも使っちゃいましたが。)」
「開発中はまたたびの画像に癒されながら作業していました。またたびが可愛く感じられる今日この頃…!」
「またたびには愛着が湧いてきましたが、バグに対しては一向にその気配がありません。いつかそのような日が来るのでしょうか。 」
「またたび」 とは?
• 「またたびがしたい」と思ってもらえることを目指した
対話型旅行プラン提案bot
• 旅行に行きたい日時と予算、人数を伝えるだけで
旅行全体のプランを一括提案!
• あなたを理解する機械学習エンジンにより、あなたに似た
特性を持った人に好評だった観光地が提案されます!
• 色んな雑談ができるように勉強中
アプリケーション構成
Question and Answer
Auto-Scaling
Monitoring and Analytics
SendGrid
Virtual machine
負荷テスト
Azure Blob Storage
Azure Machine Learning
観光 データ
ユーザー データ
ヒアリング データ
評価 データ
観光地の 画像データを
Public化
Object Storage
メール配信
Watson QA
性能監視
スケー リング
ユーザ管理/チャット管理/観光データ管理
チャット 履歴データ
MongoLab
予測評価値 を付与
CSVファイルの転送
ユーザ評価データ CSVエクスポート/
インポート
Travel Corpus
SDK Node.js
乗り換え API Git/Build&Deploy/
Track & Plan
アプリケーション構成
Virtual machine Auto-Scaling
Monitoring and Analytics
Azure Blob Storage
Azure Machine Learning
予測評価値 を付与
負荷テスト
ユーザー データ
ヒアリング データ
評価 データ
メール配信
Watson QA
性能監視
スケー リング
ユーザ管理/チャット管理/観光データ管理
チャット 履歴データ
CSVファイルの転送
ユーザ評価データ CSVエクスポート/
インポート
SDK Node.js
乗り換え API Git/Build&Deploy/
Track & Plan
SendGridを利用したメール配信
MongoLabを使った各種データ管理
Object Storage
OpenStack Swiftを使った画像表示
SendGrid
MongoLab
Question and Answer
Travel Corpus
Watson QAを利用した旅行情報QA
乗り換えAPIを利用した旅行ルート案内
観光 データ
観光地の 画像データを
Public化
アプリケーション構成
Auto-Scaling
Monitoring and Analytics
観光 データ
観光地の 画像データを
Public化
メール配信
Watson QA
性能監視
スケー リング
ユーザ管理/チャット管理/観光データ管理
SDK Node.js
乗り換え API
Object Storage
SendGrid
MongoLab
Question and Answer
Travel Corpus
負荷テスト
ユーザー データ
ヒアリング データ
チャット 履歴データ
CSVファイルの転送
ユーザ評価データ CSVエクスポート/
インポート
Git/Build&Deploy/ Track & Plan
Virtual machine
Azure API 実行用の 仮想マシン
Azure Blob Storage
Azure Machine Learning
予測評価値 を付与
Blobに評価データと予測評価データを保管
Azure MLでユーザ別観光評価値を 予測
評価 データ
ユーザからの観光地評価を保管
Bluemix アプリ概要ページ
観光地データとSwiftによる 画像表示連携
• OpenStack Swiftのパブリックアクセス機能を利用して、 画像データの保管及びWeb公開を実装。
(https://swift2.open.ibmcloud.com/v1/AUTH_xxxxx/画像ファイル名)
• MongoLabに作成した観光地コレクションから観光地に紐づく画像ファイル名を取得し、上記URLと連結
• チャット応答メッセージに<img>タグを付与して画像表示
Object Storage
乗り換えルート案内
• ユーザー情報の最寄駅を出発駅/帰着駅に設定 • ヒアリング時の出発日時を出発時間に設定 • ヒアリング時の帰着日時を到着時間に設定 • ユーザーに提案するプラン毎のエリアの主要駅を目的駅に設定 • 各観光地の最寄駅を到着駅及び次の出発駅に設定 • 上記の設定情報を元に複数回乗り換え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
ユーザー評価/予測評価値
• 各ユーザーに提案した観光地に対する評価を調査する
• 評価値を受領すると[ユーザー評価コレクション]に下記を追加 o UserID、性別、年代、出身地、居住エリア、特性値、観光地ID、ユーザ評価
• 上記コレクションをCSVエクスポートし、機械学習エンジンで解析し、各観光地の予測評価値を算出。
UserID 性別 年代 出身地 居住エリア 特性値① 特性値② 特性値③ 特性値④ 観光地ID カテゴリ ユーザ評価
00001 Male 20-29 香川県 東京都 2.4 -1.8 0.9 -2.1 A00013 narure 4
00001 Male 20-29 香川県 東京都 2.4 -1.8 0.9 -2.1 B12003 museum 3
00003 Female 30-39 京都府 東京都 -0.8 1.6 2.3 -1.4 A00113 narure 2
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
99999 Male 40-49 東京都 大阪府 1.2 2.1 0.9 1.8 C01206 outdoor 5
【ユーザー評価コレクション-データモデル】
Azure MachineLearning (初期実装時点)
・ 残念ながら、「またたび」は一般公開することができません。
(観光データ、乗り換え案内APIが開発者ライセンスのため)
・ 我々はまたたびを共に完成させてくれる 「オーナー」 を
募集しています。
・ 「またたび」は学習させる内容を変えるだけで、様々な分野に
応用することが可能です。
オーナー募集中
CTCブースでデモやってます
午後には講演もあります
Track B 15:30~16:00
PaaSを使いこなす!! 「インフラSIer」の進化
【講演者】 小岩井
Track D 16:30~17:00
WatsonQA応用編 〜独自corpusを作成しBluemixと連携させる方法〜
【講演者】 原田