Salesforce Einstein AI: Bir API Eğitimi
Yayınlanan: 2022-03-11Salesforce dışı uygulama geliştiricileri, AI dünyasında gizli bir mücevheri kaçırıyor olabilir.
Geliştiriciler, AI için bulut kullanmayı düşündüklerinde, IBM Watson, Microsoft Azure Bilişsel Hizmetler, Google Cloud veya Amazon AI'yı düşünebilirler. Salesforce Einstein'ı duyduklarında, otomatik olarak bunun Salesforce geliştirici uzmanlığıyla sınırlı olduğunu varsayabilirler.
Öyle değil! Salesforce ile ilgili olsun ya da olmasın herhangi bir uygulama, Salesforce'un edindiği gelişmiş AI bulut teknolojilerinden yararlanabilir. Yapay zeka pazarına kendi yapay zeka bulut hizmetleri düzenlemeleri olan Salesforce Einstein ile girdiler. Özellikle bu, dil ve görüntü tanıma hizmetlerinin tekliflerini içerir.
Diğer AI bulut çözümlerinde olduğu gibi, altındaki ağır teknolojileri kullanmak için doktora sahibi olmanız gerekmez. Bu Salesforce Einstein API eğitiminde size nasıl hesap oluşturacağınızı ve ilk AI bulut API çağrılarınızı nasıl yapacağınızı göstereceğim. Aramalar için cURL ve Postman ile oynayacağız, ancak kendi arka uç prototipinizi veya en rahat ettiğiniz başka herhangi bir teknolojiyi de yapabilirsiniz.
Oradan, gökyüzü sınırdır.
Salesforce Einstein API Hesabı Oluşturma
Einstein Platform API çağrıları yapmak için önce bir Einstein API hesabı oluşturmanız, anahtarı indirmeniz ve bu anahtarı kullanarak bir Salesforce OAuth belirteci oluşturmanız gerekir. Hem Einstein Vision'ı hem de Einstein Language'i kullanabilmek için işlemin yalnızca bir kez yapılması yeterlidir.
Salesforce veya Heroku kimlik bilgilerinizi kullanarak giriş yapabilirsiniz. Yukarıdaki seçeneklerden herhangi birini seçtiğinizde, ilgili giriş sayfalarına yönlendirileceksiniz. Heroku ile oturum açarsanız, onlarla bir kredi kartı ayarlamanızı ve hizmeti belirli bir Heroku örneğinize eklemenizi isterler.
Salesforce'ta yeniyseniz ve bir Heroku hesabınız yoksa, onlarla bir hesap oluşturmak oldukça hızlıdır; hatta Google'da olduğu gibi önceden var olan bir sosyal hesap aracılığıyla kaydolmak istiyorsanız daha da hızlıdır.
Buradan, Heroku yerine Salesforce (bir sosyal hesap aracılığıyla veya değil) kullandığınızı varsayacağız. İşlem biraz geri izlemeyi içerir, bu nedenle bu adımlara çok dikkat etmek isteyeceksiniz.
Salesforce'a giriş yaptığınızda, Einstein ile pek alakası olmayan bir tur ekranı ile karşılaşacaksınız. Bu noktada, e-postanızı kontrol etmeli ve doğrulama bağlantılarına tıklamalısınız; aksi takdirde sonraki adım bir hatayla sonuçlanacaktır.
Einstein API Simgesi Alma
Sonraki adım, ilk Einstein API kayıt bağlantısına geri dönmek ve Salesforce oturum açma düğmesini tekrar denemektir. Bundan sonra, hesabınızı Google gibi harici bir yetkilendirme iş ortağının yardımıyla oluşturmuş olsanız bile yeni bir şifre belirleyecek ve tekrar tur sayfasına yönlendirileceksiniz.
Şimdi, API kayıt sayfasına üçüncü kez geri dönün ve Salesforce oturum açma düğmesini tekrar tıklayın. Bu sefer aşağıda gösterildiği gibi bir sayfa alacaksınız. E-postanızı doğrulamanız gerektiğini söylese bile , özel anahtarınızı indirmeden bu sayfadan ayrılmayın ! Bunu yaparsanız, özel anahtarınızı destek ekiplerinden manuel yardım almadan almanın bir yolu olmayacaktır.
Dosyayı yerel makinenize indirebilir veya anahtarı kopyalayıp bir metin düzenleyiciye yapıştırabilir ve dosyayı einstein_platform.pem
olarak kaydedebilirsiniz.
Bu arada, belirtildiği gibi, sizi bekleyen başka bir doğrulama e-postanız olacak, bu Einstein'a özel. Bu doğrulama bağlantısını da tıklayın.
Artık özel bir anahtarınız olduğuna göre, zaman sınırlı jetonlar oluşturabilirsiniz. Veri kümeleri oluşturmaktan eğitim modellerine ve model tahminine kadar yaptığınız her API çağrısı, istek başlığında geçerli bir OAuth belirtecine ihtiyaç duyar. Belirteci almak için belirteç oluşturucuya gitmeniz ve giriş yapmak için kullandığınız e-posta adresini kullanmanız gerekir. Yukarıda aldığınız özel anahtar dosyasını yapıştırın veya yükleyin.
Salesforce Einstein API ile uygulamalı
Yapay zeka bulutunu Salesforce Einstein aracılığıyla kullanmak, örnek verileri yükleyerek yapay zeka ağlarını nasıl eğiteceklerine dair bazı temel kavramları içerir. Bu tanıdık gelmiyorsa, önceki eğitimim, hem Einstein Dili hem de Einstein Vizyonu için Salesforce Einstein ile çalışmaya ilişkin bazı örnekler verir.
Bundan memnun olduğunuzu varsayarsak, şimdi cURL veya Postman aracılığıyla Einstein Image Classification REST API'sini kullanacağız. Postacı kullanıyorsanız, cURL aramamız olan her yerde Postacı'nın içe aktarma özelliğini kullanabilirsiniz:
Akıllı telefon ile sabit hatlı telefonu görsellere göre ayırt etmek istediğiniz ve bu öngörüyü kullanarak potansiyel müşteri puanınızı güncellemek veya kullanım durumunuzu işlemek istediğiniz yararlı bir iş gereksinimiyle karşılaştığınızı varsayalım.
Bir sonraki adım kendi veri setimizi oluşturmaktır. Lütfen daha önce kategorize edilmiş en az 40 örneğe ihtiyacınız olduğunu unutmayın. (Şu anda yatırım yapmak istediğinizden daha fazla zaman varsa, aşağıdaki tahmin bölümüne atlayabilirsiniz. Sadece SceneClassifier
, FoodImageClassifier
, GeneralImageClassifier
veya MultiLabelImageClassifier
için bir modelId
kullanın.)
Bizim durumumuzda iki kategorimiz var: akıllı telefonlar ve sabit telefonlar. Akıllı telefonlar ve sabit telefonlar olarak etiketleyerek iki klasör oluşturuyoruz ve her klasöre resim ekliyoruz. Daha sonra bu klasörleri içeren bir zip dosyası (yalnızca zip: örneğin 7z çalışmıyor) oluştururuz.
Veri kümeleri oluşturmak için kullanılan bu Einstein API uç noktası aşağıdaki gibidir:
curl -X POST \ -H "Authorization: Bearer <TOKEN>" \ -H "Cache-Control: no-cache" \ -H "Content-Type: multipart/form-data" \ -F "type=image" \ -F "<ZIP_LOCATION>" \ https://api.einstein.ai/v2/vision/datasets/upload/sync
Burada <ZIP_LOCATION>
şu örneklerden biri gibi olabilir:
-
data=@/path/to/your/local/file.zip
-
path=http://somedomain/file.zip
Postman'da, içe aktarmadan, başlık ve gövde sekmelerini aşağıda gösterildiği gibi doldurmanız gerekir:

Tüm resimler yüklenene kadar zaman alacaktır. Tüm görüntülerin başarıyla yüklendiğini varsayarsak, yanıtın gelecekteki çağrılarda kullanılacak bir datasetId
(ana id
olarak ve kategori başına bir kez tekrarlanır) olacaktır.
Veri kümeniz yüklendikten sonra, yeni yüklediğiniz verileri kullanarak modeli eğitmeniz gerekir. Modeli eğitmek için aşağıdaki çağrıyı kullanın:
curl -X POST \ -H "Authorization: Bearer <TOKEN>" \ -H "Cache-Control: no-cache" \ -H "Content-Type: multipart/form-data" \ -F "name=Landline and SmartPhone Model" \ -F "datasetId=<DATASET_ID>" \ https://api.einstein.ai/v2/vision/train
Veri kümesinin eğitimi normalde kuyruklarına yerleştirilir ve yanıt olarak modelId
. Bundan sonra, modelin henüz eğitilip eğitilmediğini öğrenmek için başka bir uç noktayı kontrol edebiliriz:
curl -X GET \ -H "Authorization: Bearer <TOKEN>" \ -H "Cache-Control: no-cache" \ https://api.einstein.ai/v2/vision/train/<YOUR_MODEL_ID>
Model eğitildiğinde şöyle bir yanıt alırsınız:
Görüntü Tahmini için Einstein Vision'ı Kullanma
İşte işin kalbi. Model eğitildikten sonra artık bir görüntü gönderebilirsiniz ve model tanımladığımız her kategori için olasılık değerleri döndürecektir. Mevcut model için tahmin için bir stok iPhone X görüntüsü seçtik.
Tahminin kendisi için aşağıdaki uç noktayı kullanırız:
curl -X POST \ -H "Authorization: Bearer <TOKEN>" \ -H "Cache-Control: no-cache" \ -H "Content-Type: multipart/form-data" \ -F "<IMAGE_LOCATION>" \ -F "modelId=<YOUR_MODEL_ID>" \ https://api.einstein.ai/v2/vision/predict
Bu sefer <IMAGE_LOCATION>, <ZIP_LOCATION>
<IMAGE_LOCATION>
ile benzer, ancak farklı anahtarlar kullanılıyor ve üçüncü bir seçenek var:
-
sampleContent=@/path/to/your/local/file.zip
-
sampleLocation=http://somedomain/file.zip
-
sampleBase64Content=iVBORw0KGgoAAAANSUhEUgAAAC0...
(Diğer bir deyişle, herhangi bir ön eke ihtiyacınız yok, bu yükleme yöntemini kullanmak istiyorsanız sadece ham taban 64 parçasına ihtiyacınız var.)
Model, ekran görüntüsü ve olasılık değerlerine bakıldığında iPhone X görüntüsünün akıllı telefon kategorisi altında sınıflandırıldığını başarılı bir şekilde öngördü. Başarı!
Kullanım durumunuz ne olursa olsun, Einstein Vision'ın, onu eğittiğiniz kategorilerden birine giren bir görüntü sağladığınızı varsayıp varsaymadığını araştırmak isteyeceksiniz. Testlerde, yukarıdaki modele bir yelkenli resmi gönderdiğimizde, bunun da öyle görünmediğini belirtmek yerine akıllı telefonlar ve sabit telefonlar arasında en iyi tahmini yaptığını keşfettik. Diğer bir deyişle, yelkenli resminizin sabit hat veya akıllı telefon olması için verdiği puanlar, tıpkı meşru girdilerde olduğu gibi, yine de 1'e ulaşır.
Ancak, bazı önceden oluşturulmuş modellerde Other
( SceneClassifier
modeli için) ve UNKNOWN
( FoodImageClassifier
için) gibi kategoriler bulunur. Bu nedenle, belirli bağlamınız için denemeye değer, böylece ona verilen kategorilere uymayan görüntüleri beslemek istiyorsanız ne bekleyeceğinizi bilebilirsiniz.
Ayrıca, birden çok kategorinin geçerli olduğu varsayımıyla, olasılığa göre sıralanmış tüm kategorileri döndüren "çok etiketli" bir model türü de vardır - yani, olasılıkların toplamı 1 değildir. , yeni çıkan Einstein Nesne Algılama'yı incelemeye değer. Size yalnızca bir görüntüde ne olabileceğini söylemek yerine - genel olarak - size tahminlerle birlikte sınırlayıcı kutular verir. Bu, yüzlerle sınırlı olmaması dışında, Facebook'ta otomatik etiketleme ile görmüş olabileceğiniz şeye benzer.
Salesforce Einstein Dili: Niyet ve Duygu
Kendi modelinizi eğitmek istiyorsanız, Salesforce Einstein teorik olarak hem Niyeti hem de Duyguyu eğitmenize izin verir, ancak yalnızca Niyeti eğitmekle uğraşmak çok daha yaygındır. Bir Intent modelini eğitmek, yukarıda anlattıklarımıza benzer, ancak resim klasörleri yerine, A sütununda metinler ve B sütununda bunlara karşılık gelen kategorileri içeren iki sütunlu bir CSV dosyası sağlarsınız. (Bunlar ayrıca TSV veya JSON'u da destekler. )
Eğitim adımları büyük ölçüde aynı olduğundan, bu noktada, case_routing_intent.csv
sağladıkları eğitim verileriyle bir Einstein Intent modelini zaten eğittiğinizi ve Einstein Sentiment için önceden oluşturulmuş standart modeli kullanmakta sorun olmadığını varsayacağız.
Einstein Intent tahmin çağrıları şu kadar kolaydır:
curl -X POST \ -H "Authorization: Bearer <TOKEN>" \ -H "Cache-Control: no-cache" \ -H "Content-Type: multipart/form-data" \ -F "modelId=<MODEL_ID>" \ -F "document=<TEXT_TO_PREDICT>" \ https://api.einstein.ai/v2/language/intent
Burada <TEXT_TO_PREDICT>
, "Gönderimin takip numarasını nasıl alabilirim?" gibi bir şey olabilir.
API çağrısı, önceden oluşturulmuş modelId CommunitySentiment
kullanabilmeniz (ve farklı uç noktaya dikkat etmeniz) dışında Einstein Sentiment ile aynıdır:
curl -X POST \ -H "Authorization: Bearer <TOKEN>" \ -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
Her iki durumda da JSON çıktısı tam olarak Einstein Görüntü Sınıflandırması için tahmin yanıt formatına benziyor: Ana madde, anahtar probabilities
ilişkili bir dizidedir ve her dizi öğesi size bir etiket ve bir olasılık verir. Hepsi bu kadar!
Salesforce Einstein ile Kolay Yapay Zeka
Artık Einstein Vision ve Einstein Language kullanmanın ne kadar basit olduğunu ve Einstein API'lerinin ad dışında diğer Salesforce geliştirici API'leriyle hiçbir ilgisi olmadığını gördünüz. Onlarla ne yaratacaksınız?