Extensionを登録する

LINE Developersコンソールでチャネルを作成すると、CLOVA Developer Center β に遷移し、次の画面が開きます。ここで必要な情報を入力し、Extensionの登録を完了させます。

Extensionの登録は、通常、次の順で行われます。

  1. 利用規約およびLINE User Data Policyに同意する
  2. Extensionの基本情報を入力する
  3. 対話モデルを登録する
    • ビルトインスロットタイプを追加する
    • カスタムスロットタイプを追加する
    • ビルトインインテントを追加する
    • カスタムインテントを追加する
  4. 開発設定を行う
    • サーバー設定を行う
    • アカウント連携を設定する
  5. ユーザー設定を行う
    • スキルストアの情報を入力する
    • 個人情報の保護および規約の設定を行う

利用規約およびLINE User Data Policyに同意する

Extensionを登録するには、CLOVA Extensions Kit利用規約とLINE User Data Policyに同意する必要があります。それぞれの項目にチェックを入れ、スキル開発を始める をクリックします。

Extensionの基本情報を入力する

Extensionを登録する最初のステップは、登録するExtensionの基本情報を入力することです。 Extensionの基本情報は、CLOVA Developer CenterでExtensionを作成するための必須で最小限の情報です。Extensionの基本情報を入力し作成ボタンを押下すると、スキル設定画面の登録済みスキルに表示されるようになります。ここで入力した情報は、Extension ID以外は修正可能です。

次の順でExtensionの各項目を登録します。

  1. 次の項目を入力します。
    1. Extension ID:Extensionの一意のIDです。リバースドメインネームの形式で入力します。(例:com.example.myservice)
    2. スキル名:Extensionの名前です。スキルストアに正式名称として表示されます。
    3. スキル名 (音声読み上げ):CLOVAがスキルの名称を音声で読み上げるときに使用する項目で、CLOVAがスキル名を正しく読み上げられない際に設定します。「生物(せいぶつ/なまもの)」や「1日(ついたち/いちにち)」のように読み方が複数ある場合や、アルファベット表記のよみがなを指定したい場合などに、ひらがな等を入力することで、スキルストアの画面上の表記を変更することなく、開発者の意図通りに発音させることができます。
    4. 呼び出し名(メイン):ユーザーがExtensionを呼び出す際に呼ぶ名前です。保有しているサービス、会社および組織の名前を使用できますが、ユーザーにとって呼びやすい、シンプルな言葉を指定することをお勧めします。他社の名前やサービスに該当する言葉は使用できません。
    5. 呼び出し名(サブ):呼び出し名(メイン)は音声認識結果によって表記がゆらぐ可能性があります。Extensionを正しく呼び出すために、必須項目の呼び出し名(メイン)のほか、追加で4つの呼び出し名(サブ)を設定することができます。スキルを起動しやすくするための適切な呼び出し名(サブ)を設定する方法については、こちらを参照してください。
  2. Extensionの基本情報をすべて入力したら、作成ボタンをクリックします。

Extensionの登録が完了すると、作成されたExtensionの情報を編集する画面に切り替わります。ページの下にある 保存 ボタンをクリックして、入力中の内容を保存することができます。次へ をクリックすると、対話モデルの登録画面に遷移します。

またExtensionの登録が完了すると、CEKのメニューで、登録済みのExtensionのリストを確認することもできます。各Extensionの 管理 項目の 編集 をクリックすると、基本情報 の登録画面に遷移します。

メモ

呼び出し名(メイン)や呼び出し名(サブ)が反映されるまでに数分時間がかかる場合があります。

対話モデルを登録する

CEKがExtensionにユーザーのリクエストを送る際、ユーザーの発話をどう解析し、どんな形式で送るかを決めるために、あらかじめ対話モデルを定義する必要があります。対話モデルは、Custom Extensionに渡されるリクエストを標準化したスキーマです。

対話モデルを登録するには、左メニューの 対話モデル をクリックします。

対話モデルを編集する ボタンをクリックすると、対話モデル:ダッシュボード 画面が表示されます。

Extensionを設計するための対話モデルは、次の順で登録していきます。

  1. ビルトインスロットタイプを追加する
  2. カスタムスロットタイプを追加する
  3. ビルトインインテントを追加する
  4. カスタムインテントを追加する

メモ

カスタムインテントを追加してから必要なスロットタイプを追加することもできますが、CLOVA Developer Centerの提供するUIの特性上、先にスロットタイプを追加してからインテントを追加することをお勧めします。

ビルトインスロットタイプを追加する

サービスを提供するExtensionがどのビルトインスロットタイプを使用するか決めたら、そのExtensionの対話モデルにビルトインスロットタイプを追加する必要があります。例えば、ピザの宅配Extensionを作成する場合、ユーザーの発話に、ピザの数量に関する情報の表現が含まれることが予想されます。従って、この場合は数量に関するビルトインスロットタイプを使用する必要があり、次の手順でExtensionに追加します。

  1. 登録済みのスロットタイプパネル、または左側のサイドメニューの登録済みのスロットタイプ内にあるビルトインスロットタイプの右に表示されたボタンをクリックします。
  2. 使用したいビルトインスロットタイプのカテゴリーをクリックします。
  3. リストが展開されたら、必要なビルトインスロットタイプにチェックを入れ、ウィンドウ右上の保存ボタンをクリックします。

すると、対話モデル:ダッシュボード 画面の 登録済みのスロットタイプ パネルに、次のようにビルトインスロットタイプが追加されたことを確認できます。

カスタムスロットタイプを追加する

次に、Extensionで使用するカスタムスロットタイプを定義します。ビルトインスロットタイプを追加する時と同様に、ピザの宅配Extensionを作成すると仮定します。この場合、ユーザーの発話の中で、ピザの種類に当たる部分をカスタムスロットタイプとして定義することができます。以下の表のような代表語と同義語を持つ、「PIZZA_TYPE」というカスタムスロットタイプを追加してみます。

代表語 同義語
ペパロニ ペパロニピザ
バーベキュー バーベキューピザ、BBQピザ
チーズ チーズピザ
野菜 野菜ピザ、ベジピザ、ベジタリアンピザ
シュリンプゴールドクラスト シュリンプゴールドクラストピザ、シュリンプゴルクラピザ、シュリンプゴルクラ

次の順でカスタムスロットタイプを追加します。

  1. 登録済みのスロットタイプパネル、または左側のサイドメニューの登録済みのスロットタイプ内にあるカスタムスロットタイプの右に表示されたボタンをクリックします。
  2. 新しいスロットタイプのタイトルの入力フィールドに、追加するカスタムスロットタイプの名前を入力し、作成ボタンをクリックします。カスタムスロットタイプが生成されると、そのカスタムスロットタイプの詳細を確認できる画面が表示されます。
  3. スロットタイプの辞書の入力フィールドに代表語を入力し、ボタンをクリックして代表語を追加します。
  4. 追加した代表語に、同義語や類義語を追加します。
  5. 最後に、右上の保存ボタンをクリックします。

右のダッシュボードメニューで対話モデル:ダッシュボード に移動すると、カスタムスロットタイプが追加されたことを確認できます。

定義するカスタムスロットタイプに大量の情報を入力する必要がある場合、TSV(タブ区切りの値、.tsv)形式のファイルをアップロードすることもできます。TSVファイルの各行の1番目の値が代表語となります。それに続くタブ区切りの値は、その代表語の同義語または類義語になります。次は、「PIZZA_TYPE」というカスタムスロットタイプの定義を、TSV形式で表現したものです。

ペパロニ             ペパロニピザ
バーベキュー          バーベキューピザ      BBQピザ
チーズ         チーズピザ
野菜            野菜ピザ        ベジピザ        ベジタリアンピザ
シュリンプゴールドクラスト  シュリンプゴールドクラストピザ  シュリンプゴルクラピザ  シュリンプゴルクラ

CLOVA Developer Centerには、以下のように アップロード ボタンと ダウンロード ボタンがあります。アップロード ボタンをクリックすると、あらかじめTSVファイルで定義したカスタムスロットタイプをアップロードできます。ダウンロード ボタンをクリックすると、現在作成中のカスタムスロットタイプをTSV形式でダウンロードできます。

現在、1つのスロットタイプ毎に、代表語と同義語を合わせて20万件登録することが可能です。TSVファイルをアップロードする場合、登録できる件数は同様に20万件となります。

メモ

すでにカスタムスロットタイプに辞書が登録されている状態でTSVファイルをアップロードすると、既存のデータが削除され、TSVファイルのデータに置き換えられます。既存データを削除しないようにするには、事前に既存データをダウンロードし、追加分と合わせたTSVファイルを作成してアップロードしてください。

ビルトインインテントを追加する

CLOVAプラットフォームでは共通したユーザーリクエストのカテゴリを決め、それを共有して利用するためにビルトインインテントが提供されています。例えば、頻繁に発生すると予想されるユーザーの肯定・否定の返事や、キャンセルなどのリクエストを、インテントとしてあらかじめ定義したものです。 ビルトインインテントは次の手順でExtensionに追加します。

  1. 登録済みのインテントパネル、または左側のサイドメニューの登録済みのインテント内にあるビルトインインテントの右に表示されたボタンをクリックします。
  2. 必要なビルトインインテントにチェックを入れ、右上の保存ボタンをクリックします。

デフォルトで選択されているビルトインインテントは以下のとおりです。

すべてのExtensionは、Clova.GuideIntent に対応する必要があります。それ以外のビルトインインテントについては、必要に応じて選択し対応してください。

メモ

今後、Extensionごとに必要なビルトインインテントのみ使用できるように変更される予定です。

カスタムインテントを追加する

Extensionが使用するビルトインスロットタイプとカスタムスロットタイプを追加したら、次はカスタムインテントを追加します。続けて、ピザを注文するユーザーのリクエストを仮定します。次の順で「OrderPizza」という名前のインテントを追加します。

  1. 登録済みのインテントパネルか、左側のサイドメニューの登録済みのインテントメニュー内のカスタムインテントの右に表示されたボタンをクリックします。
  2. 新規のカスタムインテントを作成の入力フィールドに、追加するカスタムインテントの名前を入力し、作成ボタンをクリックします。カスタムインテントが生成されると、そのカスタムインテントの詳細を確認する画面が表示されます。
  3. スロットリストの入力フィールドに、追加するスロットの名前を入力し、右のボタンをクリックしてスロットを追加します。
  4. スロットを追加し、そのスロットのタイプを指定します。
  5. 次に、サンプル発話リストにサンプル発話を入力し、右のボタンをクリックしてそのサンプル発話を追加します。
  6. 追加したサンプル発話で、スロットとして処理される部分をドラッグしてスロットを指定します。
  7. ステップ5、6を繰り返して、インテントにサンプル発話を必要なだけ追加します。
  8. 最後に、右上の保存ボタンをクリックします。

メモ

スロットタイプとスロット名は、集合の名前、または複数の値を代入できるような抽象的な名前である必要があります。

現在、登録できるサンプル発話の上限は、1つのインテントあたり2000件です。ただし、単純にサンプル発話の登録件数が多いほど認識率が上がるというものではなく、例えばスロットの値は同じで語尾だけ変化させたサンプル発話を多数登録した場合は、逆にパフォーマンスが低下することがあります。 サンプル発話を作成する際の注意点については、サンプル発話を参照してください。

カスタムスロットタイプと同じく、TSV(タブ区切りの値、.tsv)形式のファイルをアップロードして定義することもできます。TSVファイルは、インテントのスロットを定義する部分と、サンプル発話を列挙する部分の2つに分けられます。インテントのスロット定義がファイルの先頭にあり、[INTENT SLOT]ヘッダの次の行でスロットが列挙されます。タブで区切られた最初の列はインテントで使用されるスロットの名前で、2番目の列はスロットタイプです。

インテントのサンプル発話の列挙がそれに続きます。[INTENT EXPRESSION]ヘッダの次の行でサンプル発話が列挙されます。サンプル発話でスロットを区別するためには、該当する表現をスロット名のタグで囲う必要があります。以下は、インテントを定義したTSVファイルの例です。

[INTENT SLOT]
pizzaType	PIZZA_TYPE
pizzaAmount	CLOVA.NUMBER

[INTENT EXPRESSION]
<pizzaType>ペパロニ</pizzaType><pizzaAmount>2枚</pizzaAmount>注文して。
<pizzaType>BBQピザ</pizzaType><pizzaAmount>2枚</pizzaAmount>出前取ってくれる?
<pizzaType>コンビネーションピザ</pizzaType><pizzaAmount>2つ</pizzaAmount>頼んで。
<pizzaType>シュリンプゴルクラ</pizzaType><pizzaAmount>1個</pizzaAmount>お願い。
...

CLOVA Developer Centerは、以下のようにアップロードボタンとダウンロードボタンが利用可能です。アップロード ボタンをクリックすると、あらかじめTSVファイルで定義したカスタムインテントをアップロードできます。ダウンロード ボタンをクリックすると、現在作成しているカスタムインテントをTSV形式でダウンロードできます。

メモ

すでにサンプル発話が登録されている状態でTSVファイルをアップロードすると、既存のデータが削除され、TSVファイルのデータに置き換えられます。既存データを削除しないようにするには、事前に既存データをダウンロードし、追加分と合わせたTSVファイルを作成してアップロードしてください。

注意

1つの対話モデルでは、インテントに関わらず、スロットタイプに同じ名前を宣言することをお勧めします。例えば、「OrderPizza」インテントで、ピザの種類(「PIZZA_TYPE」)に関するスロット名を「pizzaType」にしたとすると、他のインテントで同じスロットタイプを宣言する際、同じく「pizzaType」にする必要があります。ただし、「東京から大阪まで時間がどれぐらいかかるか教えて」のように、「東京」と「大阪」が同じスロットタイプであっても、目的によって区別される必要のある場合、スロット名を区別して作成します。

これまで、1つのインテントを対話モデルに追加する方法を説明しました。この方法を繰り返し、Extensionに必要なインテントを追加していくことで対話モデルが完成されます。

開発設定を行う

CLOVA Developer CenterでExtensionを登録すると、サーバーやアカウント連携に関する設定が可能になります。 左メニューから 開発設定 を選択してください。

開発設定では次の項目を設定します。

  • サーバー設定を行う
  • アカウント連携を設定する

サーバー設定を行う

ExtensionはCEKとHTTPSで通信します。その際、CEKはExtensionにHTTPリクエストを送り、ExtensionはCEKにHTTPレスポンスを返します。CEKがExtensionにHTTPリクエストを送るためには、CLOVA Developer Centerでサーバーとの連携を設定する必要があります。Extensionの基本情報を入力すると、作成されたExtensionに対し、サーバーとの連携を設定できます。

Extensionのサーバーを登録するには、先にExtensionのサーバーと通信できるか確認する必要があります。次の例のように、簡単なcurlコマンドで通信状況を確認できます。

$ curl "https://example.com/pizzabot" -X POST

次の順でサーバー設定を行います。

  1. サーバー設定をクリックします。
  2. ExtensionサーバーのURL(エンドポイント)をExtensionサーバーのURL項目に入力します。

    メモ

    Extensionのサーバーは、HTTPSのみ許可されます。HTTPSで443ポートに設定してください。

  3. ExtensionがAudioPlayerを使用する場合は、AudioPlayer利用の有無項目ではいを選択を選択します。
  4. 保存ボタンをクリックして、入力した内容を保存します。次へをクリックすると、アカウント連携の設定画面に遷移します。

アカウント連携を設定する

Extensionが提供するサービスのアカウントが、CLOVAのユーザーアカウントとの連携を必要とする場合、サーバーとの連携を設定するの内、アカウント連携に関連情報を入力します。

次の順で、アカウント連携の設定に必要な情報を入力します。

  1. アカウント連携をクリックします。
  2. Extensionが提供するサービスのアカウントが、CLOVAのユーザーアカウントとの連携を必要とする場合、アカウント連携の有無項目ではいを選択します。アカウント連携の詳細については、アカウント連携を設定するを参照してください。
  3. ユーザーにアカウント認証UIを提供する認証URLを、ログインURL項目に入力します。ユーザーがExtensionをアクティブにすると、このページに移動します。
  4. ユーザーが自身のアカウントを即座に設定できるようにする場合には、アカウント設定ページのURL(任意)項目にアカウント設定ページのURLを入力します。
  5. プライバシーポリシーのURL項目に、Extensionが提供するサービスのプライバシーポリシーが提供されるURLを入力します。このページの内容は、後ほどストアで表示されます。
  6. ログインURLまたはプライバシーポリシーのURLで提供するページが別のドメインから必要なリソースを読み込む場合、ドメインリスト(任意)項目に必要なドメインを追加します。
  7. アカウント連携の際に発行されるアクセストークンのスコープをあらかじめ定義している場合、権限の範囲(任意)項目に定義したスコープを追加します。
  8. 現在、許可付与タイプ(任意)は認可コード承認のみサポートしています。
  9. アクセストークンURI項目に、サービスのアクセストークンを発行できるURLを入力します。
  10. アクセストークン再発行URI(任意)項目に、サービスのアクセストークンを更新できるURLを入力します。
  11. ユーザーアカウント認証を行う際、HTTPリクエストに必要なクライアントIDを入力します。クライアントIDは、認証サーバーを構築する際に生成した値です。
  12. サービスのアクセストークンを取得した後、HTTPリクエストの送信に必要なクライアントシークレットを入力します。クライアントシークレットは、認証サーバーを構築する際に生成した値です。
  13. クライアントの資格情報の転送方式(任意)は、次のうち認可サーバーのインターフェースの実装に適した値を設定します。
    • HTTP Basic(Recommended):サービスのアクセストークンを取得するために、資格情報がヘッダーに入力される場合
    • Credentials in request body:サービスのアクセストークンを取得するため、資格情報がボディーに入力される場合
  14. 保存ボタンをクリックして、入力した内容を保存します。次へをクリックすると、ユーザー設定画面に遷移します。

メモ

アカウント認証を済ませた後、クライアントがリダイレクトされるURLはhttps://clova-cic.line-apps.com/v1/al/token/で、リダイレクトURL項目で確認できます。

ユーザー設定を行う

CLOVA Developer CenterでExtensionを登録すると、CLOVAアプリの スキルストア に表示する情報の入力が可能になります。 左メニューから ユーザー設定 を選択してください。

ユーザー設定では次の項目を設定します。

  • スキルストア
  • 個人情報の保護および規約

スキルストアの情報を入力する

Extensionをユーザーに説明するための情報として、CLOVAアプリの スキルストア でユーザーに提供されます。次の順で情報を入力します。

  1. カテゴリ:Extensionのカテゴリです。ユーザーがカテゴリごとにExtensionを探したり、検索する際に利用されます。(今後サービス予定)
  2. サービスを提供する国および地域:現在、日本でのみExtensionを配布できます。
  1. スキルの説明(スキルストア表示):Extensionページ でユーザーに提供するExtensionの説明です。案内に従って作成します。
  2. 代表サンプル発話:ユーザーがExtensionをどのように使用できるかを示す例です。Extensionページ に表示されます。なお、1番目の例は スキルストアホーム にも表示されるため、「〜を起動して」「〜を開いて」など、スキルを起動するフレーズを含めて登録してください。(例:ねぇCLOVA、ピザボットを起動して)
  3. 検索キーワード(任意):ユーザーが特定のキーワードでExtensionを検索する際に、その検索結果にExtensionが含まれるように設定します(カンマ区切りで5つまで登録可能)。スキルストアの検索機能の検索対象になります。
  4. アイコン:スキルストアおよびCLOVAアプリで表示されるExtensionのアイコンファイルです。512x512ピクセルの円形もしくは正方形で作成してください。
  5. 対象デバイス : Extensionが動作するCLOVAデバイスを選択します。チェックを外したデバイスからはスキルを呼び出すことができません。
  6. 保存 ボタンをクリックして、入力した内容を保存します。次へ をクリックすると、個人情報の保護および規約同意の設定画面に遷移します。

このように入力された情報は、CLOVAアプリの スキルストア で次のように表示されます。

スキルストアホーム Extensionページ
Extension List Extension Details

メモ

Extensionページに表示される一部の情報には、登録されているExtensionの基本情報が使用されます。

個人情報の保護および規約の設定を行う

Extensionの配布に必要な情報を入力する最後の段階です。プライバシーポリシーおよびコンプライアンス関連の情報を入力します。Extensionの登録メニューで 個人情報の保護および規約同意 を選択します。

次のように情報を入力します。

  1. 購入/支払い機能はありますか?:Extensionを使用する際、ユーザーが決済をしたり支払いをする場面がある場合、はい を選択します。
  2. 個人情報を取得しますか?:Extensionがユーザーの個人情報を取得する場合、はい を選択します。
  3. プライバシーポリシーのURL:Extensionが個人情報を取得する場合、それに関するプライバシーポリシーを提供するページを入力します。Extension説明ページの一番下に表示されます。
  4. 利用規約のURL:Extensionに関する免責条項を提供するページのURLを入力します。プライバシーポリシーのURLと同じく、Extension説明ページの一番下に表示されます。
  5. 保存 ボタンをクリックして、入力した内容を保存します。次へ をクリックすると、テスト画面に遷移します。

プライバシーポリシーのURL と 利用規約のURL に入力された内容は、Extensionページ で次のように表示されます。