国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Web平臺(tái)的智能對(duì)話機(jī)器人研發(fā)

2021-06-16 05:29劉子晗
電子制作 2021年4期
關(guān)鍵詞:代碼引擎聊天

劉子晗

(北京師范大學(xué)良鄉(xiāng)附屬中學(xué),北京,102488)

0 引言

在目前的互聯(lián)網(wǎng)時(shí)代,人們查找信息的手段和速度已經(jīng)有了質(zhì)的飛躍,更容易實(shí)現(xiàn)一個(gè)智能化的聊天機(jī)器人,它可以自動(dòng)化識(shí)別發(fā)出的指令,并且自己在網(wǎng)絡(luò)上尋找匹配的答案。現(xiàn)在計(jì)算機(jī)的計(jì)算力成熟,有許多對(duì)話模型已經(jīng)相對(duì)完善比如NLP、Seq2Seq,同時(shí)只要進(jìn)行長(zhǎng)時(shí)間的訓(xùn)練,筆者相信機(jī)器人可以完美做到與人交流基本無(wú)障礙。網(wǎng)絡(luò)上面的API就提供了不用自主訓(xùn)練的捷徑,這個(gè)捷徑大大縮短了研發(fā)的時(shí)間和精力,讓筆者可以把更多的精力投入到更加有用的地方。

目前這個(gè)智能機(jī)器人前景廣大,比如空巢老人陪伴問(wèn)題,當(dāng)老人們獨(dú)居的時(shí)候,容易出現(xiàn)老年癡呆癥和抑郁癥,這款機(jī)器人很好的解決了老人想說(shuō)會(huì)話,但是沒(méi)有機(jī)會(huì)沒(méi)有說(shuō)話對(duì)象的煩惱。也解決了小孩子們的語(yǔ)言習(xí)得問(wèn)題,當(dāng)小孩在與語(yǔ)音聊天機(jī)器人對(duì)話時(shí),聊天機(jī)器人會(huì)構(gòu)建第二語(yǔ)言學(xué)習(xí)環(huán)境,讓孩子更加快速和體系地學(xué)習(xí)另一種語(yǔ)言。

在特定的專(zhuān)業(yè)領(lǐng)域,成本會(huì)大大削減,因?yàn)樘囟ㄔ~匯的存在,所以幾乎不用太多的訓(xùn)練,相對(duì)應(yīng)的信息很好發(fā)掘。同時(shí)優(yōu)勢(shì)還在于對(duì)話模式的固定,當(dāng)一個(gè)關(guān)鍵詞出現(xiàn),那么捕捉它對(duì)于機(jī)器人來(lái)說(shuō)就是輕而易舉。這個(gè)的案例主要應(yīng)用在淘寶京東等網(wǎng)購(gòu)平臺(tái)的客服專(zhuān)線,大大節(jié)約了成本,使其商業(yè)價(jià)值大增。

本文實(shí)現(xiàn)的目標(biāo)很明確,就是實(shí)現(xiàn)一款可以實(shí)時(shí)聊天的機(jī)器人。筆者先了解了機(jī)器人的對(duì)話模型主要分為NLP和Seq2Seq兩個(gè)模型。所以筆者就嘗試了一下在兩個(gè)模型下實(shí)現(xiàn)對(duì)話功能,兩個(gè)模型各有優(yōu)缺點(diǎn),總的比較筆者選擇了后者。隨后便決定在HTML平臺(tái)上落成項(xiàng)目。

最終的成果包括一個(gè)主頁(yè)面和花邊,最核心的內(nèi)容是聊天模型的運(yùn)用,筆者在后臺(tái)連接了網(wǎng)絡(luò)上的api,利用其現(xiàn)有的對(duì)話規(guī)則來(lái)完善筆者機(jī)器人的運(yùn)行。當(dāng)指令輸出者輸出任意指令時(shí),機(jī)器人都能根據(jù)他們的特點(diǎn)在自己的資料庫(kù)中尋找匹配的答案,進(jìn)行回答。

1 實(shí)現(xiàn)過(guò)程

■1.1 模型實(shí)現(xiàn)

關(guān)于聊天機(jī)器人的實(shí)現(xiàn),筆者調(diào)研了各個(gè)云服務(wù)的開(kāi)發(fā)平臺(tái),選定了青云客智能聊天機(jī)器人API作為本項(xiàng)目的主要聊天引擎。青云客智能聊天機(jī)器人API是開(kāi)放在互聯(lián)網(wǎng)上的免費(fèi)服務(wù),可以方便地進(jìn)行智能聊天機(jī)器人的服務(wù)調(diào)用,用于研究和學(xué)習(xí)。該API的接口形式是:

http://api.qingyunke.com/api.php?key=free&appid=0&msg=關(guān)鍵詞

通過(guò)Http Get請(qǐng)求就可以訪問(wèn)該API并且得到Json格式的回復(fù),效果如圖1所示。

圖1 青云客智能聊天機(jī)器人API

■1.2 模型開(kāi)發(fā)

因?yàn)榱奶鞕C(jī)器人服務(wù)是運(yùn)行在Html平臺(tái)的,筆者選取了目前Html開(kāi)發(fā)最為常用的框架之一—Vue來(lái)作為本項(xiàng)目的開(kāi)發(fā)框架。Vue作為最流行的前端開(kāi)發(fā)框架之一,能夠做到高性能渲染頁(yè)面結(jié)構(gòu),并且解耦了開(kāi)發(fā)過(guò)程中涉及的各個(gè)元素,讓開(kāi)發(fā)可以更快、質(zhì)量更高地完成。

圖2是機(jī)器人的HTML部分代碼,在這部分代碼中,界面一共分為四個(gè)大的部分,分別是引擎選取部分、頁(yè)頭部分、主要內(nèi)容部分以及頁(yè)腳部分。引擎選取部分是供用戶選擇不同的聊天引擎使用的,這是為了未來(lái)的擴(kuò)展開(kāi)發(fā)而預(yù)留的功能接口。頁(yè)頭部分主要包含標(biāo)題提示以及時(shí)間提醒。主要內(nèi)容就是上文提到的聊天區(qū)域。頁(yè)腳負(fù)責(zé)編輯和發(fā)送消息。

圖2 聊天機(jī)器人Html部分代碼

要想界面按照一定的規(guī)則和樣式組織起來(lái),還需要css代碼的配合,圖3是截選的部分css代碼。

圖3 聊天機(jī)器人css部分代碼

CSS代碼可以用于定義頁(yè)面樣式,使得整體的頁(yè)面呈現(xiàn)出最完美的效果。經(jīng)過(guò)Html定義以及CSS框規(guī)之后的程序界面如圖4所示。

圖4 聊天機(jī)器人基本樣式

可以看到上文提到的四個(gè)主要部分呈垂直結(jié)構(gòu)顯現(xiàn),同時(shí)各個(gè)部分中又各自有比較精細(xì)的細(xì)節(jié)內(nèi)容排布。

除了Html代碼和CSS代碼之外,還有最重要的一部分控制代碼,即JavaScript代碼。首先需要定義的是數(shù)據(jù)部分,即整個(gè)程序運(yùn)行過(guò)程中所需要的主要數(shù)據(jù),這部分需要單獨(dú)定義并交由Vue統(tǒng)一進(jìn)行生命周期的管理,避免了散亂定義數(shù)據(jù)導(dǎo)致的結(jié)構(gòu)混亂和功能失控,數(shù)據(jù)定義部分的程序如圖5所示。

圖5 聊天機(jī)器人JavaScript數(shù)據(jù)部分

在數(shù)據(jù)部分中,筆者定義了頭像列表、消息列表、當(dāng)前(正在編輯的)消息內(nèi)容、消息總數(shù)、當(dāng)前時(shí)間、引擎列表、當(dāng)前引擎等多個(gè)數(shù)據(jù)源。

有了數(shù)據(jù),下邊需要定義操作數(shù)據(jù)的程序,實(shí)際上這部分程序就是對(duì)用戶操作的響應(yīng)。如當(dāng)用戶打開(kāi)程序之后,程序需要在頁(yè)頭部分自動(dòng)更新并顯示時(shí)間,這部分的操作如圖6所示。

圖6 聊天機(jī)器人JavaScript時(shí)間更新部分

當(dāng)用戶點(diǎn)擊發(fā)送按鈕之后,程序會(huì)把用戶編輯好的消息發(fā)送到用戶指定的聊天機(jī)器人引擎中。同時(shí)還需要做例如空消息監(jiān)測(cè)、發(fā)送消息之后的編輯框清空等工作,這部分工作的操作如圖7所示。

圖7 聊天機(jī)器人JavaScript消息發(fā)送部分

用戶點(diǎn)擊發(fā)送按鈕請(qǐng)求聊天機(jī)器人引擎的操作因?yàn)樵O(shè)計(jì)的要素和操作過(guò)多,所以單獨(dú)抽取出來(lái)成一個(gè)單獨(dú)的函數(shù),這部分的函數(shù)如圖8所示。

圖8 聊天機(jī)器人JavaScript引擎請(qǐng)求部分

無(wú)論是用戶編輯發(fā)送消息還是聊天機(jī)器人回復(fù)一條消息,都需要?jiǎng)?chuàng)建一條新的消息,并存儲(chǔ)下來(lái),還要在屏幕上繪制出來(lái),因此這部分重復(fù)操作也單獨(dú)抽取出來(lái)成為一個(gè)函數(shù),這部分的函數(shù)如圖9所示。

圖9 聊天機(jī)器人JavaScript消息創(chuàng)建部分

有了Html、CSS以及JavaScript的配合,一個(gè)完整的聊天機(jī)器人就可以開(kāi)始使用了,通過(guò)Vue框架的運(yùn)行命令即可在本地運(yùn)行并查看效果。

■1.3 部署服務(wù)

本地服務(wù)可以成功地運(yùn)行并查看程序效果,但這只能筆者自己使用,不能分享出去讓別人也享受聊天機(jī)器人服務(wù),因此筆者還將服務(wù)部署到了互聯(lián)網(wǎng)上。因?yàn)楸痉?wù)是純靜態(tài)網(wǎng)站,所以可以方便地部署在阿里云虛擬主機(jī)上。首先將本地的服務(wù)打包,使用Vue的build命令,即可通過(guò)內(nèi)建的Webpack工具將編輯好的Vue項(xiàng)目打包為典型的Html靜態(tài)頁(yè)面,打包后的效果如圖10所示。

圖10 聊天機(jī)器人本地打包結(jié)果

打包之后,通過(guò)FileZilla將文件上傳到阿里云虛擬主機(jī)。等待幾分鐘,當(dāng)阿里云刷新了服務(wù)之后,就可以通過(guò)云虛擬主機(jī)綁定的域名加上指定的子目錄來(lái)訪問(wèn)服務(wù)了,訪問(wèn)鏈接是https://thuer.cn/chat-bot/。

至此筆者就完成了全部的開(kāi)發(fā)工作。

2 總結(jié)

■2.1 全文總結(jié)

本文以現(xiàn)實(shí)中的無(wú)法被滿足作為出發(fā)點(diǎn),總結(jié)了自己制作開(kāi)發(fā)一款對(duì)話機(jī)器人的過(guò)程。旨在幫助所有有需要的人,因?yàn)樵诠P者身邊能有個(gè)人說(shuō)句話有時(shí)真的太困難了。所以筆者想研發(fā)一款聊天機(jī)器人。

在研究之前先參考了文獻(xiàn),主要是現(xiàn)有的關(guān)于聊天機(jī)器人的文獻(xiàn),當(dāng)文獻(xiàn)中指出Seq2Seq模型和NLP模型的時(shí)候,也要自己去學(xué)習(xí)這兩個(gè)模型。了解他們的優(yōu)缺點(diǎn),并且綜合比較,筆者選擇了使用成熟的API作為數(shù)據(jù)來(lái)源,選擇了web平臺(tái)作為自己的研發(fā)平臺(tái),在論文寫(xiě)作期間做了大量的了解和調(diào)查,最終實(shí)現(xiàn)了本系統(tǒng)。

主要的成果就是現(xiàn)在在網(wǎng)絡(luò)上的聊天機(jī)器人模型,它能滿足日常所需的對(duì)話功能,切實(shí)解決了筆者提出的沒(méi)人說(shuō)話這個(gè)問(wèn)題,筆者對(duì)此還是比較滿意

■2.2 未來(lái)展望

由于對(duì)知識(shí)的了解不足,導(dǎo)致在很多方面上,都有所欠缺,尤其在知識(shí)運(yùn)用上和代碼書(shū)寫(xiě)上。呈現(xiàn)出來(lái)的機(jī)器人還不夠“智能”。在其語(yǔ)言表達(dá)的過(guò)程中,由于使用的是網(wǎng)絡(luò)上的API,所以對(duì)訓(xùn)練機(jī)器人的工作不是很了解,導(dǎo)致仍然有許多生硬的語(yǔ)句。整體的網(wǎng)頁(yè)呈現(xiàn)效果也不夠美觀,語(yǔ)音系統(tǒng)需要對(duì)接轉(zhuǎn)換器,這些都是筆者在后續(xù)需要加強(qiáng)的內(nèi)容。

猜你喜歡
代碼引擎聊天
點(diǎn)燃企業(yè)發(fā)展的“引擎”
打造信息化建設(shè)的“黨建引擎”
車(chē)壇往事4:引擎進(jìn)化之屢次失敗的蒸汽機(jī)車(chē)
我就是不想跟你聊天了
敞開(kāi)門(mén)聊天
神秘的代碼
一周機(jī)構(gòu)凈增(減)倉(cāng)股前20名
重要股東二級(jí)市場(chǎng)增、減持明細(xì)
近期連續(xù)上漲7天以上的股
One Engine?。蹋澹妫糁皇O乱粋€(gè)引擎