如何在Web应用里消费SAP Leonardo的机器学习API
去年5月的時候,Jerry曾經寫了一篇文章:使用Java程序消費SAP Leonardo的機器學習API,而最近另外做的一個項目,
需要在Web應用里做同樣的事情。
因為有了前一篇文章的鋪墊,避免了很多重復的工作量。本文還是選擇使用SAP Leonardo里的一個Product Image Classification API,即給定一張產品的圖片,該API能識別出此產品的類別。
再回顧下這個API的功能:該API的模型是由SAP基于大約5萬張Icecat圖片訓練而成,能區分29種不同的類別,這些類別具體羅列于官方文檔上,比如電腦顯示器,數碼相機,外部存儲設備,鍵盤,液晶電視,手機充電器,筆記本和其他外設等等。如果我們消費這個API時指定的圖片代表的產品不屬于這29種類別之一,API的表現如何?先賣個關子,文末解答。
關于如何在api.sap.com里找到這個API并且在API console里測試,請參考Jerry之前的文章:使用Java程序消費SAP Leonardo的機器學習API。
這里假定我們已經找到了該API,點擊進入明細頁面,將API Key復制下來,后續的UI5應用需要使用到。
然后進入SAP云平臺的Neo環境。Jerry這個練習,使用免費的SAP Cloud Platform Neo測試環境即可。
在Service列表里找到WebIDE——我們將使用WebIDE進行UI5應用的開發。
Jerry已經開發好了一個UI5應用上傳到我的Github上了:https://github.com/i042416/MachineLearning-UI5
大家可以直接在WebIDE里clone這個倉庫,或者把倉庫的內容以zip包的形式下載到本地,再使用WebIDE的本地Import功能導入。
我們要告訴UI5應用這個API的url,因此在Neo環境里創建一個Destination(作用和ABAP Netweaver事務碼SM59里創建的Destination相同):
屬性如上圖所示,因為是Neo測試環境,所以url為對應的sandbox環境:https://sandbox.api.sap.com/ml
記下這個Destination名稱sapui5ml-api, 因為稍后的UI5代碼里需要使用。
記得維護額外的屬性WebIDEnabled為true,這樣該Destination才能在UI5應用里被使用。點擊Check Connection確保看到綠燈。
打開WebIDE里UI5工程里的settings.json文件,將您之前從API console里拷貝的API Key粘貼到此處:
在項目根目錄下的neo-app.json文件里,把類型為destination的target對象的名稱維護成之前在SAP Cloud Platform Cockpit里創建的destination相同的名稱。
運行這個UI5應用,能看到如下界面:
做一些簡單的測試:
SAP Leonardo的機器學習API,識別出這張圖片有74.7%的可能性是一臺筆記本電腦,13.8%的可能性是鍵盤,11.3%的可能性是Tablets。
點擊按鈕View JSON,能看到調用SAP Leonardo API返回的技術明細。
鼠標的圖片也成功識別出來了:
本文開始曾經提到這個API能識別出29種不同的產品類別,現在換一種產品,如下圖:
這是Jerry小時候就很癡迷的《終結者》系列的T800,我在2017年回復SAP社區上一篇博客時也引用到了這款經典的模型,和阿諾德 - 施瓦辛格那句激勵無數中老年程序員的著名臺詞:I am old but I am NOT OBSOLETE
原文鏈接: https://blogs.sap.com/2016/12/19/and-now-for-something-completely-different/
言歸正傳,如果希望SAP Leonardo的Product Image Classification API也能成功將T800識別出來,需要做些什么?
答案是重新訓練模型。具體如何做,Jerry也還在研究,等研究完畢再分享。感謝閱讀。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的如何在Web应用里消费SAP Leonardo的机器学习API的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP Leonardo 机器学习插件的
- 下一篇: SAP CRM WebClient UI