過去五年里,Microsoft、IBM、Google和Amazon等公司都推出了令人驚嘆的聊天機器人框架,分別都是Microsoft Bot Framework、IBM Watson Conversation、Google API.ai和Amazon Lex,這些工具使開發人員構建真正理解人類語言,以自然的方式與人交談的軟件。
自然語言處理(NLP)是這些框架的主角,它將聊天機器人從笨拙的決策樹帶到一個以認知流量為特征的新經驗層面,并引入了新的應用浪潮。NLP逐漸地民主化、以及在Viber、Messenger和iMessage等聊天渠道上的精細化,使這些應用程序的受歡迎程度又提升了一個高度。
盡管NLP功能很強大,但它并不能解決與構建聊天機器人相關的所有挑戰。NLP擁有的所有,只能為企業和消費者提供所需整體體驗的一部分。將機器人聊天體驗整合到業務流程中以解決問題還需要做更多工作。
聊天機器人的結構可以概念化為以下八個部分:
1. 聊天界面。比如Messenger、iMessage或者是類似于這些聊天工具的自定義用戶界面。許多聊天機器人都內置這樣的接口,或直接集成到適合客戶端的本地通道中。這有多層次的復雜性。
* 僅文本:僅由用戶與之交互的文本框和標簽組成的界面。
* 僅文本和語音:允許用戶能語音輸入的界面。這種情況增加了復雜性,使用了能夠訪問捕獲語音和集成語音到文本組件的麥克風。
* 僅聲音:類似于Siri、Alexa或Cortana的體驗。
* 聲音和視覺:類似于Alexa Show。
* 文本、語音和視覺:例如iMessage體驗,用戶可以在聊天的環境中鍵入、說話并與可視化UI小部件交互。開發人員面臨的挑戰是使聊天機器人能夠在正確的環境下提供正確的用戶界面交互。
2. NLP組件。該組件能理解自由形式的文本或語音表達,并將其解析為意圖和參數。但NLP只能幫助您的應用程序將一個句子分解為一組意圖,您可以以編程方式對意圖采取操作。雖然NLP發現對話意圖,但軟件開發人員要自己思考如何對這些意圖作出響應或采取行動。
3. 機器人的上下文繼承。為了通過聊天機器人進行類似于人的交互,開發人員必須始終維護對話的上下文或內存。一些聊天機器人需要維護每個用戶的上下文,以便為客戶提供個性化的體驗。例如,通過聊天機器人預約了醫生,那么用戶希望談話能夠記住這個背景,并在能提醒即將到來的預約。更高級的聊天機器人可能記住用戶的名字、電子郵件以及地址等等。
4. 循環、分割和遞歸。這往往是大多數開發聊天機器人的復雜性所在。當用戶開始與聊天機器人進行更多的開放式對話時,聊天機器人需要能夠將談話分離開來,或是循環回到以前的特定對話中,這些都很難實現,很多聊天機器人都不支持這些功能。
5. 與傳統系統集成。根據您正在構建的聊天機器人類型,可能需要使用外部系統或信息源。如果您正在為一個企業構建一個聊天機器人,那么您很有可能使用一個CRM系統、ERP應用程序、甚至是一個需要從中收集信息或將數據推送到其中的人力資源系統。
6. 分析。與當今任何的軟件一樣,分析是了解聊天機器人工作的關鍵。分析可以幫助您了解參與、偏差和錯誤,并提供高質量或更個性化的體驗。
7. 切換。這可能不是所有聊天機器人都必備的,但是如果您正在構建聊天機器人與客戶服務機構一起工作的項目,那么需要考慮復雜交互情況下機器人和人之間的交接。
8. 性格、語氣和角色。這些是是聊天機器人更人性化的一些軟特性。
從本質上講,NLP并沒有解決在開發現實業務應用程序時通常會面臨的挑戰。它只是利用聊天界面提供更廣泛和更令人滿意的體驗。
許多新聊天機器人廠商正嘗試通過引入更豐富的聲明性語法來解決這些挑戰,使開發人員能夠定義機器人的目標,并處理與聊天機器人框架內的系統集成、對話流和持久性管理相關的大量繁重工作。