LINE Developersコンソールでチャネルを作成すると、CLOVA Developer Center β に遷移し、次の画面が開きます。ここで必要な情報を入力し、Extensionの登録を完了させます。
Extensionの登録は、通常、次の順で行われます。
Extensionを登録するには、CLOVA Extensions Kit利用規約とLINE User Data Policyに同意する必要があります。それぞれの項目にチェックを入れ、スキル開発を始める をクリックします。
Extensionを登録する最初のステップは、登録するExtensionの基本情報を入力することです。 Extensionの基本情報は、CLOVA Developer CenterでExtensionを作成するための必須で最小限の情報です。Extensionの基本情報を入力し作成ボタンを押下すると、スキル設定画面の登録済みスキルに表示されるようになります。ここで入力した情報は、Extension ID以外は修正可能です。
次の順でExtensionの各項目を登録します。
Extensionの登録が完了すると、作成されたExtensionの情報を編集する画面に切り替わります。ページの下にある 保存 ボタンをクリックして、入力中の内容を保存することができます。次へ をクリックすると、対話モデルの登録画面に遷移します。
またExtensionの登録が完了すると、CEKのメニューで、登録済みのExtensionのリストを確認することもできます。各Extensionの 管理 項目の 編集 をクリックすると、基本情報 の登録画面に遷移します。
メモ
呼び出し名(メイン)や呼び出し名(サブ)が反映されるまでに数分時間がかかる場合があります。
CEKがExtensionにユーザーのリクエストを送る際、ユーザーの発話をどう解析し、どんな形式で送るかを決めるために、あらかじめ対話モデルを定義する必要があります。対話モデルは、Custom Extensionに渡されるリクエストを標準化したスキーマです。
対話モデルを登録するには、左メニューの 対話モデル をクリックします。
対話モデルを編集する ボタンをクリックすると、対話モデル:ダッシュボード 画面が表示されます。
Extensionを設計するための対話モデルは、次の順で登録していきます。
メモ
カスタムインテントを追加してから必要なスロットタイプを追加することもできますが、CLOVA Developer Centerの提供するUIの特性上、先にスロットタイプを追加してからインテントを追加することをお勧めします。
サービスを提供するExtensionがどのビルトインスロットタイプを使用するか決めたら、そのExtensionの対話モデルにビルトインスロットタイプを追加する必要があります。例えば、ピザの宅配Extensionを作成する場合、ユーザーの発話に、ピザの数量に関する情報の表現が含まれることが予想されます。従って、この場合は数量に関するビルトインスロットタイプを使用する必要があり、次の手順でExtensionに追加します。
すると、対話モデル:ダッシュボード 画面の 登録済みのスロットタイプ パネルに、次のようにビルトインスロットタイプが追加されたことを確認できます。
次に、Extensionで使用するカスタムスロットタイプを定義します。ビルトインスロットタイプを追加する時と同様に、ピザの宅配Extensionを作成すると仮定します。この場合、ユーザーの発話の中で、ピザの種類に当たる部分をカスタムスロットタイプとして定義することができます。以下の表のような代表語と同義語を持つ、「PIZZA_TYPE」というカスタムスロットタイプを追加してみます。
代表語 | 同義語 |
---|---|
ペパロニ | ペパロニピザ |
バーベキュー | バーベキューピザ、BBQピザ |
チーズ | チーズピザ |
野菜 | 野菜ピザ、ベジピザ、ベジタリアンピザ |
シュリンプゴールドクラスト | シュリンプゴールドクラストピザ、シュリンプゴルクラピザ、シュリンプゴルクラ |
次の順でカスタムスロットタイプを追加します。
右のダッシュボードメニューで対話モデル:ダッシュボード に移動すると、カスタムスロットタイプが追加されたことを確認できます。
定義するカスタムスロットタイプに大量の情報を入力する必要がある場合、TSV(タブ区切りの値、.tsv)形式のファイルをアップロードすることもできます。TSVファイルの各行の1番目の値が代表語となります。それに続くタブ区切りの値は、その代表語の同義語または類義語になります。次は、「PIZZA_TYPE」というカスタムスロットタイプの定義を、TSV形式で表現したものです。
ペパロニ ペパロニピザ
バーベキュー バーベキューピザ BBQピザ
チーズ チーズピザ
野菜 野菜ピザ ベジピザ ベジタリアンピザ
シュリンプゴールドクラスト シュリンプゴールドクラストピザ シュリンプゴルクラピザ シュリンプゴルクラ
CLOVA Developer Centerには、以下のように アップロード ボタンと ダウンロード ボタンがあります。アップロード ボタンをクリックすると、あらかじめTSVファイルで定義したカスタムスロットタイプをアップロードできます。ダウンロード ボタンをクリックすると、現在作成中のカスタムスロットタイプをTSV形式でダウンロードできます。
現在、1つのスロットタイプ毎に、代表語と同義語を合わせて20万件登録することが可能です。TSVファイルをアップロードする場合、登録できる件数は同様に20万件となります。
メモ
すでにカスタムスロットタイプに辞書が登録されている状態でTSVファイルをアップロードすると、既存のデータが削除され、TSVファイルのデータに置き換えられます。既存データを削除しないようにするには、事前に既存データをダウンロードし、追加分と合わせたTSVファイルを作成してアップロードしてください。
CLOVAプラットフォームでは共通したユーザーリクエストのカテゴリを決め、それを共有して利用するためにビルトインインテントが提供されています。例えば、頻繁に発生すると予想されるユーザーの肯定・否定の返事や、キャンセルなどのリクエストを、インテントとしてあらかじめ定義したものです。 ビルトインインテントは次の手順でExtensionに追加します。
デフォルトで選択されているビルトインインテントは以下のとおりです。
すべてのExtensionは、Clova.GuideIntent に対応する必要があります。それ以外のビルトインインテントについては、必要に応じて選択し対応してください。
メモ
今後、Extensionごとに必要なビルトインインテントのみ使用できるように変更される予定です。
Extensionが使用するビルトインスロットタイプとカスタムスロットタイプを追加したら、次はカスタムインテントを追加します。続けて、ピザを注文するユーザーのリクエストを仮定します。次の順で「OrderPizza」という名前のインテントを追加します。
メモ
スロットタイプとスロット名は、集合の名前、または複数の値を代入できるような抽象的な名前である必要があります。
現在、登録できるサンプル発話の上限は、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
次の順でサーバー設定を行います。
メモ
Extensionのサーバーは、HTTPSのみ許可されます。HTTPSで443ポートに設定してください。
Extensionが提供するサービスのアカウントが、CLOVAのユーザーアカウントとの連携を必要とする場合、サーバーとの連携を設定するの内、アカウント連携に関連情報を入力します。
次の順で、アカウント連携の設定に必要な情報を入力します。
メモ
アカウント認証を済ませた後、クライアントがリダイレクトされるURLはhttps://clova-cic.line-apps.com/v1/al/token/
で、リダイレクトURL項目で確認できます。
CLOVA Developer CenterでExtensionを登録すると、CLOVAアプリの スキルストア に表示する情報の入力が可能になります。 左メニューから ユーザー設定 を選択してください。
ユーザー設定では次の項目を設定します。
Extensionをユーザーに説明するための情報として、CLOVAアプリの スキルストア でユーザーに提供されます。次の順で情報を入力します。
このように入力された情報は、CLOVAアプリの スキルストア で次のように表示されます。
スキルストアホーム | Extensionページ |
---|---|
![]() |
![]() |
メモ
Extensionページに表示される一部の情報には、登録されているExtensionの基本情報が使用されます。
Extensionの配布に必要な情報を入力する最後の段階です。プライバシーポリシーおよびコンプライアンス関連の情報を入力します。Extensionの登録メニューで 個人情報の保護および規約同意 を選択します。
次のように情報を入力します。
プライバシーポリシーのURL と 利用規約のURL に入力された内容は、Extensionページ で次のように表示されます。