この記事で書いてあること
先日CEKの一般公開を期に、CEK + Lambda + API Gateway
を実践してみました。
この記事を一通りやると、簡単なClovaスキルが作成できるようになります。
今回は、Clovaのアプリを開発するに当たって、コードとかを書き始める前に必要最低限の知識をまとめた。
とは言ってもある程度、AlexaやGoogleAssistantと被っていたのでわかりやすかった。
Alexaと比較して説明するところが多いいですが、ご了承ください。
スキル(Extension)とは
おなじみ、Alexaのスキルに位置するもの。GoogleAssistantならアクション。
色々呼び方があるが、私はAmazonと統一させたいのでスキル
と呼ぶことにした。
ちなみに、呼び方は
- スキル
- Extnsion
- Clova Extension
の3つあるらしい。
CEK(Clova Extensions Kit)とは
CEKとは、Clova Extension(Extensionまたは、スキル)を開発および公開する時に必要なツールと、インターフェイスを提供するプラットフォーム
つまり、スキルを開発するところ。
Alexaでいう、ASK(Alexa Skills Kit)に該当する。
スキルの種類
現在、サードパーティーで開発できるスキルの種類は以下の2つ。
- Custom Extension(カスタムスキル)
- Clova Home Extension(ホームスキル)
まだ、ブラッシュブリーフィング的なのは存在しないっぽい。
スキルストア
開発したスキルが公開されたとき、一般のユーザーがそのスキルを見ることができるページ。
呼び出し名、インテント、スロット
ここからは説明の為にも一つのスキル(占い君
)を例に説明していく。
占い君の会話は以下の様な感じだ。
ユーザー: 「Clova、占い君を開いて」
Clova: 「あなたの星座を教えてください」
ユーザー: 「私の星座は魚座です。」
Clova: 「魚座ですね。魚座の今日の運勢は○○です。」(スキル終了)
この会話で、スキル開発で重要な「呼び出し名」「インテント」「スロット」について説明する。
呼び出し名
呼び出し名とは、スキルを起動するのに必要な名前。
「Clova、占い君を開いて」において「占い君」の部分に相当する。
「(呼び出し名)を開いて」でスキルを起動する。
ちなみにスキル名という概念もあって、こちらはスキルストアで表示される名前であり、呼び出し名と同じである必要はない。
ただ全く違うとユーザーとして混乱するので同じか似ているものが望ましい。と思う。
インテント
「私の星座は魚座です。」の部分に相当する。
ユーザーが発話した内容が何を意味するかを取得するのに必要となる。
今回はDivinationIntent
などと名前をつける。
スロット
「魚座」の部分に相当する。
プログラミングでいう、変数みたいなもの。
今回の発話例には「魚座」を用いたが、星座は人それぞれ違うのでユーザーによって変わってくる。
インテントで、
私の星座は蟹座です。
私の星座はふたご座です。
...
と、全て定義するのは面倒。
なので、星座の部分はスロットとして別で定義してインテントの中に入れてあげる。
今回はconstellation
と名前をつける。
値は
ふたご座
蟹座
魚座
乙女座
etc
と、定義しておく。
以上が前提知識である。
次の記事で、実際にスキル登録からインテント、スロットの登録までやってみる。
[入門]Clovaスキル(CEK)は作りながら覚えて行く(インテント、スロットなど登録編)