また、CEKの発表に合わせてLINE BOOT AWARDSを開催します。本連載でスキルの開発手法を学び、賞金1000万や副賞50万の獲得を目指しましょう!
はじめに
ClovaはLINE株式会社が提供するAIアシスタントです。Clovaを搭載したスマートスピーカーとして、今までにClova WAVE、Clova FriendsやClova Friends Mini等(以下、Clovaデバイス)がリリースされています。例えばこれらのClovaデバイスに「新宿の天気を教えて」と話しかけると、「今日の新宿の天気は晴れ、降水確率は10%です」などと天気を調べて教えてくれますが、これが「スキル」です。他にも翻訳やLINE通話等たくさんのスキルがデフォルトでインストールされており、便利に利用できます。
今回スキルの開発環境がオープン化され、Clova向けスキルを開発・拡張できる「CEK(Clova Extensions Kit)」を利用することで、誰でも簡単にClovaデバイス上で動作するスキルを開発することができるようになりました。
スキルを実装するためには実際に処理を行うスクリプトを置く場所が必要になりますが、今回はHerokuを利用します。HerokuとはPaaS(Platform as a Service)と呼ばれるサービスで、アプリケーションを実行するためのプラットフォームです。昔は自分で作ったWebアプリケーションを公開しようと思うとレンタルサーバーを借り、複雑な設定を行うことが必要でしたが、Herokuを使うと使いやすいよう設定された環境が始めから用意されており、しかも少ないトラフィックでしたら無料で利用できます。
Herokuではさまざまなプログラミング言語が利用できますが、今回はNode.jsを使って解説します。
対象読者
- Webアプリケーション開発経験者
- チャットボット開発経験者
- スマートフォン等のアプリ開発経験者
必要な環境
- セットアップ済みのClova Friends/Clova Friends mini
- PC
Node.jsが利用できる環境でしたらどのような環境でも開発が可能ですが、解説はMacで行い、Window環境で手順に違いがある場合は都度解説します。筆者の環境はMac OS X High Sierra(10.13.1)、Node.jsのバージョンは8.11.1です。
スキルの動作フロー
はじめに、スキルの起動、機能の利用、終了のフローを解説します。
「スキルの動作フロー」の図にある「Clova Brain」とは、Clovaの中核となるシステムで、NLU(Natural Language Understanding:自然言語理解)や、Dialog Managerなどで構成される「Clova Conversation」を中心に、より自然な言語翻訳処理を行うNMT(Neural Machine Translation)、ドキュメントやコンテンツなどを推薦するRecommendation Engineなどで構成されます。
このように、Clova向けスキルは、GUIとは違い音声で入力します。動作のフロー図を見ると分かるように、音声による入力からClova Brainを利用してインテント(意図)とスロット(対象)を読み取る処理が毎回実行されます。
スキル開発には大きく分けて、以下の2つのパートがあります。
- 対話から必要な部分を抜き取るルール(以後「対話モデル」と呼びます)の作成
- 抜き取られた部分を受け取り、処理を行ってレスポンスを返すサービスの開発
前者はClova Developer Center、後者はCEKを利用し開発します。