Einsteinハンズオンに参加してサンプルアプリを作ってみました。
環境の準備
TrailheadのChallengeのところからPlayground環境を作成します。作成したらユーザの言語を英語に変更。
手順に従いオブジェクトを作成
- Cat オブジェクトを作成する
- Interested Person オブジェクトを作成する
上記オブジェクトのタブを作成する。
上記オブジェクトタブを含むアプリケーションを作成する。
テストデータを作成する。
次のようなエラーがでたら設定ミス。タブの名前変更が必要。
この設定ページから。ユーザの地域を英語にしておけばオブジェクト作成時に登録できたかも。
グローバル選択リストを作成する。
カスタムオブジェクトに選択リストを割り当てる
こんな感じで使えるようになれば準備OK。
2つのオブジェクトに追加した項目に値をセット。
2つのオブジェクトは参照関係などの紐付けがありませんが、Einsteinでマッピングできるというのが今回の目標みたいです。
→ Interested Person オブジェクト特に使わなかった。(処理の裏側で使われていたのかも)
追記
Interested Personの方は複数選択リスト型でした。
Einsteinの準備
Einstein プラットフォームサービスアカウントにサインアップする
https://api.einstein.ai/signup
einstein_platform.pemファイルをダウンロードできます。(同じメールアドレスで2つ目は作成できない。過去に作成済みの場合はそちらを利用。)
Salesforce に認証証明書を保存する
静的リソースではなくSalesforce Filesへのアップロードを行う。
未管理パッケージをダウンロード
ダウンロードURLはTrailheadに記載されています。
※事前にユーザのパスワードをリセットして自動生成ではないパスワードを指定すること。
未管理パッケージをインストールするとカスタム設定が追加されています。Einsteinにサインアップしたメールアドレスを登録します。
ApexクラスとLightning コンポーネントとLightningアプリケーションを作成
下記のApexクラスを作成します。(※コードはTrailheadを参照)
- EinsteinVision_Admin.cls
次にLightning コンポーネントを作成します。
- EinsteinVision_Admin_UI.cmp
最後にLightningアプリケーションを作成します。これは開発者コンソールではなく設定ページから。
アプリケーションへの追加はLightning Experieneタブを選択してそこで設定。
こんな感じで表示されればOK。
データセットの作成
Einsteinで分析するためのデータ・セットを作成します。
[https://developer.salesforce.com/files/Cats.zip]
URLを貼ってCreateボタンをクリック。こんな感じ。
Refreshするとこうなる。
最後にTrainボタンをクリックすると何かの処理が実行される。
Success100%と表示されたらOK。処理には少し時間がかかります。うっかり二回処理をうごかしたら動いてしまいました。
Cat (猫) オブジェクトに画像認識機能を追加
Lightningコンポーネントを作成
Cat レイアウトに Lightning コンポーネントを追加
猫の画像を分類する
これでアプリの準備が整いました。実際にデータを読み込ませて分類を試します。使うのはこの画像。
ファイルはTrailheadからダウンロード。
ファイルをアップするとデータが更新されることを確認できます。
アプリの利用例:Chatterと連携
グループを3つ作ります。
プロセスビルダーを作成します。
ざっくりこんな感じ。
猫画像をアップロードすると、「Bengal」と判別されて・・・
先ほど作成したプロセスどおりBengalのグループにメッセージが投稿されます。
里親になりたい人はこのChatterグループでメッセージを通知を受けることができるという流れになります。Chatter投稿の部分はおまけ的な感じで画像をアップすると猫の分類が自動で行われ値が更新されたことを確認するというのが今回のハンズオンの目的でした。
認証キーとなるeinstein_platform.pemファイルをSalesforceにアップしてEinstein APIを実行できたのだと思います。今回サンプルコードの中身は確認してみませんがこれをベースにAPIガイドを見ながらいろいろ試せるんだと思います。