SlideShare a Scribd company logo
Google Cloud Platform プレミアパートナー
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
自己紹介2
2
高野 遼(29)
宮崎県都城市出身A型。
クラウドエース株式会社
で働いています。
寝ることとゲームと変な人
が好きです。
Copyright(c)CloudAceInc.2017AllRightsReserved
3
チャットボットとは?
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
4
4
チャットボットとは?
おはよう、今日も元気?
おはよう、げんきだよ!
さも人間とチャットしているかのように、
状況に応じた回答を行なってくれる
ロボットプログラムのこと!
そんなことより、お前また筋トレサボっ
たろ。これで15度目だぞ。
太郎@筋トレが退出しました。
筋肉BOT
筋肉BOT
太郎@筋トレ
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
5
5
なぜ最近流行っているのか?
旧来のチャットボット 最近のチャットボット
name = user.name
say = user.say
say = say.removeAll(“!”);
if(say == “こんにちは” || say == “こんにちわ”){
return name + “,こんにちわ!”
}
if(say.contains(“泣”)){
return “大丈夫?元気出して!”
}
if(say.contains(“お腹すいた”)){
return “パンあげる!”
}
IF文ベースの条件分岐によって組まれた
人工無脳型
例文を元に事前学習した人口知能モデルが
入力の文章を理解し回答
腹減った!
おなかすいた
お腹がすいた
ご飯食べたい〜
メシ食いたい〜
腹 減った !
おなか すいた
お腹 が すいた
ご飯 食べたい 〜
メシ 食いたい 〜
デブの予感
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
Googleが誇るPaaS。コードを書いてデプロイすることで、オートスケールす
るWebアプリケーションのホスティングが可能。
今回はBackend APIとして活躍。
App Engine上で動作するREST APIを開発するためのモジュール。
App Engine同様にBackend APIの開発で活躍。
言わずと知れたGoogle翻訳。昨年にDNNの学習結果が取り込まれたらし
く、急激に精度が向上した。
今回は自然言語理解のための前処理と、ユーザのための翻訳で活躍。
NoSQL型のフルマネージドデータベース。
ただのDBとして使っています。
NLU(Natual Language Understanding)、自然言語理解エンジン。
昨年Googleが買収し、晴れてGCPの仲間入りをした。
名前はまた変わる模様。
6
6
Google Cloud Platformでチャットボット
Cloud
Datastore
Cloud
Translation
API
App
Engine
Cloud
Endpoints
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
7
7
api.aiについて
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
8
8
api.ai
Natural Language Understanding(NLU)を行なってくれるAPI。
入力の文章の意味理解や、パラメータの抽出、会話など、チャットボットにまつわる
いろいろな機能を持ったクラウドサービス。
Entity
Intent
api.aiで用いられる類義語辞書。
ユーザの発言ととるべきアクションのマッピングを行う機能。
User Says ユーザの発言
Actions
Response
Context
ユーザの発言と紐づくアクション。
アクション名とパラメータからなる。
アクションに対して定義された回答と、抽出されたパラメータ。
それまでの会話の内容や、発言が送信されたデバイスなどの周
辺情報。
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
9
9
api.aiのデモ
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
10
10
Intentの利用例
User Says Actions Response Context
スナップショットのとりかたをおしえ
てください
how_to_create_snapshot gcloud compute snapshot create
~~~~
-
VMインスタンスを他のプロジェクト
にコピーしたい
how_to_migrate_vm_to_another
_project
カスタムイメージを作ってください! -
AWSのEC2にあたるサービスはど
れですか?
what_aws_service_in_gcp
(AWS_SERVICE)
Webhook -
AWSのS3にあたるサービスはなん
ですか?
what_aws_service_in_gcp
(AWS_SERVICE)
Webhook -
BigQueryについて教えてください about
(SERVICE, ABOUT)
Webhook -
BigQueryの料金について教えてく
ださい
about
(SERVICE, ABOUT)
Webhook -
1:1の質問と回答
パラメータやSlotFillingを
使った回答
api.ai単体では1sayに対して1responseしか返せないため、
Parameterに応じた回答をやろうと思うと、 Webhookが必須。
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
11
11
会話のセッション問題
BigQueryについて教えて
BigQueryについてですね!
概要・料金などどれについてご説明し
ますか?
概要
どのサービスについてお答えしましょ
うか?
Aさん
Aさん
api.ai
api.ai
悪い例
api.aiは、それぞれのユーザの発言が連続したものだと認識できない。
→認識するための仕組みが必要。
Param Value
Service BigQuery
About null
Param Value
Service null
About 概要
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
12
12
会話のセッション問題
BigQueryについて教えて
BigQueryについてですね!
概要・料金などどれについてご説明し
ますか?
概要
BigQueryの概要は〜〜
Aさん
Aさん
api.ai
api.ai
正しい例
会話ごとに会話のセッション (AAABBB)を発行し、api.aiに渡すことで
同一のユーザの発言であることが認識できる。
Param Value
Service BigQuery
About null
Param Value
Service BigQuery
About 概要
session id
発行
AAABBB
AAABBB
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
13
13
作ったもの
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
  App Engine
Main Process
Cloud Endpoint
14
14
今回作った多言語チャットボット
App Engine
Translate API
QA
Endpoint
Translation
Layer
Englishnization
Parameterization
Layer
api.ai CALL WebhookCloud Endpoint
Datastore
Localization
Take an Answer
Web
LINE
Slack
Task Queue
ask Slack Store BQ BigQuery
Architecture: QA Chatbot
学習データ
Webhook
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
15 処理の流れ
Native Q English Q Parameterized Q
Japanese ANative A Japanese A
Datastore
Webhook
BigQueryの概要を教えて
Please give me an overview
of bigquery
[action = about]
Service:BigQuery
About: Overview
BigQueryとは〜〜BigQueryとは〜 BigQueryとは〜〜
Datastore
告訴我BigQuery的概述
Please give me an overview
of bigquery
BigQueryとは〜〜BigQuery是〜〜。 BigQueryとは〜〜
Datastore
[action = about]
Service:BigQuery
About: Overview
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
  App Engine
Main Process
Cloud Endpoint
16
16
今回作った多言語チャットボット
App Engine
Translate API
QA
Endpoint
Translation
Layer
Englishnization
Parameterization
Layer
api.ai CALL WebhookCloud Endpoint
Datastore
Localization
Take an Answer
Web
LINE
Slack
Task Queue
ask Slack Store BQ BigQuery
Architecture: QA Chatbot
学習データ
Webhook
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
17
17
QA Endpoint
ブラウザからのリクエストを処理する APIと、
LINEからのWebhookを処理するAPIの2種類を用意。
それぞれでセッションの管理を行う。
・初回リクエスト受付時に、 Cloud Endpointでセッションを発行。
・セッションIDと問い合わせ文字列を Translation Layerに渡す。
ブラウザ
・Webhookリクエストにふくまれる、 userIdをセッションIDとして使用。
・ブラウザと同様、セッション IDと問い合わせ文字列を Translation Layerに渡
す。
LINE
auth = @ApiAuth(allowCookieAuth = AnnotationBoolean.TRUE
をつけないと、Cloud EndpointでsessionIdが維持されない点に注意!
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
  App Engine
Main Process
Cloud Endpoint
18
18
今回作った多言語チャットボット
App Engine
Translate API
QA
Endpoint
Translation
Layer
Englishnization
Parameterization
Layer
api.ai CALL WebhookCloud Endpoint
Datastore
Localization
Take an Answer
Web
LINE
Slack
Task Queue
ask Slack Store BQ BigQuery
Architecture: QA Chatbot
学習データ
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
19
19
Translation Layer Englishnization
前段から受け付けた問い合わせ文字列を api.aiが認識しやすい英語に変換。
同時に、問い合わせ文字列の言語を検出し、状態として保存。
英語化された質問を api.aiに投げる。
BigQueryについて About BigQuery
Japanese Q English Q
ja
言語検出
Translation API
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
  App Engine
Main Process
Cloud Endpoint
20
20
今回作った多言語チャットボット
App Engine
Translate API
QA
Endpoint
Translation
Layer
Englishnization
Parameterization
Layer
api.ai CALL WebhookCloud Endpoint
Datastore
Localization
Take an Answer
Web
LINE
Slack
Task Queue
ask Slack Store BQ BigQuery
Architecture: QA Chatbot
学習データ
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
21
21
api.ai Webhook
api.aiがパラメータ化した問い合わせから、回答を検索、 api.aiへ返答する。
Datastoreのキー値として、Action名とパラメータから生成した文字列を使用。
これにより、検索の手間なく結果を取得できる。
(回答は予め同様のキー作成ロジックを使い登録しておく。)
[action = about]
Service : BigQuery
About : 概要
Parameterized Q
Datastore
Key Answer
asd2131%123dasd BigQueryとは、〜〜です。
dasdasd”!#!$!”$”!FAdasdas BigQueryの料金は〜〜で、〜〜です。安いです。
Key:asd2131%123dasd
キー生成
BigQueryとは、〜〜で
す。
Japanese A
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
  App Engine
Main Process
Cloud Endpoint
22
22
今回作った多言語チャットボット
App Engine
Translate API
QA
Endpoint
Translation
Layer
Englishnization
Parameterization
Layer
api.ai CALL WebhookCloud Endpoint
Datastore
Localization
Take an Answer
Web
LINE
Slack
Task Queue
ask Slack Store BQ BigQuery
Architecture: QA Chatbot
学習データ
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
23
23
Translation Layer Localization
api.aiから帰ってきた日本語の回答を、検出した言語に翻訳する。
BigQueryとは、〜〜です。 BigQueryとは、〜〜です。
Native A Japanese A
ja
言語検出
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
24
24
デモ
GCPで多言語チャットボット作ってみた
Copyright(c)CloudAceInc.2017AllRightsReserved
25
25
ご静聴
ありがとうございました。

More Related Content

PPTX
3次元計測とフィルタリング
PDF
ドキュメントを作りたくなってしまう魔法のツールSphinx
PDF
自宅で出来る!ゲームサーバの作り方
PDF
30th コンピュータビジョン勉強会@関東 DynamicFusion
PDF
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
PDF
オンラインゲームの仕組みと工夫
PDF
シェル芸初心者によるシェル芸入門
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
3次元計測とフィルタリング
ドキュメントを作りたくなってしまう魔法のツールSphinx
自宅で出来る!ゲームサーバの作り方
30th コンピュータビジョン勉強会@関東 DynamicFusion
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
オンラインゲームの仕組みと工夫
シェル芸初心者によるシェル芸入門
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか

What's hot (20)

PDF
Observableで非同期処理
PDF
マイクロサービス 4つの分割アプローチ
PDF
研究発表を準備する(2022年版)
PPTX
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
PDF
トランザクションスクリプトのすすめ
PDF
Doozy UI 使おうぜ! #unity_lt
KEY
やはりお前らのMVCは間違っている
PDF
イミュータブルデータモデルの極意
PDF
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
PDF
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
PDF
アジャイルな見積りと計画づくり勉強会
PPTX
テストコードの DRY と DAMP
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
PDF
入社1年目のプログラミング初心者がSpringを学ぶための手引き
PDF
Lucas kanade法について
PDF
コンピュータビジョンで作る未来の栽培技術POL共催セミナー_20220527
PPT
レイトレ空間構造入門
PDF
低レイヤー入門
PDF
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
PDF
オブジェクト指向プログラミングのためのモデリング入門
Observableで非同期処理
マイクロサービス 4つの分割アプローチ
研究発表を準備する(2022年版)
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
トランザクションスクリプトのすすめ
Doozy UI 使おうぜ! #unity_lt
やはりお前らのMVCは間違っている
イミュータブルデータモデルの極意
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
アジャイルな見積りと計画づくり勉強会
テストコードの DRY と DAMP
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
入社1年目のプログラミング初心者がSpringを学ぶための手引き
Lucas kanade法について
コンピュータビジョンで作る未来の栽培技術POL共催セミナー_20220527
レイトレ空間構造入門
低レイヤー入門
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
オブジェクト指向プログラミングのためのモデリング入門
Ad

Similar to Gcpで多言語対応チャットボット作ってみた (20)

PDF
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
PPTX
俺とGitHubとcodeシリーズ
PPTX
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
PDF
普段使用しているAIサービスとGitHub Copilot のベターな使い方について
PPTX
20170622 Heroku Meetup #17 スタートアップのインフラ選び 高丸翔英 How to choose infrastracture...
PPTX
ChatGPTで面白い物語は作れるのか?
PDF
Bot × Office 365 〜 Microsoft Bot Framework と Microsoft Graph API を使った業務システムの新...
PDF
2024-12-04 第2回OpenArm勉強会LT発表資料OnShapeの紹介-概要編
PDF
2024-12-04 第2回OpenArm勉強会LT発表資料OnShapeの紹介-概要編
PDF
NGK2023S ChatGPT
PDF
RTC2023_ChatGPT_YukiTsukamae.pdf
PPTX
RTC2023_ChatGPT_YukiTsukamae.pptx
PPTX
Cocos sharpformsの使用例
PPTX
契約プログラミング
PDF
「らしく」ハタラコウ。 ChatWork x クラウドソーシング
PDF
Microinteractions on chat UI ( and chatbot ) / UX JAM 19 presentation
PDF
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
PPTX
Seq2Seqでボットづくり
PDF
こわくないPython
PDF
Hubotで遊ぶ
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
俺とGitHubとcodeシリーズ
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
普段使用しているAIサービスとGitHub Copilot のベターな使い方について
20170622 Heroku Meetup #17 スタートアップのインフラ選び 高丸翔英 How to choose infrastracture...
ChatGPTで面白い物語は作れるのか?
Bot × Office 365 〜 Microsoft Bot Framework と Microsoft Graph API を使った業務システムの新...
2024-12-04 第2回OpenArm勉強会LT発表資料OnShapeの紹介-概要編
2024-12-04 第2回OpenArm勉強会LT発表資料OnShapeの紹介-概要編
NGK2023S ChatGPT
RTC2023_ChatGPT_YukiTsukamae.pdf
RTC2023_ChatGPT_YukiTsukamae.pptx
Cocos sharpformsの使用例
契約プログラミング
「らしく」ハタラコウ。 ChatWork x クラウドソーシング
Microinteractions on chat UI ( and chatbot ) / UX JAM 19 presentation
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Seq2Seqでボットづくり
こわくないPython
Hubotで遊ぶ
Ad

Gcpで多言語対応チャットボット作ってみた