摘要:也完美地將不需要應用開發人員了解的機器學習底層細節進行了封裝,我們將要做的這個聊天機器人甚至不需要太多的編碼。回到我創建的聊天機器人,目前沒有分配任何。最后,我們可以把這個創建好的聊天機器人進行發布,讓它可以被其他平臺消費。
很多SAP顧問朋友們對于人工智能/機器學習這個話題非常感興趣,也在不斷思考如何將這種新技術和SAP傳統產品相結合。Jerry之前的微信公眾號文章C4C和微信集成系列教程曾經介紹了Partner如何利用SAP Cloud for Customer內置的社交媒體集成框架,做一些簡單的開發將微信集成到C4C中去。該系列教程里其中一篇文章,介紹了如何將圖靈機器人集成到某個微信公眾號的消息服務器上去,讓該微信公眾號可以“智能地”同其關注粉絲聊天。
這個圖靈機器人的圖靈服務通過Restful API的方式暴露出來,所有和機器學習相關的細節都被www.tuling123.com封裝成黑盒子,應用開發人員只管消費。這是第三方的人工智能解決方案。
2018年1月,SAP收購了一家法國的人工智能提供商,Recast.AI, 從此SAP也有了自己的人工智能解決方案。
現在,訪問https://recast.ai, 能看到一行醒目的提示:Recast.AI is now part of SAP。那么Recast.AI提供了怎樣的功能呢?最好的入門辦法,莫過于自己動手做一個Hello World例子出來。跟著Jerry一塊做一個吧。
我們的目的同本文開頭截圖展示的一致:開發一個在微信里使用的聊天機器人,不同之處在于這次我們使用SAP Recast.AI作為人工智能解決方案。
絕大多數SAP顧問朋友們關注的是如何利用人工智能基于SAP傳統產品做創新,給客戶帶來價值,而不是花大量時間精力去學習機器學習底層需要的那些艱深的數學知識。Recast.AI也完美地將不需要應用開發人員了解的機器學習底層細節進行了封裝,我們將要做的這個聊天機器人甚至不需要太多的編碼。
我們在Recast.AI網站上在線創建聊天機器人。一般網站首次登陸都需要先創建用戶,而Recast.AI除了常規用戶注冊方式外,還貼心地提供了使用Github賬號直接登錄的選擇,對于每天混Github的程序員來說,這太方便了。
點擊按鈕允許Recast.AI訪問您Github賬號的公有信息后,能看到這個歡迎界面:
點"START WITH A TEMPLATE"基于現成的模板創建一個機器人:
和我們在Fiori UI里進行業務模型創建類似,首先維護機器人的ID和描述信息:
創建成功后,來到如下的機器人明細頁面,一共包含5個標簽。本文只會用到Train, Build和Connect這三個標簽。
Train標簽下沒有任何內容,只有一個提示:You have no intents.
什么是intent呢?在Android開發里也有intent的概念,intent是一個將要執行的動作的抽象描述。Android框架根據此intent的描述,負責找到將要執行動作對應的組件,再把包含了附加參數的intent傳遞給決定出的負責組件。而在Recast.AI里的intent同樣是一個抽象概念。通俗地解釋,intent是一系列句子的集合,這些句子雖然從文字上來說表達方式各異,然而傳遞的是同一個意思。
比如下列三句話其實是在同一個問題:
你是一個程序員么?
你每天的工作是編寫代碼么?
你每天使用集成開發環境或者命令行進行單步調試么?
我們可以把這三個句子歸為同一個intent,姑且命名為"程序員"。假設當用戶又發送了一個新的文本到您的聊天機器人去:“你是靠編寫代碼維生么?” Recast.AI封裝好的算法會解析這個文本,將其和"程序員"intent里的語句進行比較,如果判斷出來這個新的文本和intent中的某一句表達的意思非常接近,那么我們就能說這個新文本的intention(意圖)是"程序員"。此時,就可以讓機器人回復預先準備好的回答,比如“是的,我是程序員,我很喜歡寫代碼”。
上面的描述實際上已經涵蓋了本文聊天機器人創建完畢后,需要執行哪些后續步驟。
回到我創建的聊天機器人,目前沒有分配任何intent。
那么我就點Create按鈕創建一個。當然也可以點Search按鈕,從Recast社區上搜索一個別人創建好的intent。
現在新建的這個programmer intent還沒有任何語句,現在我們就來給它“喂”一些句子,這個動作稱為"Train(訓練)"。輸入一個句子"Are you a programmer?",回車:
Recast.AI會自動將這個句子進行分詞,并且識別出一個代詞(Pronoun) - You, 一個數量詞(Number) - a, 和一個工作描述(Job) - programmer。
我們再多喂幾個句子給這個intent:
Are you coding with Java or ABAP or JavaScript or C# or C++ or Python or Ruby?
Are you using Integrated Development Environment or Command Line to debug?
is Programming your daily work?
什么時候可以結束訓練呢?首先給intent喂的句子越多,那么它分析新的語句的意圖(intention)是否和程序員相關的準確度就越高。現在我們可以對這個intent進行測試。點擊Train標簽頁右上角的Test鏈接,會看到下圖的測試窗口。現在我給這個intent發送一條文本:
Are you working with Java every day?
Recast.AI將這個句子同我創建的"programmer" intent里的句子進行比較,最后判斷出,這句話有99%的可能性屬于該intent(下圖字段confidence: 0.99)。
那么我們就結束訓練,進入下一個"Build"步驟。這個步驟負責定義當您的聊天機器人成功識別到了您的輸入是在討論程序員后,應該執行何種動作。Recast.AI把機器人這種成功識別出文本的intention后執行某種動作的能力,稱為skill。在Build標簽頁點擊Create skill:
我給新建的skill取名:chat_with_programmer
給這個skill定義Triggers,意思是滿足何種條件會觸發這個skill?在Triggers標簽頁下面使用Recast.AI預置的一些公式進行條件定義。
下圖if@programmer,意思就是:如果聊天機器人計算出用戶發送的文本是屬于"programmer"這個intent:
Actions就是在這種條件下應該執行的具體動作。
這里我定義的Actions就是簡單地推送一些文本(SEND MESSAGE)給用戶。
準備一些文本,機器人會從中間隨機地選取一條推送給用戶。
Yes, and I am learning Scala in my spare time.
Yes, I have been programming for 20 years.
Yes, I am a programmer, I love programming!
點擊Build標簽頁的"CHAT WITH YOUR BOT"進行測試。隨便輸入一句和程序員相關的話,比如"Are you working with Java?" 在測試頁面,看到了機器人自動給我推送了一個回復,同時顯示了我之前創建的"chat_with_programmer" skill已經被觸發(triggered)了。這意味著Build標簽頁里的配置也已經完成。
最后,我們可以把這個創建好的聊天機器人進行發布,讓它可以被其他平臺消費。這里我選擇的是Webchat渠道,意思是在一個網頁內嵌入這個聊天機器人的對話窗口。
點擊Connect標簽頁,選擇Webchat:
可以對嵌入的聊天機器人的會話窗口的某些屬性進行定制化,比如窗口標題,用戶和機器人的圖片定制等。
點擊SAVE CHANGES,會生成一段包含Script標簽的HTML代碼。直接拷貝到某個網頁里,就能使用了。
比如您可以把這個網頁作為HTML5應用部署到SAP云平臺上,得到一個URL,然后把這個URL綁定到微信公眾號的某個自定義菜單上。當用戶點擊了這個微信菜單后,就會在微信里打開聊天機器人的會話窗口。
具體步驟在我的博客里有介紹:
Wechat development series 5 – embedded your UI5 application to Wechat app
https://blogs.sap.com/2017/12...
下圖是我的聊天機器人在微信里工作的效果圖。
本文這個例子的完整步驟在SAP Recast.AI的官網上也有記載,不過是全英文的。大家有興趣可以動手做一做。感謝閱讀。
https://recast.ai/blog/build-...
要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19822.html
摘要:關于這個例子的完整介紹,請參考公眾號汪子熙的兩篇文章與人工智能和增強現實技術結合的又一個創新案例和使用創建具有人工智能的聊天機器人本文介紹如何用代碼同網站上創建好的模型交互。 關于這個例子的完整介紹,請參考公眾號 汪子熙的兩篇文章: showImg(https://segmentfault.com/img/remote/1460000017901513); SAP C/4HANA與人工...
摘要:機器學習在客戶管理場景中的應用使用機器學習進行客戶管理,我們可以得到客戶度全方位的視圖。可以看到機器學習給為和這兩個產品計算的相關分數是和。關于機器學習在中的更多應用,請參考幫助文檔。 關于機器學習這個話題,我相信我這個公眾號1500多位關注者里,一定有很多朋友的水平比Jerry高得多。如果您看過我以前兩篇文章,您就會發現,我對機器學習僅僅停留在會使用API的層面上。 使用Java程...
閱讀 2019·2021-10-09 09:41
閱讀 1596·2021-09-28 09:36
閱讀 1100·2021-09-26 09:55
閱讀 1284·2021-09-10 11:17
閱讀 1140·2021-09-02 09:56
閱讀 2755·2019-08-30 12:58
閱讀 2927·2019-08-29 13:03
閱讀 1847·2019-08-26 13:40