仕事やプライベートで調べたことのメモ書きなど(@札幌)

仕事やプライベートで調べたこと、興味ある事のメモ書きです。2016年4月から札幌で働いてます。※このブログは個人によるもので、団体を代表するものではありません。

Botの王道:配達ピザの注文をさばくBotを2時間で開発するワークショップ@札幌 (2017/05/31@札幌)に参加

久々にOracleで定期開催している勉強会に行きました。
oracleclouddevelopersh.doorkeeper.jp

というのも、先日、北海道IT推進協会の総会の懇親会で偶然、Oracleの方とお会いしたから。
www.hicta.or.jp
久々に行くかなーって。

私はもともとWeb系ではないので、正直、今回の勉強会で使うテクノロジーはとてもチンプンカンプンなのだけど、このOracleの勉強会は、結構初心者でもついていけるように講師の方が進めてくれるのがありがたいところでもあります。またQiitaで手順を公開してもくれていて、置いてきぼりくらっても、あとで何とかなるのも心強い。

ということで、今回の手順はこちら!
qiita.com

事前準備

さて、今回のテクノロジ。そもそも、これを準備してきてね、というのが、聞いたことあるけど触ったことないものだらけ。
というわけで、セットアップがてら、それが何かということだけさらっと。。。

api.aiのアカウントを作成しておいてください。

api.aiって何ですか?aiを使えるapiに違いない!
api.ai
www.ptengine.jp
「コード入らずで簡単に人工知能を作成できる」ってものらしいです。
とりあえず、googleアカウントで連携!

当日作業するノートPCにNode.jsのLTS(最新安定版)をインストールしておいてください。

Node.jsってなんですか?javascriptの何かでしょう。
Node.js
qiita.com
なるほど、サーバーサイドのjavascriptですね。javascriptも随分と出世したものです・・・。
とりあえず、インストーラでインストール!したものの、これでインストールされるのは?
ん、サーバーなのかな?サーバーサイドだから。

Herokuのアカウントを作成しておいてください。Bot本体を稼働させるクラウドプラットフォームとして利用します。

Herokuって何ですか?名前からは想像つきません。
https://wwww.heroku.com/wwww.heroku.com
ん、クラウドプラットフォーム?セールスフォースみたいなもんですか?
www.sejuku.net
Node.jsを今回ローカルPCに入れたけど、おそらく、公開時の環境をクラウド上に作る、ということだろう、うん。

Heroku CLIを当日作業するノートPCにインストールしておいてください。

これは、コマンドラインからHerokuを使えるようにする何かだろう!とりあえずインストール。
www.terrasky.co.jp

LINE Business Centerにて、ご自身のLINEアカウントであらかじめログインを試しておいてください(当日パスワードがわからなくなる事件が多発しているため)

確かにつまづいた。あと、2段階認証になっているのも、地味に面白いですね。
無事、事前のログイン確認できました!

当日の勉強会

完成形

コンシェルジュ型のボット。すごい。
ボットは昔から存在するんですが、自然言語の解釈など、地味にすごい!

さぁやるぞ

LineでMessaging API

手順はこちら。
qiita.com

api.ai

Googleに買収された。

  • Agent
  • Entity:パラメーターを認識するために必要
  • Intent:ユーザーの意図

IntentとかEntityは自然言語解析では一般的な用語!
Intentは最低10個。20個くらいは入れないと、現実的ではない。たくさん入れると賢くなるよ。

手順はこちらの続きから。
qiita.com

  • 「ML CLASSIFICATION THRESHOLD」をいじると、認識精度の調整ができる。

なんと、設定はこれだけか!!

Bot本体の開発準備

私のPCはWindows環境のため、Powershellで実施。
基本は、手順に従うだけ。

  • constructorとfinishが必要
  • constructorの、this.required_parameterでパラメータを揃える
  • message_to_confirmでパラメータを要求する。(LineのAPIに合わせた記載になっている)
  • finishで終了後の処理(通常はdbに登録するなどするが、今回は返信だけ)
  • 非同期で動いているのでresolveが必要
Herokuへデプロイ

手順通り。基本はHeroku上のgitへpushするイメージ。

わー、動いた!

懇親会

ここまではできるんですけど、この後挫折する人が多いんですよねー。そこにビジネス機会があるのかもしれない。
とりあえず動くものは作れても、ちゃんとビジネスレベルで動くようには超えるべきハードルがあるようです。