文本型聊天系统的设计与实现

2024-06-16 12:58韩玉婷叶自强
电脑知识与技术 2024年12期

韩玉婷 叶自强

关键词: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 结束语

本文采用软件工程的开发思想,阐述了该系统的设计与实现过程。在开发完成后,进行了使用功能测试,文本聊天、热点推送、注册登录等功能都能够正常使用。前后端分离的特点使得该系统在管理上更加方便快捷。目前,系统的功能已全部开发完毕,但在文本对话的语料库方面还需要进一步增加和完善,以使该聊天系统更具人性化。