48
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google I/O 2017 Dialogflow(旧:API.AI) のセッションのベーグル注文を日本風で試してみる #dialogflow

Last updated at Posted at 2017-05-26

Google I/O 2017 API.AI セッション

Google I/O 2017 API.AIのセッションでベーグルを注文するデモが行われました。Google Assistant、Slackなどのチャットベースでベーグルを注文していきます。こちらのデモをそのまま紹介してもいいのですが、ベーグルではなくお寿司を注文するデモに変更したいと思います。一部日本語では対応できない機能もありますが、別の方法で対応してみたいと思います。

API.AIの紹介とデモはこちらで見れます。
Building Rich Cross-Platform Conversational UX with API.AI (Google I/O '17)

###ベーグル注文の会話例
ユーザー「お腹が空いた」
Bot「私はベーグル注文システムです。どんなベーグルが食べたいですか?」
ユーザー「プレーンがいいです」
Bot「かしこまりました。一緒に飲み物はいかがでしょうか。」
ユーザー「もちろん、飲みたいです!」
Bot「かしこまりました。これからベーグルをお届けいたします。」

##下準備

  • API.AIにサインアップorログイン
    • Googleアカウントを使用します。
  • Create new agentで新しいagentを作成
    • sushi-order-demoという名前にします。
    • 言語は日本語を選択します。
    • 入力が終わったらSaveを押します
Screen Shot 0029-05-26 at 14.41.10.png

##Intentsの作成
Intents > Create Intentsで新しいIntentsを作成します。Intentsはユーザーのアクションにどう対応するかを定義する場所です。

  • Intents nameに「Sushi Order」と入れます
  • User saysに「お寿司が食べたい」と入れます
  • Text Responseに「へい、かしこまりました!」と入れます
  • 入力が終えたらSaveを押します。
Screen Shot 0029-05-26 at 15.02.48.png Screen Shot 0029-05-26 at 15.07.01.png

##とりあえずテスト!
左のテキスト入力欄に「お寿司が食べたい」と入れてみましょう、すると「へい、かしこまりました!」と返答してくれます。 ※マイクを選択すれば音声入力もできます。

Screen Shot 0029-05-26 at 15.21.20.png

##わさびの有無を尋ねる機能を追加しよう
さび有りかどうかを注文を確定する前に必ず決めてもらうようにします。

###Entityの作成
Entitiesで新しいEntityを作成します。Entityは物事(時間や住所)などを特定するための辞書のようなものです。API.AIでは基本的な時間や住所はデフォルトで登録されています。今回は寿司の種類やさびの有無を特定するために使用したいと思います。

以下のようにサビの有無を登録します。

Screen Shot 0029-05-26 at 16.13.00.png

###Intentsに追加
IntentsのSushi Orderに戻ります。User saysに「さび抜きでお願いします」と入力してください。するとActionの中にWasabiが追加されます。追加を確認したら以下の情報を追加します。

  • Action nameに「order」
  • REQUIREDにチェック
  • PROMPTSに「さびはどうさないますか?」
Screen Shot 0029-05-26 at 15.59.02.png

##テスト
先ほどと同じように左のテキスト入力欄に「お寿司が食べたい」と入れてみましょう、すると今度は「さびはどうさないますか。」と聞かれます。

Screen Shot 0029-05-26 at 16.01.14.png

「さび抜きでと言ってみる。」

Screen Shot 0029-05-26 at 16.01.58.png

##肝心の寿司の内容を決める機能を追加しよう

###Entityの作成
新しいEntityに寿司のメニューを追加していきます。お好きなものを入れていきましょう。

Screen Shot 0029-05-26 at 16.06.23.png

###Intentsに追加
先ほどと同じようにMenuのEntityも追加します。ここで気をつけたいことはREQUIREDだけではなく、IS LISTにもチェックを入れ複数に注文に対応できるようにします。

  • REQUIREDにチェック
  • IS LISTにチェック
  • PROMPTSに「何を食べたいですか?」
Screen Shot 0029-05-26 at 16.14.18.png

##テスト
まぐろとサーモンをさび入りで注文してみます。

###「お寿司が食べたい」
Screen Shot 0029-05-26 at 16.16.28.png

###「さび有りで!」
Screen Shot 0029-05-26 at 16.17.00.png

###「まぐろとサーモンをお願いします。」
Screen Shot 0029-05-26 at 16.17.17.png

##Slackで試してみよう
api.aiではFacebookやSlackなどのメッセージングBotに簡単に対応できます。本当はGoogle Assistantで試したかったのですが、現在は日本語未対応なのでSlackで実行してみたいと思います。

####IntegrationsのSlackをOnにしてください。
Screen Shot 0029-05-26 at 16.21.47.png

####TEST IN SLACK を選択し好きなSlackに登録してください。

Screen Shot 0029-05-26 at 16.22.46.png Screen Shot 0029-05-26 at 16.24.07.png

####登録が終わるとBotが登録され簡単にテストができます。
Screen Shot 0029-05-26 at 16.32.05.png

##おまけ
もし意図した反応が無かった時はトレーニングをすることで頭が良くなります。
例えば「寿司食べたい」に反応しなかったとします。

Screen Shot 0029-05-26 at 16.36.00.png

TrainingのWhat's the sound of a tieから「寿司食べたい」を選択します。
Screen Shot 0029-05-26 at 16.38.14.png

そしてClick to Assign から Sushi Orderを選択しAPPROVEを押します。
Screen Shot 0029-05-26 at 16.39.00.png

もう一度「寿司食べたい」と入れてみましょう。意図した返答があれば成功です!
Screen Shot 0029-05-26 at 16.45.20.png

##ネクストチャレンジ
API.AIのイベントをCloud functionsで受け取りユーザーにテキストを返してみる

##参考リンク

##API.AIの記事

48
31
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?