韓玉婷 葉自強



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