あいさつ
どうも、はかせです。
今回は前回作ったコーヒーショップの品数を増やしてみます。
品を増やしてみる
御多分に漏れず公式チュートリアルに従います。
developer.amazon.com
今まで私のAlexaコーヒーショップはコーヒーしかありませんでした。
いくらコーヒーショップとはいえコーヒーしか扱っていない店というのは
現代では絶滅危惧種だと思います。
店が絶滅危惧種なのは辛いので品種類を増やしてみます。
品の増やし方は簡単で
インテントに直接増やしたいメニューとオーダーを入れるだけです。
ただこの方法だとメニュー×オーダーの数だけ直打ちする必要が発生してしまいます。
そうなると例えば
メニュー
・コーヒー
・カフェオレ
・エスプレッソ
オーダー
・ください
・ちょうだい
・お願いします
これだと3×3で9通りのパターンを直打ちすることになります。
これは大変めんどくさいです。
しかも今後新メニューがでたり、
オーダーが増えたりしたらそれに比例して打ち込む量が増えてしまい、
拡張性も低いです。
なんでメニューとオーダーを変数的なものに格納し、
Alexaの入力でうまいこと当てはめてもらいます。
その仕組みはスロットという機能で実現できます。
スロットは値を登録しておけるものです。
(enumが一番イメージ近いかな)
メニューとオーダーをそれぞれスロットに登録してみます。
そしてスロットを使ったインテントを設定します。
まずはインテントにこのスロットを使うという登録をします。
amountは元から用意されているスロットを設定しています。
登録したらあとはそれに従いインテントを設定します。
インテントを設定したらちゃんと受け取れてるか確認のため
メニューと個数をオウム返しさせます。
さて結果です。
これで品数が増えようと注文方法が増えようと
スロットを少し弄るだけで追加できるようになりました。
あとがき
今回はスロットを使って品数を楽に増やせるようにしてみました。
手打ちとかでちまちまやってたことが自動化されると
なんというか達成感を感じますね。
プログラマー冥利に尽きるというかなんというか。
それでは今回はこの辺でノシ