tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Einsteinハンズオンに参加してサンプルアプリを作ってみました

Einsteinハンズオンに参加してサンプルアプリを作ってみました。
f:id:tyoshikawa1106:20180409170016p:plain

環境の準備

TrailheadのChallengeのところからPlayground環境を作成します。作成したらユーザの言語を英語に変更。
f:id:tyoshikawa1106:20180409153302p:plain


手順に従いオブジェクトを作成

  • Cat オブジェクトを作成する
  • Interested Person オブジェクトを作成する

上記オブジェクトのタブを作成する。
上記オブジェクトタブを含むアプリケーションを作成する。

f:id:tyoshikawa1106:20180409154056p:plain


テストデータを作成する。
f:id:tyoshikawa1106:20180409155114p:plain

f:id:tyoshikawa1106:20180409154321p:plain


次のようなエラーがでたら設定ミス。タブの名前変更が必要。
f:id:tyoshikawa1106:20180409154832p:plain


この設定ページから。ユーザの地域を英語にしておけばオブジェクト作成時に登録できたかも。
f:id:tyoshikawa1106:20180409154920p:plain


グローバル選択リストを作成する。
f:id:tyoshikawa1106:20180409155307p:plain


カスタムオブジェクトに選択リストを割り当てる
f:id:tyoshikawa1106:20180409155438p:plain

f:id:tyoshikawa1106:20180409155732p:plain


こんな感じで使えるようになれば準備OK。
f:id:tyoshikawa1106:20180409155522p:plain

f:id:tyoshikawa1106:20180409155747p:plain


2つのオブジェクトに追加した項目に値をセット。
f:id:tyoshikawa1106:20180409155946p:plain

f:id:tyoshikawa1106:20180409155921p:plain


2つのオブジェクトは参照関係などの紐付けがありませんが、Einsteinでマッピングできるというのが今回の目標みたいです。
→ Interested Person オブジェクト特に使わなかった。(処理の裏側で使われていたのかも)

追記

Interested Personの方は複数選択リスト型でした。
f:id:tyoshikawa1106:20180409162018p:plain

Einsteinの準備

Einstein プラットフォームサービスアカウントにサインアップする
https://api.einstein.ai/signup


einstein_platform.pemファイルをダウンロードできます。(同じメールアドレスで2つ目は作成できない。過去に作成済みの場合はそちらを利用。)
f:id:tyoshikawa1106:20180409153204p:plain

Salesforce に認証証明書を保存する

静的リソースではなくSalesforce Filesへのアップロードを行う。
f:id:tyoshikawa1106:20180409160437p:plain

f:id:tyoshikawa1106:20180409160510p:plain

未管理パッケージをダウンロード

ダウンロードURLはTrailheadに記載されています。
f:id:tyoshikawa1106:20180409160953p:plain

f:id:tyoshikawa1106:20180409161017p:plain

※事前にユーザのパスワードをリセットして自動生成ではないパスワードを指定すること。

f:id:tyoshikawa1106:20180409161111p:plain


未管理パッケージをインストールするとカスタム設定が追加されています。Einsteinにサインアップしたメールアドレスを登録します。
f:id:tyoshikawa1106:20180409161250p:plain

ApexクラスとLightning コンポーネントとLightningアプリケーションを作成

下記のApexクラスを作成します。(※コードはTrailheadを参照)

  • EinsteinVision_Admin.cls

f:id:tyoshikawa1106:20180409161546p:plain


次にLightning コンポーネントを作成します。

  • EinsteinVision_Admin_UI.cmp

f:id:tyoshikawa1106:20180409161744p:plain


最後にLightningアプリケーションを作成します。これは開発者コンソールではなく設定ページから。
f:id:tyoshikawa1106:20180409162330p:plain

f:id:tyoshikawa1106:20180409162540p:plain

f:id:tyoshikawa1106:20180409162608p:plain

f:id:tyoshikawa1106:20180409162624p:plain

f:id:tyoshikawa1106:20180409162637p:plain

f:id:tyoshikawa1106:20180409162653p:plain

f:id:tyoshikawa1106:20180409162706p:plain


アプリケーションへの追加はLightning Experieneタブを選択してそこで設定。
f:id:tyoshikawa1106:20180409162834p:plain


こんな感じで表示されればOK。
f:id:tyoshikawa1106:20180409162917p:plain

データセットの作成

Einsteinで分析するためのデータ・セットを作成します。

[https://developer.salesforce.com/files/Cats.zip]


URLを貼ってCreateボタンをクリック。こんな感じ。
f:id:tyoshikawa1106:20180409163103p:plain


Refreshするとこうなる。
f:id:tyoshikawa1106:20180409163138p:plain


最後にTrainボタンをクリックすると何かの処理が実行される。
f:id:tyoshikawa1106:20180409163341p:plain


Success100%と表示されたらOK。処理には少し時間がかかります。うっかり二回処理をうごかしたら動いてしまいました。
f:id:tyoshikawa1106:20180409163717p:plain

Cat (猫) オブジェクトに画像認識機能を追加

Lightningコンポーネントを作成
f:id:tyoshikawa1106:20180409163919p:plain


Cat レイアウトに Lightning コンポーネントを追加
f:id:tyoshikawa1106:20180409164031p:plain

猫の画像を分類する

これでアプリの準備が整いました。実際にデータを読み込ませて分類を試します。使うのはこの画像。
f:id:tyoshikawa1106:20180409164155p:plain


ファイルはTrailheadからダウンロード。
f:id:tyoshikawa1106:20180409164228p:plain



ファイルをアップするとデータが更新されることを確認できます。
f:id:tyoshikawa1106:20180409164441p:plain

アプリの利用例:Chatterと連携

グループを3つ作ります。
f:id:tyoshikawa1106:20180409164817p:plain


プロセスビルダーを作成します。
f:id:tyoshikawa1106:20180409165002p:plain


ざっくりこんな感じ。
f:id:tyoshikawa1106:20180409165313p:plain


猫画像をアップロードすると、「Bengal」と判別されて・・・
f:id:tyoshikawa1106:20180409165512p:plain


先ほど作成したプロセスどおりBengalのグループにメッセージが投稿されます。
f:id:tyoshikawa1106:20180409165551p:plain


里親になりたい人はこのChatterグループでメッセージを通知を受けることができるという流れになります。Chatter投稿の部分はおまけ的な感じで画像をアップすると猫の分類が自動で行われ値が更新されたことを確認するというのが今回のハンズオンの目的でした。

f:id:tyoshikawa1106:20180409165758p:plain


認証キーとなるeinstein_platform.pemファイルをSalesforceにアップしてEinstein APIを実行できたのだと思います。今回サンプルコードの中身は確認してみませんがこれをベースにAPIガイドを見ながらいろいろ試せるんだと思います。