Watson
node-red
Watson-Studio

AI FunctionをNode-REDから呼び出す


はじめに

Watson Machine LearningのAI Function機能を使って、SPSS Modelerの機械学習モデルをFunction定義するの続編です。

上のリンクで作ったAI Functionのサービスを簡単に呼べる方法はないか、いろいろ考えてみて、

Node-REDからWatson Studioの機械学習モデルを呼び出すみたいに、Node-REDの部品になっていると一番作る側は楽かと思いました。

オリジナルの部品に比べると相当低機能ですが、実際にそういうノードを作って、npmに公開しておきましたので、ご紹介します。


Nodeの紹介

node-red-contrib-ai-functionが、そのサイトです。せっかく作ったので、Webページの画面も紹介しておきましょう。

スクリーンショット 2018-12-28 22.08.04.png

自分のNode-RED環境にこのノードを追加する場合はIBM CloudのNode-REDで追加ノードの導入手順の手順に従って下さい。


使い方

使い方はとても簡単です。ノードを編集画面に配置して、config nodeを設定する手順は

Node-REDからWatson Studioの機械学習モデルを呼び出すとまったく同じなので、そちらを参照して下さい。

後は、Watson Studioの管理画面から、AI FunctionのDeployment IDを取得して、下の画面のようにNodeの設定画面で設定します。ちなみに、「Mode」の項目は、前のNodeのときからそのまま残ってしまっていますが、今は「Run Function」しか選べないです。

スクリーンショット 2018-12-28 22.15.03.png

Deployment IDはWatson Machine LearningのDeplotment管理画面の以下の領域に表示されているものを利用します。

スクリーンショット 2018-12-29 12.13.08.png

あとは、下の図のように「inject」「function」「debug」の各ノードを編集エリアに配置し、一直線につなぎます。

スクリーンショット 2018-12-28 22.20.33.png

functionノードで入力用jsonを組み立てます。実装のサンプルは以下の通りです。「項目名」を意味するfieldsと「項目値」を意味するvaluesを設定します。valuesの方は配列を二重にする必要があるので注意して下さい。

msg.payload = {

"fields": ["CLASS", "AGE", "BP", "AL", "SC", "POT", "PCV"],
"values": [[null, 75, 70, 0, 0.8, 3.5, 46]]
}

injectボタンをクリックすると、下のような結果が返ってくるはずです。

スクリーンショット 2018-12-28 22.21.09.pngスクリーンショット 2018-12-28 22.21.17.png