Dialogflowを使ってGoogleHomeアプリを作ってみた


概要

寂しい夜はGoogleHomeともっと会話したい?と思って勉強した内容の備忘録です。
ももクロちゃんの名前を言うと担当カラーを教えてくれるだけのアプリを作成しました。

参考にしたサイト

前提条件

  • Dialogflowが使用できる(要Googleアカウント)
  • インターネットに接続されたPythonが動作するWebサーバが使用できる

Dialogflowでテストアプリの作成

  • GoogleアカウントでDialogflowにログインし「CREATE AGENT」をクリック
  • 「Agent name」に「MyApp(任意)」を入力、「DEFAULT LANGUAGE」は「Japanese-ja(任意)」を選択し、「CREATE」をクリック

ENTITYの作成

  • 左カラムの「Entities」をクリックし、中央カラムの「CREATE ENTITY」をクリック
  • モノノフ仕様で、「Entity name」は「mcz」で以下のようにエントリーしました(このあたりはご自由に)

  • 「SAVE」をクリック

INTENTの作成その1

  • 左カラムの「intents」をクリックし、中央カラムの「Default Welcam Intentt」をクリック
  • 「Training phrases」に「百田夏菜子は何色担当?」と入力しEnter
  • 「百田夏菜子」が黄色く網掛けされるはず

  • 「Action and parameters」に値が入力されているので「REQUIRED」をチェック

  • 「Responses」は使用しないので「Text responses」はすべて削除

  • 「SAVE」をクリック

Fulfillmentの設定

  • 左カラムの「Fulfillment」をクリックし、中央カラムの「Webhook」を「ENABLED」に設定
  • 「URL」にこれから作成するアプリのURLを記載する

  • 「SAVE」をクリック

INTENTの作成その2

  • 左カラムの「intents」をクリックし、中央カラムの「Default Welcam Intentt」をクリック
  • 「Fulfillment」の「Enable webhook call for this intent」を有効に設定

  • 「SAVE」をクリック

スクリプトの作成および配置

Fulfillmentの設定で指定した場所にスクリプトを配置します。

mcz.py
#!/usr/local/bin/python2.7
# -*- coding: utf-8 -*-

import json
import sys

input = json.load(sys.stdin)
print("Content-type: application/json\n\n")

message = input["result"]["parameters"]["mcz"]

if message == u"百田夏菜子":
    answer = "赤です"
elif message == u"玉井詩織":
    answer = "黄色です"
elif message == u"佐々木彩夏":
    answer = "ピンクぅ?"
elif message == u"高城れに":
    answer = "紫族です"
else:
    answer = "わかりません"

output = {
    "speech": answer 
}

json.dump(output, sys.stdout)

動作確認その1

右カラムの「Try it now」に「あーりんは何色?」と入力したら、「DEFAULT RESPONSE」に「ピンクぅ?」と返ってきました。

動作確認その2

左カラムの「Integrations」をクリックし、中央カラムの「Google Assistant」をクリック。次の「Google Assistant」画面は「TEST」をクリックで、GoogleHomeと会話を開始することが可能です。

私「OK,Goolge テスト用アプリにつないで」
グーグルホーム「はい テスト用アプリのテストバージョンです」
私「玉井詩織」
グーグルホーム「黄色です」
私「れにちゃん」
グーグルホーム「紫族です」
私「とめて」

ってな感じで会話というか、反応があれば成功です。

最後に

解説なくてすみません。
多分間違いも多いと思います。