ENGINEER BLOG

ENGINEER BLOG

Google Dialogflowを試してみた

こんにちは。コンサルティングサービス本部の野村です。

今回は、Googleが提供しているDialogflowを試してみましたので、
簡単ですがご紹介したいと思います。

Dialogflowとは

Dialogflowとは、Googleが提供している自然言語対話プラットフォームで、
Googleアシスタントを搭載したGoogleHomeやAndroidスマホ等に対応する対話型アプリを
簡単に作成することができるサービスです。

全体像を簡単にまとめると以下のようになります。

20180817_1

【Actions on Google】
Googleアシスタント向けのアプリ(アクション)を作成できる開発者プラットフォームで
DialogflowもしくはActions SDKを利用して作成します。
作ったアクションはGoogleアシスタントから「○○と話す」や「○○につないで」と話しかけることで起動できます。
またWebhookを利用して簡単にバックエンドのサービスと連携することも可能です。

ちなみに、サードパーティ製のアプリはGoogleアシスタントから確認することができます。

20180817_19

簡単なアプリを作ってみる

ではまず、飲み物をオススメしてくれる簡単なアプリを作ってみたいと思います。

まずこちらから、Actions on Googleへログインし、
START BUILDINGをクリックします。

20180817_2

次に、Add/Import projectをクリックし、

20180817_3

プロジェクト名、言語、国を入力しCREATE PROJECTをクリックすると

20180817_4

新規プロジェクトが作成されます。

20180817_5

次にアクションを作っていきます。
Build your ActionのAdd Actions ⇒ ADD YOUR FIRTS ACTION⇒BUILDとクリックしていくと

20180817_6

20180817_7

Dialogflowの画面に遷移します。
言語を選択しCREATEをクリックして新規エージェントを作成しましょう。

20180817_8

次にCREATE INTENTをクリックし、INTENTを作成します。
INTENTでは会話やりとりの部分を設定します。

20180817_9

Intent nameにIntent名を、Training phrasesに人が話しかけるフレーズを、
Responsesに返答内容を設定します。Responsesに複数設定しておくと、
ランダムに返してくれます。

20180817_10

設定が完了したらSAVEボタンを押して保存するのを忘れないようにしましょう。

20180817_11

ちゃんと動くか、右上のTry it nowに「お勧めの飲み物教えて」と入力しEnterを押すと、

20180817_12

ちゃんと反応してくれました。

Entityを使うと複数のキーワードをひとつにまとめることができます。
(「飲み物」でも「ドリンク」でも反応させるようにすることができます)

20180817_13

次に、もう少し会話のキャッチボールができるようにしてみたいと思います。

やり方はいくつかありますが、今回は簡単なFollowup Intentを使って、
今の気分を聞き、それに応じて飲み物をお勧めしてくれるようにしてみます。

まずは先ほど作ったIntentのResponsesの内容を、
「今の気分を教えてください」と変更しておきます。

20180817_16

次に、左メニューからIntentsを選択してIntentsの一覧を表示させ、
対象のIntentsにカーソルを合わせるとAdd follow-up intentと表示されるのでクリックし、メニューからcustomを選びます。

20180817_15

そうすると、続きのIntentを作成できるようになるので、Training phrasesに「ねむい」、

20180817_20

Responsesに「コーヒーがおススメです!」「レッドブルをお勧めします」としておきます。

20180817_17

Try it nowで試してみます。

20180817_18

うまくいきました。

Followup Intentをいくつか作ることで、それぞれの感情にあった飲み物を
お勧めすることができるようになります。

おわりに

今回はDialogflowを使って簡単な会話アプリを作ってみました。
Fulfillmentを使うと、Webhookを利用してFirebaseなどのバックエンドサービスと連携することができ、
より高度な会話アプリを作ることも可能です。(Firebaseについてはまた別の機会に記事にしてみようと思います。)

ぜひ皆さんもいろいろチャレンジしてみてください!