使用Java程式消費SAP Leonardo的機器學習API

dicksonjyl560101發表於2018-08-11

http://blog.itpub.net/24475491/viewspace-2154590/



使用Java程式消費SAP Leonardo的機器學習API

開發一個Java程式,使用者可以指定一張圖片,該Java程式呼叫SAP Leonardo上訓練好的機器學習API,該API會識別該圖片,給使用者返回一個文字資訊,告訴使用者識別結果。

    使用Java程式消費SAP Leonardo的機器學習API


  1. SAP Leonardo Machine Learning - Functional Services


  2. 使用Java程式消費SAP Leonardo的機器學習API


    使用Java程式消費SAP Leonardo的機器學習API


    使用Java程式消費SAP Leonardo的機器學習API



    使用Java程式消費SAP Leonardo的機器學習API


  3. 下面我們需要使用Java程式來呼叫API。
    1. 使用Java程式消費SAP Leonardo的機器學習API


    2. 可以看到該SDK是一個基於Gradle的Java專案。您需要下載Maven和Gradle並完成環境變數的配置,這些配置非常基礎,在網上有大量資料,這裡不再重複。


    3. 完成配置後,使用Eclipse的import功能,將SDK匯入到Eclipse裡。

    匯入完成後如圖。紅色區域是SDK自帶的程式碼,藍色區域是Jerry自己手動建立的程式碼,用於呼叫API並列印結果。

    雙擊根目錄下的pom.xml, 將如下依賴關係維護進去:

    使用Java程式消費SAP Leonardo的機器學習API


    使用Java程式消費SAP Leonardo的機器學習API

      使用Java程式消費SAP Leonardo的機器學習API


      使用Java程式消費SAP Leonardo的機器學習API


      錯誤分析

      我們再回到API控制檯,API響應結構裡request欄位的型別宣告為string。

      然而透過測試發現,request欄位的內容實際是一個Json物件:


      使用Java程式消費SAP Leonardo的機器學習API


      使用Java程式消費SAP Leonardo的機器學習API


    1. 知道了問題根源,改起來就容易了。新建一個Gson容器類Request.java, 然後按照控制檯裡觀察到的request欄位的結構,為Request.java維護對應的成員變數。

    2. 例如tenantName在API響應結構裡是一個String,因此在Java類裡的型別是String;files在API響應結構裡是一個陣列,因此在Java類裡的型別為List<String>。

    3. 使用Java程式消費SAP Leonardo的機器學習API


    4. 調整完畢之後再次執行,能看到期望的輸出結果:透過SDK呼叫API並列印結果。
    5. <p font-size:16px;white-space:normal;background-color:#ffffff;word-break:break-word="" !important;"="" style="margin-top: 0px; margin-bottom: 25px; padding: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); font-family: -apple-system, 'SF UI Text', Arial, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif; line-height: 28px; color: rgb(47, 47, 47); text-align: justify; white-space: normal; box-sizing: border-box; background-color: rgb(255, 255, 255);">更多Leonardo精彩,盡在


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2199846/,如需轉載,請註明出處,否則將追究法律責任。

相關文章