Разработчиците на приложения, които не са от Salesforce, може да пропуснат скрит скъпоценен камък в света на ИИ.
Когато разработчиците мислят да използват облака за AI, те могат да помислят за IBM Watson, Microsoft Azure Cognitive Services, Google Cloud или Amazon AI. Когато чуят за Salesforce Einstein, те може автоматично да приемат, че това е ограничено до Разработчик на Salesforce специализация.
Не е така! Всяко приложение, независимо дали е свързано с Salesforce или не, може да използва усъвършенстваните AI облачни технологии, които Salesforce е придобил. Те навлязоха на пазара на изкуствен интелект със Salesforce Einstein, тяхната собствена оркестрация на облачни услуги на AI. По-специално това включва предложения за услуги за разпознаване на език и изображение.
Както при другите AI облачни решения, не е нужно да имате докторска степен, за да използвате отдолу тежките технологии. В този урок за API на Salesforce Einstein ще ви покажа как да настроите акаунт и да извършите първите си AI извиквания в облачен API. За самите разговори ще играем с cURL и Postman, но можете също така да направите своя собствен прототип или каквато и да е друга технология, която ви харесва.
Оттам небето е границата.
За да осъществите повиквания на API на платформата на Айнщайн, първо трябва създайте акаунт в API на Айнщайн , изтеглете ключа и генерирайте маркера OAuth на Salesforce, използвайки този ключ. Процесът трябва да се извърши само веднъж, за да можете да използвате както визията на Айнщайн, така и езика на Айнщайн.
Можете да влезете с помощта на вашия Salesforce или Heroku акредитивни писма. При избора на някоя от горните опции ще бъдете пренасочени към съответните им страници за вход. Ако влезете с Heroku, те изискват да настроите кредитна карта с тях и да прикачите услугата към конкретен ваш екземпляр Heroku.
Ако сте нов в Salesforce и нямате Heroku акаунт, създаването на акаунт при тях е доста бързо - дори по-бързо, ако искате да се регистрирате чрез вече съществуващ социален акаунт като този с Google.
От тук ще предположим, че използвате Salesforce (чрез социален акаунт или не) вместо Heroku. Процесът включва малко проследяване, така че ще искате да обърнете голямо внимание на тези стъпки.
След като влезете в Salesforce, ще се изправите пред обиколен екран, който няма много общо с Айнщайн. В този момент трябва да проверите имейла си и да кликнете върху връзката за потвърждение; в противен случай следващата стъпка ще доведе до грешка.
Следващата стъпка е да се върнете обратно към тази първоначална връзка за регистрация на API на Айнщайн и опитайте отново бутона за влизане в Salesforce. След това ще зададете нова парола - дори ако сте създали акаунта си с помощта на външен партньор за оторизация като Google - и отново ще бъдете пренасочени към страницата на обиколката.
Сега завъртете обратно трети път до страницата за регистрация на API и кликнете отново бутона за вход в Salesforce. Този път ще получите страница, както е показано по-долу. Не напускайте тази страница, преди да изтеглите личния си ключ , въпреки че може да пише, че трябва да потвърдите имейла си! Ако го направите, няма да можете да получите личния си ключ без ръчна помощ от техния екип за поддръжка.
Можете или да изтеглите файла на локалната си машина, или да копирате и поставите ключа в текстов редактор и да запишете файла като einstein_platform.pem
.
Междувременно, както споменахме, ще ви очаква друг имейл за потвърждение, като този е специфичен за Айнщайн. Щракнете и върху тази връзка за потвърждение.
Сега, когато имате частен ключ, можете да генерирате ограничени във времето токени. Всяко извикване на API, което правите - от създаване на набори от данни, до модели за обучение, до прогнозиране на модели - се нуждае от валиден OAuth маркер в заглавката на заявката. За да вземете жетона, трябва да отидете на техния генератор на жетони и използвайте същия имейл адрес, който сте използвали за влизане. Поставете или качете файла с частния ключ, който сте получили по-горе.
Използването на AI облака чрез Salesforce Einstein включва някои основни концепции за това как да се обучи тяхната мрежа за изкуствен интелект чрез качване на примерни данни. Ако това не ви звучи познато, предишния ми урок дава някои примери за работа с Salesforce Einstein - както за Einstein Language, така и за Einstein Vision.
Ако приемем, че се чувствате добре с това, сега ще използваме REST API за класификация на изображенията на Айнщайн чрез cURL или Postman. Ако използвате Postman, навсякъде, където имаме повикване cURL, можете да използвате функцията за импортиране на Postman:
Да предположим, че сте попаднали на полезно бизнес изискване, при което искате да различавате смартфона и стационарния телефон въз основа на изображения и, използвайки тази предикация, искате да актуализирате резултата си за възможни клиенти или да обработите случая на вашето използване.
Следващата стъпка е създаването на наш собствен набор от данни. Моля, обърнете внимание, че имате нужда от поне 40 примера, които вече са категоризирани. (Ако това е повече време, отколкото искате да инвестирате в момента, можете да преминете към раздела за прогнози по-долу. Просто използвайте modelId
от FoodImageClassifier
, GeneralImageClassifier
, SceneClassifier
, или MultiLabelImageClassifier
.)
В нашия случай имаме две категории: смартфони и стационарни телефони. Създаваме две папки, като ги обозначаваме като смартфони и стационарни телефони и добавяме изображения във всяка папка. След това създаваме zip файл (само zip: 7z не работи например), съдържащ тези папки.
Тази крайна точка на API на Айнщайн, която се използва за създаване на набори от данни, е следващата:
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
и веднъж за категория), което ще се използва при бъдещи повиквания.
След като вашият набор от данни е качен, трябва да обучите модела, като използвате данните, които току-що сте качили. За да обучите модела, използвайте следното обаждане:
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/
Когато моделът бъде обучен, ще получите отговор по следния начин:
Ето сърцето му. След като моделът бъде обучен, вече можете да изпратите изображение и моделът ще върне стойности на вероятността за всяка категория, която сме определили. За настоящия модел избрахме запасно изображение на iPhone X за прогнозиране.
За самата прогноза използваме следната крайна точка:
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
Този път е подобен на, но се използват различни клавиши и има трета опция:
[email protected] /path/to/your/local/file.zip
sampleLocation=http://somedomain/file.zip
sampleBase64Content=iVBORw0KGgoAAAANSUhEUgAAAC0...
(С други думи, не се нуждаете от никакъв префикс, а само от суровата част 64, ако искате да използвате този метод за качване.)
Разглеждайки екранната снимка и стойностите на вероятността, моделът успешно прогнозира, че изображението на iPhone X е класифицирано в категорията на смартфона. Успех!
Какъвто и да е случаят ви на използване, ще искате да проучите дали Einstein Vision предполага, че предоставяте изображение, което попада в една от категориите, в които сте го обучавали. При тестването открихме, че когато изпратихме на горния модел снимка на платноходка, той направи най-доброто предположение между смартфони и стационарни телефони, вместо да посочи, че не изглежда нито едно от двете. С други думи, рейтингите, които тя дава за вашата картина на платноходка като стационарен телефон или смартфон, все още се добавят до 1, точно както биха получили с легитимен вход.
Някои предварително изградени модели обаче имат категории като Other
(за модела SceneClassifier
) и UNKNOWN
(за FoodImageClassifier
). Така че си струва да експериментирате за вашия конкретен контекст, за да можете да знаете какво да очаквате, ако искате да го подадете на изображения, които не отговарят на дадените му категории.
Съществува и типът „multi-label“ модел, който връща всички категории, сортирани по вероятност, с предположението, че се прилагат множество категории - т.е. вероятностите не се събират до 1. Ако това звучи по-скоро като това, което правите , струва си да разгледаме новоиздаденото Откриване на обект на Айнщайн . Вместо просто да ви каже какво може да има в изображението - като цяло - всъщност ви дава ограничителни полета заедно с прогнозите. Това е подобно на това, което може да сте виждали с автоматично маркиране във Facebook, с изключение на това, че не е ограничено до лица.
Ако искате да обучите свой собствен модел, Salesforce Einstein теоретично ви позволява да тренирате както Intent, така и Sentiment, но е много по-често да се занимавате само с Intent. Обучението на модел на намерение е подобно на това, което преминахме по-горе, но вместо папки с изображения, вие предоставяте CSV файл с две колони, с текстове в колона A и съответстващите им категории в колона B. (Те също поддържат TSV или JSON. )
Тъй като стъпките на обучение са до голяма степен еднакви, на този етап ще приемем, че вече сте обучили модел на Айнщайн с намерение с данните за обучение, които те предоставят в case_routing_intent.csv
и са добре, използвайки стандартния предварително изграден модел за Айнщайн Сентимент.
Обажданията за предсказване на Айнщайн са толкова лесни, колкото:
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 извикването е същото с Einstein Sentiment, с изключение на това, че можете да използвате предварително изградения modelId CommunitySentiment
(и обърнете внимание на различната крайна точка):
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 и в двата случая изглежда точно като формата за реакция на предсказване за класификация на изображенията на Айнщайн: Основното вещество е в масив, свързан с ключа probabilities
, и всеки елемент на масив ви дава етикет и вероятност. Това е всичко!
Вече видяхте колко лесно е да използвате Einstein Vision и Einstein Language и как API на Айнщайн нямат нищо общо с останалите API за разработчици на Salesforce, освен по име. Какво ще Вие да създавате с тях?
Достъпът до облака на AI чрез API на Salesforce Einstein изисква регистрация за акаунт, получаване на частен ключ и използването му за генериране на маркер. Оттам маркерът може да се използва за всяко обаждане на API на Айнщайн.
След като имате акаунт в Salesforce (или Heroku), разрешаването на достъп до API (и получаване на частен ключ) се извършва чрез страницата за регистрация на Айнщайн на https://api.einstein.ai/signup дали планирате да използвате API в Salesforce приложение или не-Salesforce приложение.