柳琳++羅軍
摘要:聊天機(jī)器人基于 Android平臺,調(diào)用圖靈機(jī)器人API,具有聊天問答、娛樂互動、信息查詢、計(jì)算等功能。首先獲得圖靈機(jī)器人API Key,在Eclipse中集成圖靈機(jī)器人API,再設(shè)計(jì)聊天界面,將用戶輸入內(nèi)容發(fā)送到圖靈機(jī)器人,并將返回結(jié)果顯示給用戶。測試結(jié)果表明,圖靈機(jī)器人應(yīng)用程序能夠順利加載,與用戶正常交流,可用于聊天或者查詢,具有娛樂和實(shí)用價值。
關(guān)鍵詞:Android;聊天;圖靈機(jī)器人;API;APP
中圖分類號:TP18 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)17-0169-03
Abstract: The chat robot based on Android platform and called Turing Robot API designs the function of chatting, interactive entertainment, information query, calculation, etc. First, get Turing robots API Key to Integrate API in Eclipse. Then design chat interface to send the input content to the Turing robot, and return the result to the user. Test results show that the application program of Turing Robot can load smoothly and communicate normally with users. It can use for chatting and querying so that it has entertainment and practical value.
Key words: Android; chat; Turing Robot; API; APP
1 背景
隨著人工智能和自然語言處理的不斷發(fā)展,人工智能交互不斷完善。比如蘋果的Siri語音助手——可根據(jù)知識問答引擎Wolfram Alpha搜尋問題進(jìn)行回答、清華的小圖——可進(jìn)行有關(guān)清華大學(xué)圖書館的查詢,MSN、騰訊、微信等聊天工具支持加入聊天機(jī)器人,很多網(wǎng)站也有了聊天機(jī)器人提供問答服務(wù)。圖靈機(jī)器人API提供免費(fèi)版和標(biāo)準(zhǔn)版接口,該程序使用圖靈機(jī)器人免費(fèi)版API,有部分功能受到限制。圖靈機(jī)器人也支持多渠道多領(lǐng)域的快速接入,為智能硬件和軟件產(chǎn)品提供多項(xiàng)人工智能技術(shù)服務(wù),如中文語義理解與分析、自然語言對話、深度問答等。該平臺有強(qiáng)大的知識庫,對中文語義的理解準(zhǔn)確率高達(dá)90%,并且支持自定義回答,可以新增或批量導(dǎo)入回答。有聊天、笑話、故事、成語接龍、生活百科、圖片、天氣、計(jì)算等18個功能提供選擇,支持開放或關(guān)閉不同功能。該平臺已經(jīng)應(yīng)用于HTC的小Hi語音助手、中國電信的微信平臺、海爾的智能家電控制系統(tǒng)等,廣受企業(yè)的好評。
2 Android平臺和圖靈API
2.1 Android平臺簡介
Android是一種基于Linux的開源操作系統(tǒng),主要使用于智能手機(jī)和平板電腦等的移動設(shè)備。其開發(fā)框架可分為從高層到低層的四個層:應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和linux核心層。其應(yīng)用程序由活動(Activity)、廣播接收器(BroadCast Receiver)、內(nèi)容提供(ContentProvider)、服務(wù)(Service)四個模塊組成。
2.2 圖靈API簡介
API(Application Programming Interface,應(yīng)用程序編程接口)是一些提供給開發(fā)人員與應(yīng)用程序基于某軟硬件無需訪問源碼或理解內(nèi)部工作機(jī)制的細(xì)節(jié)從而訪問一組例程的預(yù)先定義的函數(shù)。
圖靈機(jī)器人 API 是在人工智能的核心能力(包括語義理解、智能問答、場景交互、知識管理等)的基礎(chǔ)上,為廣大開發(fā)者、合作伙伴和企業(yè)提供的一系列基于云計(jì)算和大數(shù)據(jù)平臺的在線服務(wù)和開發(fā)接口。
開發(fā)者可以利用圖靈機(jī)器人的 API 創(chuàng)建各種網(wǎng)絡(luò)在線服務(wù),自定義機(jī)器人的設(shè)定與屬性,編輯或批量導(dǎo)入、導(dǎo)出機(jī)器人的智能問答內(nèi)容,打造個人專屬智能交互機(jī)器人,也支持多渠道(如微信公眾平臺、QQ 聊天)的快速接入與訪問。
圖靈機(jī)器人API采用UTF-8的編碼方式,可通過“URL+"?key="+API_KEY+"&info="+msg“進(jìn)行鏈接。URL為申請API之后給出的地址——http://www.tuling123.com/openapi/api,API_KEY為申請的API號,msg為請求語句,該API請求方式為Post。
3 圖靈聊天機(jī)器人的整體設(shè)計(jì)
本次設(shè)計(jì)的智能聊天機(jī)器人,主要包括以下幾個方面的功能:
1) 聊天問答:它是聊天機(jī)器人最基本的功能,在用戶聯(lián)網(wǎng)的情況下,響應(yīng)迅速,實(shí)現(xiàn)一問一答的功能。
2) 娛樂互動:為用戶提供了娛樂性質(zhì)的功能,比如你可以讓它講笑話、與它進(jìn)行詩詞接龍、成語接龍等游戲,還可以詢問星座運(yùn)勢以及解夢等。
3) 信息查詢:可查詢天氣、時間、郵編、詩詞、成語、歌詞等。
4) 計(jì)算功能:輸入計(jì)算方程,圖靈機(jī)器人“蛋蛋”將給出答案。
4 關(guān)鍵技術(shù)及實(shí)現(xiàn)過程
在使用圖靈智能機(jī)器人API提供的各種功能之前,需要到圖靈官網(wǎng)注冊賬號,獲得機(jī)器人API地址以及申請API Key。
4.1 UI設(shè)計(jì)
此項(xiàng)目有三個layout文件:mainLayout、leftLayout、rightLayout:
1)mainLayout:先用一個相對布局RelativeLayout進(jìn)行整體布局,頭部設(shè)置TextView,也就是聊天對象名——“蛋蛋”;布局的主體部分是ListView;布局的底部,用RelativeLayout設(shè)置編輯對話框EditText以及發(fā)送消息按鈕Button,布局效果如圖1所示。
2)leftLayout:此布局是聊天機(jī)器人“蛋蛋”的消息記錄布局。它采用垂直vertical線性布局LinearLayout進(jìn)進(jìn)行整體的布局,先設(shè)置一個文本框TextView用來顯示聊天的時間,每一次對話都會刷新一次時間并顯示出來。然后再用一個水平的horizontal線性布局LinearLayout布局剩下的控件——頭像圖片ImageView、“蛋蛋”文本框TextView、回復(fù)氣泡文本框TextView,布局效果如圖2所示。
3)rightLayout:此布局是用戶“殼殼”的消息記錄布局。它采用垂直的vertical線性布局LinearLayout進(jìn)行整體的布局,時間文本框的處理與leftLayout相同。再設(shè)置一個水平的horizontal線性布局LinearLayout布局“殼殼”文本框和氣泡文本框,以及頭像圖片ImageView,布局效果如圖3所示。
4.2 設(shè)置編碼方式及集成圖靈智能機(jī)器人API
1)因?yàn)閳D靈機(jī)器人API的編碼方式為UTF-8,所以在開始應(yīng)該先設(shè)置編碼方式以防亂碼。在eslipse設(shè)置UTF-8的編碼方式: 點(diǎn)擊“窗口”->“首選項(xiàng)”,彈出如圖所示窗口,點(diǎn)擊“常規(guī)”->“工作空間”,在左下方“文件文本編碼(T)”一欄選擇“UTF-8”。
2)在Mainfest.xml增加
3)通過url=“tl.url+"?key="+tl.key+"&info="+URLEncoder.encode(message,"UTF-8");設(shè)置鏈接網(wǎng)址與編碼方式,tl.url為API地址 ,tl.key為API Key,message為輸入的信息。
4)判斷網(wǎng)絡(luò)是否暢通,若不暢通,由圖靈機(jī)器人給出“請確認(rèn)網(wǎng)絡(luò)暢通,稍后再試?!钡奶崾?;若暢通,則通過HttpURLConnection設(shè)置其他參數(shù)以及鏈接圖靈機(jī)器人網(wǎng)址。
4.3 保證問答模式的進(jìn)行
1)存儲需要保存的發(fā)送者姓名name、發(fā)送消息message、發(fā)送類型type(0表示圖靈機(jī)器人,1表示聊天者)以及發(fā)送時間time。
2)通過發(fā)送類型type判斷是聊天者還是圖靈機(jī)器人進(jìn)行不同的布局設(shè)定(圖靈機(jī)器人為左邊布局leftLayout,聊天者為右邊布局rightLayout),然后把發(fā)送時間、頭像、發(fā)送者姓名、發(fā)送消息加載進(jìn)來進(jìn)行顯示。
3)在程序啟動之后通過list.add()方法用圖靈機(jī)器人對話框加載歡迎語句“你好,我是最萌的蛋蛋機(jī)器人,很高興認(rèn)識你!”。
4)在點(diǎn)擊發(fā)送按鈕之前用isEmpty(message)語句判斷對話框是否為空,若為空則提示;若不為空則記錄用戶輸入的內(nèi)容通過list.add(message)方法將其加入list并刷新紀(jì)錄,接著把消息置于最近輸入的一條記錄,然后把發(fā)送的消息通過語句提交到服務(wù)器端。最后接收從圖靈機(jī)器人返回的消息其加入list并刷新紀(jì)錄。
5)實(shí)現(xiàn)點(diǎn)擊屏幕空白處隱藏輸入鍵盤:通過InputMethodManager來實(shí)現(xiàn)軟鍵盤的控制。
5 程序測試結(jié)果
作者在三星、vivo、華為等Android智能手機(jī)上對圖靈聊天機(jī)器人進(jìn)行了測試, 測試結(jié)果如下圖所示。測試結(jié)果表明,圖靈機(jī)器人應(yīng)用程序加載流暢,在網(wǎng)絡(luò)開通的情況下,能順利完成聊天問答功能。
6 結(jié)束語
此程序用Android集成圖靈機(jī)器人API進(jìn)行智能聊天問答,可用于閑聊、查詢等操作,查詢功能較于普通的搜索引擎,雖沒有那么強(qiáng)大,但多了趣味性。此次介紹了圖靈機(jī)器人程序的功能和主要的實(shí)現(xiàn)步驟,展示了該程序運(yùn)行的結(jié)果。下一步可以集成語音聊天功能等,為聊天問答功能提供更便捷、優(yōu)質(zhì)的服務(wù)。
參考文獻(xiàn):
[1] 百度百科. 圖靈機(jī)器人[EB/OL]. http://baike.baidu.com/view/13012970.htm.
[2] 圖靈機(jī)器人官網(wǎng)[EB/OL]. http://www.tuling123.com/.
[3] 百度百科. 聊天機(jī)器人[EB/OL]. http://baike.baidu.com/view/58034.htm.
[4] 清華智能聊天機(jī)器人[EB/OL]. http://tutu.lib.tsinghua.edu.cn:8081/programd/.
[5] 姚飛, 張成昱, 陳武. 清華智能聊天機(jī)器人“小圖”的移動應(yīng)用[J]. 現(xiàn)代圖書情報技術(shù), 2014(Z1).
[6] 李文江, 陳詩琴. AIMLBot智能機(jī)器人在實(shí)時虛擬參考咨詢中的應(yīng)用[J]. 現(xiàn)代圖書情報技術(shù), 2012(Z1).
[7] 易順明, 胡振宇. 中文聊天機(jī)器人原型系統(tǒng)的設(shè)計(jì)[J]. 沙洲職業(yè)工學(xué)院學(xué)報, 2007(2).
[8] 吳志霞, 陳平. 圖靈智能機(jī)器人在基于Android招生咨詢平臺的研究與應(yīng)用[J]. 通化師范學(xué)院學(xué)報, 2016(2).
[9] 袁玖林. 智能機(jī)器人倫理初探[J]. 牡丹江大學(xué)學(xué)報, 2015(5).
[10] 王婧. 基于自動問答技術(shù)的智能文本機(jī)器人[J]. 科技創(chuàng)業(yè)家, 2013(8).