node-red-contrib-atelierhi-eps 1.0.6
A Node-RED node to easly access prediction APIs of the Salesforce Einstein Platform Services. (Vision/Language)
Node-RED 用 Einstein Platform Services ノード
概要
Node-RED で Salesforce が提供する画像認識や自然言語処理の AI 機能である Einstein Platform Services を簡単に使えるようにする追加ノードです。
注意: このサンプルコードは、あくまで機能利用の1例を示すためのものであり、コードの書き方や特定ライブラリの利用を推奨したり、機能提供を保証するものではありません。
利用方法(Node-RED "パレットの管理"からのインストール)
- Menu -> Manage Palette -> Palette -> Install 次の文字列で検索し install をクリック
node-red-contrib-atelierhi-eps
利用方法(Github からソースコードをダウンロードしインストール)
1. 「Einstein Platform Services ノード」を Github からダウンロード
- $ cd [ワーク用ディレクトリに移動]
- $ git clone https://github.com/hinabasfdc/node-red-contrib-atelierhi-eps.git
- $ cd node-red-contrib-atelierhi-eps
- $ npm install
2. Node-RED で使えるように設定
- (1-3.で移動したディレクトリで操作)
- $ npm link
- $ cd ~/.node-red
- $ npm link node-red-contrib-atelierhi-eps
以上の操作で、Node-REDを起動するとパレットに「Einstein Platform Services」が出現します。
パレットからワークスペースにドラッグし、"Account ID"と"Private Key"の二つを設定してください。
Einstein Platform Services のアカウント取得
Salesforce Lightning Platform のアカウントに紐付け、あるいは、Heroku のアドオンとして払い出し、の2パターンがあります。
これから取得されるということであれば、Heroku のアドオンとして払い出しをお勧めします。
- Heroku アカウントを作成 & クレジットカード情報を登録 (https://signup.heroku.com/jp)
- 何らかのアプリケーションを作成
- Einstein Vision アドオン(Free版で良い)をアプリケーションに追加(https://elements.heroku.com/addons/einstein-vision)
- アプリケーションの Settings -> Config Vars から Einstein Platform Services の Account ID と Private Key 情報を取得
テストフローの作成:その1(API Usage)
- 「injection」ノード
- Timestampのまま特に変更なし
- 「function」ノード
- Name
- Test Api Usage
- Function
msg.eps = {}; msg.eps.feature = "APIUSAGE"; return msg;
- Name
- 「Einstein Platform Services」ノード
- 手順2の通り
- 「debug」ノード
- 特に設定変更なし
- 1→2、2→3、3→4と接続
- 配置と設定が完了したら、画面右上にある「Deploy」ボタンを押してロジックを公開
- 公開が完了したら、「インジェクション」ノードの左のボタンをクリックして、動作を確認
- 画面右ペインの「debug」タブで、ライセンスやAPI使用状況に関する情報が表示されたら動作成功
テストフローの作成:その2(Image Classification)
- 「injection」ノード
- Timestampのまま特に変更なし
- 「function」ノード
- Name
- Test Prediction
- Function
msg.eps = {}; msg.eps.sampleLocation = "https://upload.wikimedia.org/wikipedia/commons/d/d3/Supreme_pizza.jpg"; msg.eps.modelid = "FoodImageClassifier"; return msg;
- Name
- 「Einstein Platform Services」ノード
- 手順2の通り
- 「debug」ノード
- 特に設定変更なし
- 1→2、2→3、3→4と接続
- 配置と設定が完了したら、画面右上にある「Deploy」ボタンを押してロジックを公開
- 公開が完了したら、「インジェクション」ノードの左のボタンをクリックして、動作を確認
- 画面右ペインの「debug」タブで、”pizza”の予測結果が確認できたら動作成功
仕様
ノードのパラメーター
- Name
- 表示名
- URL
- Einstein Platform Services のAPI起点(特に変更の必要なし。必ず最後に/をつける)
- Default Feature
- ノードの入力から実行する機能の指定がない場合に使われる機能(初期設定は画像仕分けのImage Classification)
- 設定可能値
- IMAGECLASSIFICATION
- OBJECTDETECTION
- SENTIMENT
- INTENT
- Default ModelId
- ノードの入力から使用するモデルの指定がない場合に使われるモデルID(初期設定は GeneralImageClassifier)
- Account ID
- Einstein Platform Services のアカウントID
- Private Key
- Einstein Platform Services のアカウントIDに紐づくプライベートKEY
ノードの入力
原則として msg オブジェクトに情報を追記
- msg.eps.feature
- Einstein Platform Services の何の機能を使用するか指定する。次の4つから選択する。
- APIUSAGE
- IMAGECLASSIFICATION
- OBJECTDETECTION
- SENTIMENT
- INTENT
- Einstein Platform Services の何の機能を使用するか指定する。次の4つから選択する。
- msg.eps.modelid
- 使用するモデルIDを指定する
- msg.eps.sampleBase64Content
- IMAGECLASSIFICATION/OBJECTDETECTIONの場合に使用
- 画像をbase64でエンコードした文字列を設定する
- msg.eps.sampleLocation
- IMAGECLASSIFICATION/OBJECTDETECTIONの場合に使用
- 画像の URL を設定する
- msg.eps.document
- SENTIMENT/INTENTの場合に使用
- テキストを設定する
ノードの出力
- msg.payload
- Einstein Platform Services の返り値(JSON)がそのまま、あるいは、ノードの実行エラー情報がJSON形式で格納される