セールスフォース以外のアプリ開発者は、AIの世界に隠された宝石を見逃している可能性があります。
開発者がAIにクラウドを使用することを考えるとき、IBM Watson、Microsoft Azure Cognitive Services、Google Cloud、またはAmazonAIを思い浮かべるでしょう。 Salesforce Einsteinのことを聞いたとき、彼らは自動的にそれが Salesforce開発者 専門。
そうではありません! Salesforceに関連するかどうかに関係なく、どのアプリでも、Salesforceが取得した高度なAIクラウドテクノロジーを活用できます。彼らは、独自のAIクラウドサービスのオーケストレーションであるSalesforceEinsteinでAI市場に参入しました。特に、これには言語および画像認識サービスの提供が含まれます。
他のAIクラウドソリューションと同様に、その下にある重量級のテクノロジーを使用するために博士号を取得する必要はありません。このSalesforceEinstein APIチュートリアルでは、アカウントを設定して最初のAIクラウドAPI呼び出しを行う方法を説明します。通話自体については、cURLとPostmanを使用しますが、独自のバックエンドプロトタイプや、最も使いやすいその他のテクノロジーを使用することもできます。
そこから、空が限界です。
Einstein Platform API呼び出しを行うには、最初に次のことを行う必要があります。 EinsteinAPIアカウントを作成する 、キーをダウンロードし、そのキーを使用してSalesforceOAuthトークンを生成します。 EinsteinVisionとEinsteinLanguageの両方を使用できるようにするには、このプロセスを1回だけ実行する必要があります。
Salesforceまたはを使用してログインできます Heroku 資格情報。上記のオプションのいずれかを選択すると、それぞれのログインページにリダイレクトされます。 Herokuでログインする場合は、クレジットカードを設定し、サービスを特定のHerokuインスタンスにアタッチする必要があります。
次のうち、一般的なセキュリティの問題と見なされるのはどれですか? (該当するものをすべて選択してください。)
Salesforceを初めて使用し、Herokuアカウントを持っていない場合、Herokuアカウントの設定はかなり迅速です。また、Googleのような既存のソーシャルアカウントを介してサインアップする場合はさらに迅速です。
ここからは、Herokuの代わりにSalesforceを(ソーシャルアカウント経由かどうかに関係なく)使用していると想定します。このプロセスには少し後戻りが含まれるため、これらの手順に細心の注意を払う必要があります。
Salesforceにログインすると、Einsteinとはあまり関係のないツアー画面が表示されます。この時点で、電子メールを確認し、確認リンクをクリックする必要があります。そうしないと、次の手順でエラーが発生します。
次のステップは、 その最初のEinsteinAPIサインアップリンク そして、Salesforceのログインボタンを再試行してください。その後、Googleなどの外部認証パートナーの助けを借りてアカウントを作成した場合でも、新しいパスワードを設定し、再びツアーページにリダイレクトします。
ここで、もう一度APIサインアップページに戻り、Salesforceログインボタンをもう一度クリックします。今回は、以下のようなページが表示されます。 秘密鍵をダウンロードする前にこのページを離れないでください 、メールの確認が必要だと言われるかもしれませんが!そうした場合、サポートチームの手動による支援なしに秘密鍵を取得する方法はありません。
ファイルをローカルマシンにダウンロードするか、キーをコピーしてテキストエディターに貼り付け、ファイルをeinstein_platform.pem
として保存することができます。
その間、前述のように、別の確認メールがあなたを待っています。これはアインシュタイン固有のものです。その確認リンクもクリックしてください。
秘密鍵を取得したので、時間制限のあるトークンを生成できます。データセットの作成からモデルのトレーニング、モデルの予測まで、行うすべてのAPI呼び出しには、リクエストヘッダーに有効なOAuthトークンが必要です。トークンを取得するには、彼らに行く必要があります トークンジェネレータ ログインに使用したのと同じメールアドレスを使用します。上記で受け取った秘密鍵ファイルを貼り付けるかアップロードします。
Salesforce Einsteinを介してAIクラウドを使用するには、サンプルデータをアップロードして人工知能ネットワークをトレーニングする方法に関するいくつかの基本的な概念が含まれます。それがなじみのないように聞こえる場合は、 私の前のチュートリアル EinsteinLanguageとEinsteinVisionの両方でSalesforceEinsteinを使用する例をいくつか示します。
これに慣れていると仮定して、cURLまたはPostmanを介してEinstein Image Classification RESTAPIを使用します。 Postmanを使用している場合は、cURL呼び出しがある場所であればどこでも、Postmanのインポート機能を使用できます。
画像に基づいてスマートフォンと固定電話を区別したいという便利なビジネス要件に遭遇し、その予測を使用して、リードスコアを更新したり、ユースケースを処理したりするとします。
次のステップは、独自のデータセットを作成することです。すでに分類されている例が少なくとも40個必要であることに注意してください。 (現時点で投資したい時間よりも長い場合は、以下の予測セクションにスキップできます。modelId
、FoodImageClassifier
、GeneralImageClassifier
のSceneClassifier
を使用するだけです。 、またはMultiLabelImageClassifier
。)
phpmysql出力を個別の配列に
私たちの場合、スマートフォンと固定電話の2つのカテゴリがあります。 2つのフォルダーを作成し、スマートフォンと固定電話のラベルを付けて、各フォルダーに画像を追加します。次に、これらのフォルダーを含むzipファイル(zipのみ:7zは機能しません)を作成します。
データセットの作成に使用されるこのEinsteinAPIエンドポイントは次のとおりです。
curl -X POST -H 'Authorization: Bearer ' -H 'Cache-Control: no-cache' -H 'Content-Type: multipart/form-data' -F 'type=image' -F '' https://api.einstein.ai/v2/vision/datasets/upload/sync
ここでは、次のいずれかの例のようになります。
[email protected] /path/to/your/local/file.zip
path=http://somedomain/file.zip
Postmanでは、インポートせずに、以下に示すようにヘッダータブと本文タブに入力する必要があります。
すべての画像がアップロードされるまで時間がかかります。すべての画像が正常にアップロードされたとすると、応答にはdatasetId
が含まれます。 (メインのid
として繰り返され、カテゴリごとに1回)。これは将来の呼び出しで使用されます。
データセットをアップロードしたら、アップロードしたばかりのデータを使用してモデルをトレーニングする必要があります。モデルをトレーニングするには、次の呼び出しを使用します。
curl -X POST -H 'Authorization: Bearer ' -H 'Cache-Control: no-cache' -H 'Content-Type: multipart/form-data' -F 'name=Landline and SmartPhone Model' -F 'datasetId=' https://api.einstein.ai/v2/vision/train
データセットのトレーニングは通常、キューに配置され、それに応じてmodelId
を取得します。その後、別のエンドポイントをチェックして、モデルがトレーニングされているかどうかを確認できます。
curl -X GET -H 'Authorization: Bearer ' -H 'Cache-Control: no-cache' https://api.einstein.ai/v2/vision/train/
モデルがトレーニングされると、次のような応答が返されます。
これがその核心です。モデルがトレーニングされると、画像を送信できるようになります。モデルは、定義した各カテゴリの確率値を返します。現在のモデルでは、予測用にiPhoneXのストック画像を選択しました。
予測自体には、次のエンドポイントを使用します。
C ++ロボットプログラミング
curl -X POST -H 'Authorization: Bearer ' -H 'Cache-Control: no-cache' -H 'Content-Type: multipart/form-data' -F '' -F 'modelId=' https://api.einstein.ai/v2/vision/predict
今回は似ていますが、異なるキーが使用されており、3番目のオプションがあります。
[email protected] /path/to/your/local/file.zip
sampleLocation=http://somedomain/file.zip
sampleBase64Content=iVBORw0KGgoAAAANSUhEUgAAAC0...
(つまり、このアップロード方法を使用する場合は、プレフィックスは必要ありません。生のbase 64部分だけが必要です。)
スクリーンショットと確率の値を見ると、モデルはiPhoneXの画像がスマートフォンのカテゴリに分類されることを正常に予測しました。成功!
ユースケースが何であれ、Einstein Visionが、トレーニングしたカテゴリの1つに該当する画像を提供していると想定しているかどうかを調査する必要があります。テストの結果、上記のモデルにヨットの写真を送信したところ、スマートフォンと固定電話のどちらでもないように見えるのではなく、スマートフォンと固定電話のどちらかを推測するのが最善であることがわかりました。言い換えれば、それがあなたのヨットの写真が固定電話またはスマートフォンである場合に与える評価は、正当な入力の場合と同じように、合計で1になります。
ただし、一部のビルド済みモデルには、Other
のようなカテゴリがあります。 (SceneClassifier
モデルの場合)およびUNKNOWN
(FoodImageClassifier
の場合)。したがって、特定のコンテキストで実験する価値があります。そうすれば、与えられたカテゴリに適合しない画像をフィードしたい場合に何が期待できるかを知ることができます。
「マルチラベル」タイプのモデルもあります。これは、複数のカテゴリが適用されることを前提として、確率で並べ替えられたすべてのカテゴリを返します。つまり、確率の合計は1になりません。それがあなたがしていることのように聞こえる場合、新しくリリースされたものを調べる価値があります アインシュタインオブジェクト検出 。画像に何が含まれているのか(全体)を伝えるだけでなく、実際には予測とともに境界ボックスが表示されます。これは、顔に限定されないことを除けば、Facebookの自動タグ付けで見たものと似ています。
モバイルデザインを作成するときに覚えておくべき重要なことは次のうちどれですか?
独自のモデルをトレーニングする場合、Salesforce Einsteinでは理論的にはインテントとセンチメントの両方をトレーニングできますが、わざわざインテントをトレーニングするだけの方がはるかに一般的です。インテントモデルのトレーニングは上記で行ったものと似ていますが、画像のフォルダーの代わりに、列Aにテキストを、列Bに対応するカテゴリを含む2列のCSVファイルを提供します(TSVまたはJSONもサポートしています)。 )
トレーニング手順はほぼ同じであるため、この時点で、case_routing_intent.csv
で提供されるトレーニングデータを使用してEinsteinIntentモデルをトレーニング済みであると想定します。 EinsteinSentimentの標準のビルド済みモデルを使用しても問題ありません。
アインシュタインの意図予測の呼び出しは、次のように簡単です。
curl -X POST -H 'Authorization: Bearer ' -H 'Cache-Control: no-cache' -H 'Content-Type: multipart/form-data' -F 'modelId=' -F 'document=' https://api.einstein.ai/v2/language/intent
ここでは、「貨物の追跡番号を取得するにはどうすればよいですか?」のようになります。
API呼び出しは、ビルド済みのmodelId CommunitySentiment
を使用できることを除いて、EinsteinSentimentと同じです。 (そして異なるエンドポイントに注意してください):
curl -X POST -H 'Authorization: Bearer ' -H 'Cache-Control: no-cache' -H 'Content-Type: multipart/form-data' -F 'modelId=CommunitySentiment' -F 'document=How can I get a tracking number for my shipment?' https://api.einstein.ai/v2/language/sentiment
どちらの場合も、JSON出力はEinstein画像分類の予測応答形式とまったく同じように見えます。主要な実体はキーprobabilities
に関連付けられた配列にあり、各配列要素はラベルと確率を提供します。これですべてです。
これで、EinsteinVisionとEinsteinLanguageを使用することがいかに簡単であり、EinsteinAPIが名前以外のSalesforce開発者APIとは何の関係もないことを確認できました。何が 君は それらで作成しますか?
Salesforce Einstein APIを介してAIクラウドにアクセスするには、アカウントにサインアップし、秘密鍵を取得し、それを使用してトークンを生成する必要があります。そこから、トークンを任意のEinsteinAPI呼び出しに使用できます。
Salesforce(またはHeroku)アカウントを取得したら、SalesforceでAPIを使用するかどうかに関係なく、https://api.einstein.ai/signupのEinsteinサインアップページからAPIアクセスの有効化(および秘密鍵の取得)を行います。アプリまたはSalesforce以外のアプリ。