韓玉婷 葉自強
關鍵詞:ThinkPHP6;Layui;Vue;MySQL;聊天機器人
0 引言
隨著互聯(lián)網(wǎng)信息技術(shù)的不斷發(fā)展,人們正深入邁入信息時代,數(shù)據(jù)信息變得異常龐大且珍貴。近年來,以ChatGPT為代表的基于深度學習的語言大模型引起了廣泛關注,該模型能通過用戶的提問自動生成答案。現(xiàn)有的文本聊天機器人可按功能劃分為任務型和非任務型[1]。ChatGPT作為一種任務型生成式聊天機器人,雖然其回答是自動生成的,但其背后也進行了大量的語料庫投喂。
本系統(tǒng)旨在打造一款非任務型檢索式聊天機器人。用戶輸入問題后,系統(tǒng)將從大規(guī)模對話數(shù)據(jù)中快速檢索數(shù)個候選回復,此處回復的召回率和模型效率至關重要,是檢索式聊天機器人的首要粗粒度篩選步驟[2]。因此,系統(tǒng)需要添加足夠多的語料庫,以確保用戶在問答體驗上擁有足夠的滿意度。
系統(tǒng)采用了前后端分離的軟件設計方法和開發(fā)流程。通過后臺系統(tǒng)對前臺系統(tǒng)進行數(shù)據(jù)管理。后臺系統(tǒng)分為管理員和超級管理員兩種角色,其中超級管理員具有管理后臺管理員和前臺用戶的權(quán)限,負責進行CRUD 操作,并管理熱點推送及聊天內(nèi)容等信息。此外,系統(tǒng)還提供個人信息修改、密碼變更和皮膚設置等功能,以增強系統(tǒng)的個性化體驗。
1 相關理論及技術(shù)介紹
本系統(tǒng)為前后端分離系統(tǒng),后臺系統(tǒng)采用Think?PHP6+Layui進行搭建,前臺系統(tǒng)則使用uni-app開發(fā),并通過其內(nèi)置的uni.request方法請求后端的JSON數(shù)據(jù)。系統(tǒng)的數(shù)據(jù)庫采用MySQL,同時使用Redis進行數(shù)據(jù)緩存。
1.1 自然語言處理技術(shù)
自然語言處理中的問答系統(tǒng)一直是智能聊天機器人領域中備受關注的核心技術(shù)[3]。語言模型是自然語言處理的一個重要概念,它通常采用概率模型來表示文本生成的概率,如隱馬爾可夫模型和條件隨機場等。實現(xiàn)這些模型的方法主要有三種:基于規(guī)則和知識的方法、基于統(tǒng)計的方法以及基于深度學習的方法。無論采用哪種方法,都需要依賴于強大的語料庫以提供支持。
1.2 框架技術(shù)
ThinkPHP6是基于PHP語言開發(fā)的最新框架,采用面向?qū)ο蟮拈_發(fā)思想和MVC模式。其快捷、輕量的特點使得開發(fā)者能夠迅速進行編碼實現(xiàn)。
uni-app是一個基于Vue技術(shù)的前端開發(fā)框架,開發(fā)的代碼可以發(fā)布至H5、移動軟件以及各種小程序。其豐富的開發(fā)文檔及插件支持,可以幫助開發(fā)者輕松創(chuàng)建應用。
2 需求分析
2.1 前后臺系統(tǒng)開發(fā)流程分析
系統(tǒng)采用B/S架構(gòu),便于用戶和管理員訪問,前后端均部署在服務器上。
前臺系統(tǒng)使用uni-app 框架進行編碼開發(fā),在HBuilder X開發(fā)工具中創(chuàng)建新項目,利用Uniui設計用戶界面,并通過uni-app自帶的uni.request請求方法與服務器進行數(shù)據(jù)交互。
后臺系統(tǒng)采用ThinkPHP6框架進行編碼,利用其MVC架構(gòu)分別處理視圖層、邏輯層和數(shù)據(jù)層。管理員界面使用Layui設計,并引入Echarts插件進行管理員和用戶活躍度的可視化統(tǒng)計。
文檔檢索的精度及效率決定了機器人信息檢索的準確性[4]。因此,系統(tǒng)采用高性能的MySQL數(shù)據(jù)庫存儲文檔信息。
2.2 角色分析
系統(tǒng)分為用戶、超級管理員和普通管理員三種角色。管理員通過后臺系統(tǒng)管理整個系統(tǒng)的信息,如用戶和管理員的賬戶信息、聊天信息、反饋信息等。用戶通過注冊和登錄后,可以查看熱點信息、與機器人對話以及管理個人信息等。
2.3 功能分析
在前臺系統(tǒng)中,用戶可以進行注冊、登錄、聊天、個人信息管理和反饋等操作,用戶使用流程如圖1所示。超級管理員和普通管理員在后臺系統(tǒng)中進行注冊、登錄以及相關數(shù)據(jù)的查看和管理。管理員可以進行賬戶、語料庫、熱點等數(shù)據(jù)信息的增刪改查操作。其中,超級管理員還負責管理后臺系統(tǒng)的管理員及導航。管理員使用流程如圖2所示。
3 系統(tǒng)設計
3.1 系統(tǒng)架構(gòu)
系統(tǒng)按照MVC模式進行開發(fā),每個頁面采用獨立的路由,用戶訪問時會跳轉(zhuǎn)到相應的路由。系統(tǒng)編碼完成后,需要進行部署和運行[5]。后臺系統(tǒng)在前期使用PHPStudy集成環(huán)境模擬服務器進行編碼和調(diào)試,完成后上傳至服務器進行測試。前臺系統(tǒng)使用HBuilder X 編輯器進行編碼,開發(fā)完成后打包成H5文件并上傳至服務器。系統(tǒng)利用ThinkPHP6自帶的ThinkORM庫將數(shù)據(jù)庫中的對象映射至模型,實現(xiàn)數(shù)據(jù)庫的增刪改查操作。系統(tǒng)架構(gòu)如圖3 所示。
3.2 功能設計
本系統(tǒng)分為前臺系統(tǒng)和后臺系統(tǒng)兩部分。前臺系統(tǒng)面向用戶,主要功能包括用戶注冊、用戶登錄、熱點推送、首頁輪播圖和用戶反饋等。未登錄狀態(tài)下,用戶可查看熱點推送及產(chǎn)品介紹等信息;注冊成功并登錄后,用戶則可使用聊天模塊。后臺系統(tǒng)供管理員使用,主要功能包括管理員注冊與登錄、賬戶管理、導航管理、熱點管理和聊天語句管理等。管理員自行注冊的賬號初始權(quán)限為普通管理員,無法對管理員賬號以及導航等核心信息進行管理。系統(tǒng)的功能模塊如圖4所示。
3.3 數(shù)據(jù)庫設計
在數(shù)據(jù)庫設計方面,本系統(tǒng)秉承安全與簡潔的原則,采用實體聯(lián)系圖輔助分析,該方法能直觀地描述實體之間的聯(lián)系[6]。通過面向?qū)ο蟮脑O計方法,將對象實體化,并提煉出主要的實體、實體屬性以及它們之間的關系。根據(jù)系統(tǒng)的需求分析,本文抽象出8個主要實體并確定了它們的相關屬性,使用MySQL關系型數(shù)據(jù)庫存儲這些實體,并利用數(shù)據(jù)庫可視化工具簡化了數(shù)據(jù)庫構(gòu)建的流程。設計的數(shù)據(jù)庫表包括用戶信息、管理員信息、熱點信息和聊天語句信息等。系統(tǒng)的所有數(shù)據(jù)庫表如表1所示。
4 系統(tǒng)實現(xiàn)
4.1 前臺系統(tǒng)實現(xiàn)
用戶注冊成功后,在登錄界面規(guī)范填寫表單并提交,后端驗證通過后自動跳轉(zhuǎn)至首頁。用戶可在首頁查看熱點推送和產(chǎn)品介紹輪播圖;進入聊天界面可進行文本對話;進入個人信息界面,可查看個人信息、歷史聊天記錄,并進行用戶反饋等操作。使用完系統(tǒng)后,用戶可退出登錄,以保護賬號的安全性。前臺系統(tǒng)聊天模塊的實現(xiàn)效果如圖5所示。
4.2 后臺系統(tǒng)實現(xiàn)
普通管理員通過自行注冊并登錄后臺系統(tǒng),而超級管理員則可以對普通管理員進行權(quán)限升級。登錄主頁后,超級管理員可以查看用戶及其他管理員的活躍度,并對系統(tǒng)相關信息進行管理。系統(tǒng)中的每個導航都被分配了一個URL地址,管理員訪問的內(nèi)容會在本頁面的框體中顯示。每個頁面在被打開后都會顯示一個歷史標簽。后臺系統(tǒng)的聊天語句管理模塊的實現(xiàn)效果如圖6所示。
5 結(jié)束語
本文采用軟件工程的開發(fā)思想,闡述了該系統(tǒng)的設計與實現(xiàn)過程。在開發(fā)完成后,進行了使用功能測試,文本聊天、熱點推送、注冊登錄等功能都能夠正常使用。前后端分離的特點使得該系統(tǒng)在管理上更加方便快捷。目前,系統(tǒng)的功能已全部開發(fā)完畢,但在文本對話的語料庫方面還需要進一步增加和完善,以使該聊天系統(tǒng)更具人性化。