姜強(qiáng)強(qiáng)+++羅元孟
摘 要:采用.NET平臺(tái)的Web開(kāi)發(fā)技術(shù),借助Bot Framework構(gòu)建前端聊天機(jī)器人以及LUIS技術(shù)構(gòu)建機(jī)器人的語(yǔ)義識(shí)別能力,以Microsoft Azure作為云服務(wù)平臺(tái)。使對(duì)話成為一個(gè)平臺(tái),改變用戶(hù)傳統(tǒng)的交互方式。
關(guān)鍵詞:Bot Framework;LUIS;Web;Azure云服務(wù)
引言
隨著互聯(lián)網(wǎng)的不斷發(fā)展,人們對(duì)于交互方式的需求也在不斷更新——從上世紀(jì)80年代的PC到90年代的Pad,再到21世紀(jì)的手機(jī)。根據(jù)微軟公司的大膽猜測(cè),下一代的交互方式將讓用戶(hù)的每一次對(duì)話成為一個(gè)平臺(tái)(Conversation as a Platform),基于此微軟推出了Bot Framework,幫助開(kāi)發(fā)者快速創(chuàng)建特定業(yè)務(wù)的聊天機(jī)器人。由此,我們可以將聊天機(jī)器人與傳統(tǒng)的網(wǎng)站結(jié)合來(lái)改變用戶(hù)借助網(wǎng)站獲取信息的方式。
1 軟件開(kāi)發(fā)平臺(tái)
服務(wù)端應(yīng)用程序基于.NET平臺(tái)下的開(kāi)發(fā)框架;數(shù)據(jù)庫(kù)及Web程序部署基于Microsoft Azure服務(wù)平臺(tái)。
2 系統(tǒng)設(shè)計(jì)與架構(gòu)
2.1 設(shè)計(jì)思路
采用.NET平臺(tái)的Web開(kāi)發(fā)技術(shù),借助Bot Framework構(gòu)建前端聊天機(jī)器人以及LUIS技術(shù)構(gòu)建機(jī)器人的語(yǔ)義識(shí)別能力,形成一個(gè)融合Web站點(diǎn)以及聊天機(jī)器人的校園社團(tuán)服務(wù)。
2.2 架構(gòu)解析
2.2.1 數(shù)據(jù)處理
利用Entity Framework完成數(shù)據(jù)庫(kù)中表與實(shí)體類(lèi)的映射并構(gòu)建底層核心數(shù)據(jù)操作業(yè)務(wù),采用三層架構(gòu)封裝整體項(xiàng)目的邏輯業(yè)務(wù)。所使用的數(shù)據(jù)庫(kù)管理系統(tǒng)為Microsoft SQL Server 2012。
2.2.2 Web核心
采用ASP.NET MVC模式建立網(wǎng)站,使得前端開(kāi)發(fā)與后臺(tái)分離;采用ASP.NET Web API技術(shù)完成Bot聊天機(jī)器人的數(shù)據(jù)交互。
2.2.3 Bot Chat
此模塊為聊天功能模塊,利用Bot Framework創(chuàng)建[1],并且加入LUIS語(yǔ)義識(shí)別服務(wù)(Language Understand Intelligent Service),完成用戶(hù)與機(jī)器人使用自然語(yǔ)言聊天的功能。
2.2.4 LUIS技術(shù)
進(jìn)入LUIS官方網(wǎng)站,通過(guò)配置的方式創(chuàng)建出自己的LUIS應(yīng)用[2],在應(yīng)用中填寫(xiě)需要識(shí)別的語(yǔ)句和關(guān)鍵字,生成應(yīng)用后的AppId和Key寫(xiě)入項(xiàng)目中的Bot程序中形成關(guān)聯(lián),這樣在用戶(hù)每次的對(duì)話中,通過(guò)LUIS服務(wù)識(shí)別出用戶(hù)的意圖,Bot程序根據(jù)意圖反饋信息。
3 技術(shù)分析
3.1 用戶(hù)信息存儲(chǔ)
每次對(duì)話中的社團(tuán)名稱(chēng)是語(yǔ)句的關(guān)鍵詞,這樣才能根據(jù)社團(tuán)名稱(chēng)獲取到社團(tuán)的所有信息。在Bot Framework中每一個(gè)用戶(hù)將會(huì)對(duì)應(yīng)唯一一個(gè)用戶(hù)數(shù)據(jù)(BotData)[3],用戶(hù)第一次訪問(wèn)時(shí),為此用戶(hù)的BotData添加UserId屬性,UserId根據(jù)自定義的用戶(hù)列表(Dictory
3.2 自動(dòng)推送
Bot程序在每次回復(fù)時(shí)會(huì)監(jiān)測(cè)是否當(dāng)前用戶(hù)訪問(wèn)同一社團(tuán)次數(shù)超過(guò)5次,若超過(guò)則自動(dòng)推送社團(tuán)服務(wù)網(wǎng)站鏈接,用戶(hù)可通過(guò)鏈接進(jìn)入網(wǎng)站查看社團(tuán)的詳盡信息。
3.3 Web API數(shù)據(jù)傳輸
在Web核心部分創(chuàng)建Web API程序用于返回Bot程序的相關(guān)請(qǐng)求,借助第三方開(kāi)源包Newtonsoft將查到的結(jié)果集數(shù)據(jù)封裝成Json格式。在Bot端程序只需創(chuàng)建Http請(qǐng)求API服務(wù)便可完成用戶(hù)請(qǐng)求。
4 功能模塊及展示
4.1 功能模塊
Bot聊天機(jī)器人:用戶(hù)在Web Chat頁(yè)面進(jìn)行人機(jī)對(duì)話,使用自然語(yǔ)言交流獲取社團(tuán)的相關(guān)信息。
普通用戶(hù):首先在網(wǎng)站首頁(yè)選擇需要訪問(wèn)的社團(tuán),然后查看次社團(tuán)的動(dòng)態(tài)、成果、公告、社團(tuán)風(fēng)采等版塊。
超級(jí)管理員:擁有創(chuàng)建和刪除社團(tuán)信息的權(quán)限,但不能針對(duì)某一社團(tuán)進(jìn)行具體管理。同時(shí)具有訓(xùn)練LUIS應(yīng)用的功能,由于用戶(hù)表達(dá)方式多樣,當(dāng)LUIS服務(wù)無(wú)法識(shí)別用戶(hù)意圖時(shí)將無(wú)此語(yǔ)句通過(guò)請(qǐng)求保存至數(shù)據(jù)庫(kù),超級(jí)管理員可進(jìn)入LUIS應(yīng)用根據(jù)用戶(hù)的語(yǔ)句進(jìn)行訓(xùn)練,然后將訓(xùn)練好的LUIS應(yīng)用重新發(fā)布,保持聊天機(jī)器人的學(xué)習(xí)性。
社團(tuán)管理員:每個(gè)社團(tuán)對(duì)應(yīng)唯一一個(gè)社團(tuán)管理員,管理員可以發(fā)布、更新、刪除社團(tuán)的各個(gè)版塊信息。
4.2 項(xiàng)目展示
5 結(jié)束語(yǔ)
人工智能將是未來(lái)互聯(lián)網(wǎng)技術(shù)發(fā)展的一個(gè)重要方向,越來(lái)越多的產(chǎn)品將會(huì)與人工智能關(guān)聯(lián)?;谀壳耙呀?jīng)完成的上述功能,接下來(lái)可開(kāi)發(fā)的功能還有:對(duì)接微信平臺(tái),用戶(hù)可以通過(guò)微信隨時(shí)隨地獲取相關(guān)的信息,給用戶(hù)提供更加方便的選擇。
參考文獻(xiàn)
[1]Microsoft.Bot Framework[EB/OL].(2016)[2016-3-30].
[2]Microsoft.Cognitive Service[EB/OL].(2016)[2016-03-30].
[3]Microsoft.Bot Framework[EB/OL].(2016)[2016-3-30].
作者簡(jiǎn)介:姜強(qiáng)強(qiáng)(1993-),男,漢族,江蘇徐州市人,學(xué)生,江蘇科技大學(xué)本科,研究方向:.Net平臺(tái)開(kāi)發(fā)。
羅元孟(1996-),男,漢族,江蘇宿遷人,學(xué)生,江蘇科技大學(xué)本科,研究方向:Web前端開(kāi)發(fā)。