Translate

2018年3月2日金曜日

Google Home を買ったので Actions on Google のマニュアルを読んでみた

Google Home を買った。

厳密には mini なのだけど、とりあえず買った。

朝希少した時くらいので「OK Google、今何時?」と聞くときと、
朝家を出る前に「OK Google 今日、傘要る?」と聞く以外
特に使っていないのだけど..

とはいえ、どう動いているか、
アプリとか作って売れるのかがきになり

Actions on Google のガイドを読んだ
URLは、ここ: https://developers.google.com/actions/

いつものように翻訳文を載せていないのは
1/7 ほど翻訳されていて、残りは英語だけど
Chromeの翻訳ボタンで十分ことたりるからだ。

で、基本構成は

以下、想像を入れて書いているので
鵜呑みにしないでください。

Google Home:
初期設定にはスマホアプリが必要で
スマホアプリを動かすにはGoogleアカウントログインしないとだめ。
スマホとBluetoothで初期設定してGoogleアカウントとWiFiAPを登録したら
Google Homeはインターネット上のGoogleアシスタントサーバの様なクラウドサービスと
基本やり取りしながら応答音声を返す。
OSや構造はこうかいされていないようなので、
OSの構造を理解したいのなら類似OSのAmbient OSをしらべるのもいい。

Googleアシスタント:
サーバのようなものが有り、ユーザ発話によって登録されているActionPackageのなかから
最適なActionを選んで起動しその後はActionとユーザにやり取りを任せる。
ActionPackageはJSON型式で記述可能(Action SDK使用時)で、
Dialoflow開発の場合のActionプロジェクトで作成しているのはおそらくこのJSON構成なのだとおもう。

ActionPackage:

 これを読むとDialogflowで定義していた内容の関連がよくわかる。
・パッケージにはManifestがMAX1つ存在、必要なサーフェス情報等
・パッケージ内にAction群とEntity群、ConversationFulfillmentを定義
・Actionは、MAX1つまでのIntentとMax1つまでのFulfillmentで構成
・Intentは、Max1つまでのトリガとParameter群で構成
・Entityは、名前と類似単語群で構成

Fullfillmentを名前でcall しているのは単にAbstractFactoryパターンなわけではなく
ConversationActionを含むFulfillmentがありその本体が
Firebaseではない場合はURL指定できるようにしている。
ここがスマートホームへの拡張のミソになっている。

Fulfillment:
特定のIntentで必要なEntity群情報をユーザの発話から読み切ったら呼び出される
アプリケーション実体。
DBへアクセスしてもいいし、NoSQLであってもいい、MQTTへなげてもいいし、
XSSに違反しないのであればコグニティブだったりそうでなかったりするRESTAPIを読んでも良い。
リファレンスアプリがFirebaseなのは使ってほしいのはもちろんだけど、
XSS問題でGoogleサービス囲い込みや、このアプリ瞬間だけ起動なのだからEC2的な
常時インスタンス化しなくてもいいしょ?というGoogleアーキテクトの思いが感じられる。
..とかいってるけどAlexaスキルのドキュメントでも同じLambda推奨だけどね;-p

Fullfilmentはnodeパッケージ開発できるようにもなっており、
独自に開発もできるらしい。
それでサードパーティクラウドをよびだすこともできるし、
サードパーティクラウド自体がFulfillmentしてもいいようにできている。


で、ポイントはActionPackageのマニフェスト。
このアクションパッケージを実行するにはこんなサーフェス機能がいるよ。
というのがかける。
これは、HueなどのIoTデバイスを前提としたアクションパッケージを定義できるようにしているのだ。
しかもガイドの中をよむと、カメラ、食器洗い機、ドライヤ、ライト、冷蔵庫、スイッチ、サーモスタット、掃除機、洗浄機、コンセント(アウトレット)、シーン(?)..

..Google、白物家電屋の征服に入ったか!

Alexaを持つAmazon陣営も当然そうだろう。
あ!、Amazonは小売りという強力な立場を傘にきることができるし..

危険だ、日本の家電製造業..逃げてー!
 


 

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...