マンガでわかるLINE Clova開発 第3話「対話モデルを作ろう」
今回から、「健康運 占って」と話しかけると「占いの結果は大吉です」と答えるような、対話モデルを作っていきます!
(アイキャッチイラスト:湊川あい/マンガ・解説:ちょまど・湊川あい)
今回作るスキル
「〇〇運占って」と話しかけると、運勢を占ってくれるスキルを作ります。
1. 発話, インテント, スロット とは
Clovaの対話モデルは発話とインテントとスロットで作られます。
発話(utterance)とは、ユーザーがスマートスピーカーに何と喋りかけるかという、具体的な発言内容です。
インテント(intent)とは、ユーザーの要求、その発話の意図のことです。
スロット(slot)とは、変数部分、その発話の中のキーワードのことです。
具体的には
- 「午後3時から1時間、営業チームとの会議をセットして」という発話に対し、
- その発話のインテントは『MeetingRequestIntent』(会議室依頼)
- 『午後3時』『1時間』『営業チーム』のような変数部分は スロット
となります。
同様に、占いスキルだと
- 「ユーザーの運勢を占う」という意図のインテントを設定。
- そのユーザーの運勢を占うインテントに対する発話としては「健康運を占って」「私の恋愛運を占って」「仕事運を教えて」「全体運はどう?」などが考えられます。
- それぞれの発話からスロットを拾うと、『健康運』『恋愛運』『仕事運』『全体運』が挙げられます。
という構成になります。
2. スロットを作ろう
まずは「◯◯運」のスロットを作りましょう。
Clova Developer Centerで2話までの操作が終わると、次のような画面が表示されていると思います。
新規スロットを作るために、「カスタムスロットタイプ」の右にある【 + 】ボタンをクリックします。
▼ここでは、スロット名は「FortuneSlot」としましょう。入力して【作成】をクリックします。
▼どのような単語をスロット値として認識するか設定します。入力したら【 + 】ボタンをクリックし、単語を登録していきます。
▼話し言葉の揺れもカバーするため、想定される同義語も入力します。入力し終えたら【保存】をクリックします。
【豆知識】カスタムスロットとビルトインスロットの違い
カスタムスロットとは、今あなたが作ったスロットのことです。開発者が必要に応じて自由に作れます。ピザ宅配の例で言うと、「チーズピザ, ペパロニピザ, BBQピザ」などが、カスタムスロットで作ることになります。
一方、ビルトインスロットとは、数字や都市の名前などの、最初からLINE Clovaが用意してくれているスロットです。「"四千円", "1ドル",...」「"1秒間", "1分間", "1時間", ...」「"東京", "大阪", ...」など使われそうなものが用意されています。
ピザ宅配の例で言うと、「1枚, 2枚, 3枚……」などが、ビルトインスロットを使うことになります。
使用できるビルトインスロット一覧は公式ドキュメントに掲載されています。
3. インテントを作ろう
続いて、インテント(ユーザーの要求)を作りましょう。
▼今回、インテント名は「FortuneTellingIntent」とします。
新規インテントを作るには、メニューの「カスタムインテント」の右にある【 + 】ボタンをクリックします。
インテント名「FortuneTellingIntent」と入力して【作成】をクリックします。
▼まず、このインテント内で先ほど作ったスロットが使えるように設定します。
インテント中で使う名前(FortuneSlot)を入力し、Enterキーを押します。スロットタイプのプルダウンから、先ほど登録した「FortuneSlot」を選択します。
▼続いて、サンプル発話を登録します。
サンプル発話リストに、想定する発話の全文「健康運占って」と入力し【 + 】ボタンをクリックします。
「健康運」の部分をドラッグして選択すると、ポップアップメニューが開くので、そこからFortuneSlotを選択して登録します。
【豆知識】カスタムインテントとビルトインインテントの違い
カスタムインテントとは、今あなたが作ったインテントです。開発者が必要に応じて自由に作れます。ピザ宅配スキルの例で言えば、「OrderPizza 」インテントをカスタムインテントで作ることになります。一方、ビルトインインテントとは、頻繁に発生するという理由であらかじめ定義されているインテントです。
ビルトインインテントの例
- Clova.CancelIntent 対話キャンセルのリクエスト
(ユーザーのサンプル発話:「キャンセル」) - Clova.GuideIntent ヘルプのリクエスト
(ユーザーのサンプル発話:「使い方を教えて」) - Clova.YesIntent 肯定の返事
(ユーザーのサンプル発話:「はい」) - Clova.NoIntent 否定の返事
(ユーザーのサンプル発話:「いいえ」)
詳しくは公式ドキュメントをご参考ください。
4. ビルドしよう
以上で占いインテント・終了インテント・終了スロットの登録が完了しました。登録した設定を反映させるためにビルドします。画面左上の【ビルド】ボタンをクリックしましょう。
〜数分後〜
次回、第4話へ続く
- 第1話:Clova開発の全体像・サーバーレスって何?
- 第2話:スキルの基本情報を登録しよう
- 第3話:対話モデルを作ろう(本記事)←今ココ!
- 第4話:バックエンドをつくろう
- 第5話:実機で動かしてみよう
- 第6話:審査に出して公開してみよう
- 第7話:Clovaのスキルをもっとリッチにしてみよう
マンガ・解説: 湊川あい / ちょまど
他にもある「わかばちゃんと学ぶ」シリーズ
マンガと図解で技術がわかる「わかばちゃんと学ぶ」シリーズ。
全国の書店・Amazonで発売中です。
著者プロフィール
湊川あい
絵を描くWebデザイナー。高等学校教諭免許状 “情報科” 取得済。マンガと図解の力で、物事をわかりやすく伝えることが好き。2014年より「マンガでわかるWebデザイン」をインターネット上に公開していたところ、出版社より声がかかる。
Twitter: @llminatoll
Webサイト: マンガでわかるWebデザイン
ちょまど(千代田まどか)
エンジニア兼マンガ家。Microsoft 社のソフトウェアエンジニアとしての本業のかたわら、マンガ家やイラストレーター、松屋エバンジェリスト(非公式)としても活動。MS入社前から Twitter 廃人であり、フォロワーは4万人を超える。
Twitter: @chomado
ホームページ: http://chomado.com/