ねぇClova、開発したい 【サーバアプリ実装編】

この記事は「Houwa System Design Advent Calendar 2018」の5日目の記事です。
開発部のケンゾーです。
昨日の「対話モデル作成編」に続き、最終回の今回は「サーバアプリの実装&デプロイ」と「デバック」までをご紹介します。

3. 対話モデルに合わせてサーバアプリを実装

サーバ側の実装ですが、そもそも言語を何にするかとかどうやって実装するのよとかあります。まずLINEさんがCEK(Clova Extension Kit)として開発環境をいろいろな言語ごとに用意してくれています。

ここから自分にあったものを選びましょう。
自分は慣れ親しんだJavaを選択します。
開発環境はSTS3.9.5を使用して行います。
STSのメニューからFile→New→Spring Starter Projectから Spring Bootの2.0.4でプロジェクトを作成します。
出来上がったプロジェクトのpom.xmlにclovaのCEKを追加してあげます。
うちのプロジェクトとしては以下を追加しました。

次にハンドラークラスを作成します。
ハンドラークラスは@CEKRequestHandlerアノテーションをつけましょう。
その他、いろいろとアノテーションをつけたメソッドでClovaからのリクエストをハンドリングします。

ハンドラクラスですが見たまんま各インテントに対応したメソッドが定義されています。対話モデルの画面にあるインテントに対応させてメソッドにアノテーションを付けてあげるだけです。
戻り値の一部としてOutputSpeech型のテキストを返して上げるとClovaがそのテキストを読み上げてくれます。
非常にシンプルです。
ここまでくればあとは普段通りに実装していけばOKです。
最後にApplication.ymlに

のような形で基本設定で指定したExtension IDを登録します。CEKがあとはよしなに扱ってくれます。
あとは実行形式でJarをエクスポートしてサーバで稼働させれば完了です!
いよいよClovaと話しましょう!

4. Clovaに話し掛けてデバッグ

お手持ちのClovaでデバッグをする場合はLine Developers Centerで作成したClovaスキルとデバックするユーザを紐づけします。これでそのユーザが持っているClovaで作成しているスキルを利用出来るようになります。

また対話モデルの画面からデバッグようにテキストベースでの呼び出しも実施出来るのでデバッグのために独り言をブツブツいうのに抵抗のある方はそちらを利用下さい。
夜中に一人でデバッグはやばいです。独り言がやばいレベルになります。
しかしVUIは楽しいですね。何か未来感が半端ないです。是非みなさまも試して見て下さい。
<完成形のデモ動画です>

ねぇClova、開発したい 【スキル登録編】
ねぇClova、開発したい 【対話モデル作成編】

関連記事

  1. Zephyr を使ってみた

  2. 知識ゼロで Unity をはじめてみた【その2 -キューブを配置-】

  3. Windows でも BLE を扱うことは可能か?〜できるかどうかやっ…

  4. Elastic Stack を使った予兆検知結果の可視化 〜検知した異…

  5. Elastic Stack を使った予兆検知結果の可視化 〜異常検知の…

  6. お預かりした荷物を音と光で素早く確認!ホテルでのビーコン活用例