はじめに
Node-REDの追加ノードにWatson Machine Learning用のものがあることを発見しました。
その利用メモを残しておきます。
前提
呼出し対象のモデルは、別記事SPSSクラウド版で簡単機械学習でクラウド上にWebサービスとしてデプロイしたものを利用します。
他のサービスであっても手順などはほぼ同じはずです。
追加ノードの導入
Node-Redに追加ノードを導入する手順については、別記事IBM CloudのNode-REDで追加ノードの導入手順に記載しておきましたので、この手順を参考にして下さい。
今回追加導入するノードの名称は node-red-contrib-watson-machine-learning
になります。
正常に導入されたノードは、図のようにIBM Watsonグループに追加されます。
WMLノードの配置、設定
まず、WMLノードを編集エリア上に配置し、設定を行いましょう。
配置したWMLノードをダブルクリックし、設定画面がでたら、下記の鉛筆アイコンをクリックし、config nodeの設定画面を表示します。
下の画面が出ますので、名前は WML-config
など適当な名前を設定し、それ以外の構成情報はWMLのcrednttail情報をコピペして設定します。ちなみにAccess KeyのところはAPIKeyで読み替えます。
全部入力が終わったら「Add」ボタンをクリックして下さい。
元のNodeの設定画面に戻ったら、いったん「Done」でパレットに戻り、この段階でDeployボタンをクリックして下さい。
その後、再度このノードの設定画面を開きます。
下の図のように、「Mode」は「Run Prediction」を選択します。IDの設定が正しくできていると、「Model」「Deployment」のドロップダウンに、呼び出したい機械学習モデル、Webサービスがでてくるはずです。
図のように、それを選択した状態で、「Done」をクリックし、再度Deployを行います。
Flowの作成
ここまでできれば後は簡単です。
下の図のように「inject」「function」「debug」の各ノードを編集エリアに配置し、一直線につなぎます。
Function Nodeのコードは次のような形にして下さい。
"fields"には、入力項目名のリスト、"values"には入力値をリストのリストとして作成します。
msg.payload = {
"fields": ["CLASS", "AGE", "BP", "AL", "SC", "POT", "PCV"],
"values": [[null, 75, 70, 0, 0.8, 3.5, 46]]
};
return msg;
全部設定が終わったら再度deployを行います。
テスト
準備はすべて整ったので、後はinjectノードをクリックしてテストを行います。
うまくいくと、下の図のように呼出し結果が表示されます。