[レポート] スキルのデザイン・実装のベストプラクティス #AlexaDevSumi

2018年12月14,15日に開催されたAlexa Dev Summit 2018のセッション、「スキルのデザイン・実装のベストプラクティス」のレポートです。
2018.12.14

はじめに

本ブログは、2018年12月14,15日に開催されたAlexa Dev Summit 2018のセッション、
「スキルのデザイン・実装のベストプラクティス」のレポートです。

概要

画面付きデバイスの登場や、Amazon Pay等の様々なAPIがリリースされていく中で、アレクサスキルを通じて様々な体験をお客様にお届けすることが可能となっています。より快適なお客様体験を提供するうえで、時にスキルのデザインは複雑なものになる場合があります。その複雑なデザインを実装に落とし込んでいく過程のベストプラクティスを、実例を交えながら紹介します。

レポート

  • アマゾンジャパン合同会社 アレクサビジネス本部 シニアソリューションアーキテクト 岡 弦太朗さん
    • 4歳のお子さんとよくスキルを使って遊んでいる
  • 複雑なスキルをデザインする手法を理解する
    • 複雑であっても高いレベルの品質を保って実装に落とし込む方法
  • 事例の紹介:出前館
    • 出前館加盟店12,000店の飲食店のなかからメニューの注文。Amazon Payで支払いし、デリバリー可能
  • スキルのデザイン・実装のステップ
  • Step1 会話の「台本」を作る
    • 会話のキャッチボールの相手をアレクサに置き換えてみる
      • 気持ちいいUIを考える。違和感の無い会話を考える
    • 台本作りのポイント
  • Step2 対話のフローを考える
    • 会話の状態を考える
    • 会話の状態を矢印でつなぐ
      • 状態遷移図のようなイメージ
      • 図を書いておくことで場面毎にユーザーが何が言いたいかイメージしやすくなる
    • 以下も考慮して矢印を引く

      • スキル停止時の状態
      • ワンショット起動
      • 発話が同じでも遷移先が違う時
      • すべての状態での想定外の発話の挙動
      • 対応必須の発話(ヘルプ、キャンセル、ストップ)の挙動
  • Step3 インテントスキーマの作成(対話モデルの準備)
    • Alexaのアーキテクチャ
    • Alexa Skills Kit(ASK)
    • インテント(意図)の定義
      • 「中華料理が食べたい」という発話 -> SelectGenreIntent というインテントとして定義
      • 「中華料理」という部分はスロットとして定義
    • 色々なインテントとスロットを定義して、発話とインテントをマッピングする
    • インテントを整理する
      • 状態によらず、すべてのインテントが常に呼び出される可能性がある
      • 似ている発話は同じインテントにまとめる。
      • 状態に応じて、同じインテントでも異なる反応を実装できる。
  • Step4 会話の認識をテストする
    • 会話の認識をテストする
      • 実装が進む前ににできれば認識のテストをしておく
    • 「やまびこスキル」を作ると便利
      • リクエストのJSONをそのままカード出力するだけのスキル
  • Step5 ユーザーへの応答の整理
    • ユーザーの発話とアレクサの応答を表などにして整理する
    • ディスプレイ付きデバイスでの画面の検討
      • 状態遷移図中のそれぞれの状態で画面を検討
      • デバイスに合わせた画面サイズのイメージを準備する
  • Step6 Lambdaの実装
    • 実装イメージ(ASK SDK v2)

おわりに

これからスキル開発に取り組む方でも理解しやすく、非常にわかりやすいプレゼンでした。
自分もスキル開発者として、色々と復習になる内容でした!