UXデザイナー向け、チャットボット開発者向け受賞者それぞれ、1位から3位までの方々には Fitbit Sense や Nest Hub, Lego Kit などの賞品がついてきます。私は受賞は狙っていませんが、StarWars の Lego Kit は欲しいな...って少し思いました。はい。
あと、「The Definite Guide to Conversational AI with Dialogflow and Google Cloud」という本もついてくるそうです。
(これ、Amazon で調べたら 6000円以上するのね...)
GoogleアシスタントアプリやAlexaスキルを作ったことがある方は、経験されているかもしれませんが、
会話型アクションをテストするのってすごく大変なんですね。
ちょっとインテントのフレーズを変えただけでも、その対象のシーンまで会話を持っていかないといけないので、何度も同じことを言ったりして労力を奪われてしまいます。
そこで必要になってくるのが End to End の自動テストです。
一度テストを作ってしまえば、改修のたびに都度都度、話しかけるという手間もなくなります。
Actions on Google には E2Eテストがコードベースで書けるライブラリが用意されています。
これは、Actions API をラップしていて、テストスイートを定義すれば、自分で作ったアクションにクエリを送信して、返ってきたレスポンスに対して検証することができます。
また、テスト実行前に Actions API の writePreview メソッドをコールすることで、Draftから自分のプロジェクトにプレビューを作成し、そこに対してテストすることができます。つまり、リリース前にひととおりの検証ができるってことですね。
ユーザーが Google Home に “OK Google 電気をつけて” と話しかけるとデベロッパーの Fulfillment は電気をONにする実行コマンドを含む EXECUTE インテントを受け取ります。
そして、Fulfillment はユーザーの自宅にあるホームデバイスに対して電気をONするというリクエストを行います。
Query Device Status
Query Device Status
「リビングの電気は点いてる?」とユーザーが Google Home に質問したり、「音量を上げる」「明るさを上げる」のような相対的なコマンドを処理するときに、アシスタントは QUERY インテントをデベロッパーの Fulfillment にリクエストします。
そして、Fulfillment はデバイスの状態をアシスタントに返してあげます。
この図だと、デバイスは今、ONになっているよというのをアシスタントに返しています。
Smart Home with Local Fulfillment
Smart Home with Local Fulfillment
一連の流れで、ホームデバイスを操作するには、デベロッパーは Execute Command を受け取ってホームデバイスへそれを伝える Cloud Fulfillment を作成する必要がありました。
ですが、Local Home SDK を利用すると、Local Fulfillment を作成し Google Home 上でデベロッパーが書いた JavaScript を動かし、ホームデバイスを制御することができます。
また、Cloud Fulfillment は Local Fulfillment が機能しなかった際の fallback としても機能します。
1.スマホの Google Home アプリからデバイスを追加します。
今回は Otter Light というデバイスを Otter Smart Home というスマートホームアクションに作成しているので、最初に Otter Smart Home というサービスとアカウント連携をします。
アカウントをリンクさせたら、追加するデバイスを選んで、ホームを選んで、部屋を選んで、すると、Otter Light がアプリ上から操作できるようになります。