[レポート]スキル内でどうやってデータを管理するか #ALX401 #reinvent
せーのでございます。
2019年12月02日〜2019年12月07日にかけてアメリカはラスベガスにてAWS最大のカンファレンス、AWS re:Invent 2019が開催されております。
クラメソチームは今年は80名という常軌を逸した人数で現地に乗り込んでおります。
このブログは下記セッションについてのレポートです。
Learn how to handle data in your Alexa skills Presented by Azi Farjad / Amit Jotwani
{セッション概要}
レポート
- 「どのようなデータをスキルがアクセスするか」は皆アイデアがある
- 「データをどこに保存するか」「データをどのように出し入れするか」「大人と子供でアクセスできるデータの違い」について知見をもってもらえればと思う
- あなたが「良いスキルだな」と思ったものの要因は何か
- スキルエンゲージメントを高めるのはそのコンテンツ自体
- 質の高いコンテンツにはどの情報をどこで使うか、というタイミングが重要
- そのために大切な情報はなるべく覚えておきたい
-
旅行予約のスキルを考える
- 少しパーソナライズするためにはどのような情報を覚えておくべきか
- 名前
- 住所
- ユーザーID
-
これらは毎回応答するものではなく、一度呼び出したら覚えておきたい
-
これらのデータをどのように管理するか
- NoSQL
- RDBMS
- S3
- 必要なデータには往々にして画像なども含まれる
-
SDKと深く連携していると良い
-
マーケティングチームやコンテンツチームと連携する場合
- 彼らはデータベースアカウントにアクセスしたくない場合も多い
- 音声にてデータをコントロールできるとよい
- プライバシーポリシーとして個人情報を管理する場合にはユーザーが情報を預ける旨を理解していなければならない
-
API Gatewayを使ってAPI経由で呼び出す
-
実装方法
- グローバル変数を使う
-
Session Attributeを使う
-
セッションの間にスキルが会話を覚えておいた方が良いこと
- 好みの情報
- ユーザの名前
- 短期記憶か長期記憶か
- 2回聞き直したくないような事はセッション終了後にデータベースに保存する
- ゲームスキル
- 回答を正しく使えているときにポイントを加算しリーダーボードに表示
-
8ポイント溜まっていたら残り質問を2つし、スコアを与えたら全て忘れる
-
Session Attributeは会話が終了するまで記憶されている
- Persistent Attributeは初回(session.new = true)のときに呼び出してSession Attributeに移す
- データベースのキーにUser IDを使い、パーソナライズされる情報をためていく
- (会場から)User IDはスキルがOFF/ONされると変更される?
- 多分今は同じだと思うが私は試していない。デバイスIDは変更される
- オーストラリア人に対してのパーソナライズの手段の一つとしてシノニムやSSMLを使ってオーストラリア独特の言い回しをする
- 次回このスキルを開いたときに「おかえりなさい。9日前にアクセスがありました」と言う
- Intercepterを利用してCloudWatchにログを吐く
まとめ
Session AttributeとPersistent Attributeの使い分けやDB,APIとの連携についてのお話でしたが、日本ではそこそこもう議論しつくされた話題かな、と感じました。
スキルのOFF/ONでUser IDは変わる、というのが私の認識です。これももう2年近く前に議論していた話題かと思います。
つまり、日本の開発者のAlexaに関するフィードバックはアメリカチームにはなかなか届きにくい、ということなのかもしれません。
もっと英語で発信しなければいけない、と色々な意味で勉強した1時間でした。