[入門]Clovaスキル(CEK)は作りながら覚えて行く（インテント、スロットなど登録編）

# この記事で書いてあること

先日CEKの一般公開を期に、`CEK + Lambda + API Gateway`を実践してみました。
この記事を一通りやると、簡単なClovaスキルが作成できるようになります。


| No|タイトル|
|------------------|--------------------------------------|
|1|[[入門]Clovaスキル(CEK)は作りながら覚えて行く（前提知識編）](https://qiita.com/imajoriri/items/8d511cdfde8cb731ff82)|
|2|[[入門]Clovaスキル(CEK)は作りながら覚えて行く（インテント、スロットなど登録編）<<今ここ](https://qiita.com/imajoriri/items/604ff74c4e81859771e2)|
|3|[[入門]Clovaスキル(CEK)は作りながら覚えて行く（Lambda使ってコード実装変）](https://qiita.com/imajoriri/items/357026af6b0de0dfe330)|
|4|[[入門]Clovaスキル(CEK)は作りながら覚えて行く（signature検証編）](https://qiita.com/imajoriri/items/92d8a2906e554f43b2a5)|
|番外編|[公式SDKを使ってLambdaで開発した記事を書いてみました](https://qiita.com/imajoriri/items/0ef7aba9fea1f2d6ea1c)|

今回は、スキル登録、インテントやスロットの登録までを書いて行く。
***前回の記事では、作って行くスキルを「占い君」としましたが、大人の事情で（僕まだ子供ですが）「ほげほげ占い」に変えました。***

# スキル登録まで

まずは新規スキルを登録して行く。
以下のURLからスキル設定画面に行く。(ログインしてない場合はログイン画面に移動する)

https://clova-developers.line.me/cek/#/list

`LINE Developersでスキルチャネルを新規作成`ボタンから新規チャネル作成画面に行く。

`新規プロバイダー作成`を選択し、`Tester`(好きな名前)を入力して「次のページ」を押す。
***すでにプロバイダーがある場合は既存のものでもOK***

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3139353838322f35353966633034652d303866332d393436372d653631392d3061396130383862613238652e706e67-2.png](https://qiita-image-store.s3.amazonaws.com/0/195882/9bc581ff-4b3c-86cd-62a0-0a862fe74621.png)


チャネル名に`ほげほげ占い`を入力して、「入力内容を確認する」を押す。

<img width="1154" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3139353838322f38303364313665662d393032312d323366652d613437332d6566656138646634333663342e706e67.png" src="https://qiita-image-store.s3.amazonaws.com/0/195882/b8efb5ea-2486-9e9c-6605-9af872c674e7.png">

入力画面に問題がなければ、「作成してClova Developer Centerに移動」を押す。

<img width="1174" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3139353838322f31623032633634352d663538382d653231342d653033362d3662626334303562363837632e706e67.png" src="https://qiita-image-store.s3.amazonaws.com/0/195882/7316f9b9-b54b-4f4f-0c50-ee2e381637be.png">


すると、基本設定画面に移動するので、以下の様に入力。
色々同意ボタンをクリックして「作成」を押す。

* タイプ: カスタム
* Extension ID: jp.co.tekito(公開しないんで、適当にしてしまいました。お好きに変更してください。)
* スキル名: ほげほげ占い
* 呼び出し名: ほげほげ占い
* 呼び出し名（サブ）: ほげほげうらない
* AudioPlayerの使用: いいえ
* 提供者について
    * 提供者区分: 個人
    * 提供者名: 自分のお名前など
    * 担当者メールアドレス: 自分のメアド
    * Extendionと連携するLINE ID: 特に選択しない

すると、なぜかもう一度基本設定画面が表示される。
画面上の方にあるナビゲーションバー的なものから、「サーバー設定」と「配布情報」をすっ飛ばして「個人情報の保護および同意」をクリックする。

<img width="1306" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3139353838322f36613631333230612d656236392d636530392d613963642d3130386439396461373934322e706e67.png" src="https://qiita-image-store.s3.amazonaws.com/0/195882/1220768e-7fee-3bdb-22f0-ad7a177cf1d9.png">


ここら辺は、スキルを公開する時に必要な情報なのだが今回は公開しないので、またまたすっ飛ばして画面下の「対話モデル」をクリックする。

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3139353838322f36346264643738642d326536322d373430362d656431322d3936383161343733396230382e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/195882/b4621b65-6236-df07-50de-94e467d6ba17.png)

すると、新規画面で対話モデルのダッシュボードが開かれる。
このページでインテントとかスロットを定義して行く。

# slots登録

画面左の「カスタムスロット」のすぐ右のプラスボタンを押して「スロットの追加画面」へいく。
スロット名に`constellation`を入力して「作成」ボタンを押す。
スロットタイプの辞書欄に、以下の3つのスロットの値を書いて行く。

```
魚座
蟹座
ふたご座
```

右上の「保存」から保存する。
***とりあえず、3つ入力したがあとで追加もできる。***

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3139353838322f62316334316461312d373231622d636237382d393830342d6632353366653265313764352e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/195882/6b9c5ce2-a053-71e1-efe0-23df21215cb6.png)

# インテント登録

画面左の「カスタムインテント」のすぐ右のプラスボタンを押して「インテントの追加画面」へいく。
インテント名に`DivinationIntent`を入力して、「作成」ボタンをクリック。

次に、サンプル発話（想定されるユーザーが喋る文）を定義して行くのだが、とりあえず1つ定義してみる。

サンプル発話リストの入力欄に以下を入力して、エンターを押す。

```
私の星座は魚座です
```

すると以下の様な画面になる。

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3139353838322f65346234363964642d303563622d643661642d386565302d3738303861666539636530612e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/195882/4e91d436-a32c-e404-b149-d9c3b5a37eb5.png)

次に「魚座」の部分を先ほど定義した`constellation`スロットと紐付ける。
そのためには、まず入力したサンプル発話の「魚座」の部分をカーソルで選択してあげる。
すると、スロット名入力欄が出てくるので、`constellation`を入力してあげる。

![スクリーンショット 2018-07-12 23.48.36.png](https://qiita-image-store.s3.amazonaws.com/0/195882/7f2aca16-b8f8-e454-76c0-fe59b0e28c59.png)

すぐ下に、スロットが追加されるのでスロットタイプより先ほど作成した`constellation`を選択する。

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3139353838322f38373563313536632d363338352d633533612d633065322d6465666133613036376566622e706e67-2.png](https://qiita-image-store.s3.amazonaws.com/0/195882/6560cedc-0e66-cb9a-d57c-da663e295e7e.png)

画面右上の「保存」より保存しておく。
同様の手順で、以下のサンプル発話も登録し、保存する。（ただし、スロットの紐付けは「新しいスロットに名前をつける」のではなく「登録されたスロットを選択」から`constellation`を選択する。
***本来は想定されるのを何十個も書いた方がいいのだが、数個でも動くことは動くのでこれで許してほしい。***

```
私の星座は蟹座だ
私の星座はふたご座よ
```

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3139353838322f30666633633065612d616133652d636261632d643739622d3031303064643766363862362e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/195882/c1bcc789-0731-6cfb-7745-a6511418b687.png)


最後に、画面左上の「ビルド」ボタンからビルドを実行する（数分かかるので、Clovaと話しながら待つ。）

# 画面上でのテスト

画面上でテストをしてみる。
ただし、まだLambdaで何も処理を書いていないのでちゃんとした返答は帰ってこない。

画面左の、先ほどのビルドボタンのすぐ下あたりにある「テスト」ボタンをクリックする。
すると、ユーザーのサンプル発話をテストできるページが表示されるので`私の星座は魚座です。`を入力しエンターを押す。

すると、すぐ下にテスト結果が帰ってくる。
ここで先ほど定義したインテントやスロットがちゃんと認識されているのを確認できる。

![スクリーンショット 2018-07-13 10.43.00.png](https://qiita-image-store.s3.amazonaws.com/0/195882/e7b3f028-4397-c489-bf2c-c7d4452124ee.png)


サービスの応答部分が`応答がありません。 (undefined)`とあるが、ここが本来Clovaが喋る部分である。

これで、インテント、スロットの登録は完了!!
それでは、次にLambdaで今登録したインテント、スロットを解析しながらClovaに喋らす内容をNode.jsで書いて行く。

次は、Lambdaを使って実際にコードを書いていきます。
[[入門]Clovaスキル(CEK)は作りながら覚えて行く（Lambda使ってコード実装変）](https://qiita.com/imajoriri/items/357026af6b0de0dfe330)