基于PaddleHub的聊天机器人小程序的设计与开发—计算机毕业设计附源码06246

摘要

 聊天机器人是一种通过模拟人类会话来进行交互的智能系统。随着人工智能技术的不断发展,聊天机器人正在成为移动平台上的热门应用之一。然而,目前大多数聊天机器人只能进行简单的问答,而缺乏真正的对话能力和理解能力。因此,本研究旨在开发一个具有高度对话能力和理解能力的聊天机器人小程序通过引入SpringBoot框架,结合微信小程序等开发工具的使用,设计并实现一个基于PaddleHub的聊天机器人小程序,本研究将为聊天机器人小程序系统的开发提供一种新的方法和思路。

本文通过分析聊天机器人小程序的功能需求,建立与机器人对话的接口,实现与科普知识的数据对接与同步。设计和开发通用的聊天机器人小程序,包括用户界面设计、交互设计、功能开发等。最后进行功能测试和用户体验评估,收集用户反馈,优化小程序的设计和性能。通过引入深度学习和强化学习的方法,可以提高聊天机器人的对话能力和理解能力,增强用户的体验和满意度。

关键词  微信小程序;Springboot;聊天机器人PaddleHub

Design and Development of a Chat Robot Mini Program Based on PaddleHub

Major: xxx  Grade: xxx  Class: xx  Student: xxx  

Supervisor: xxx 

Abstract  A chatbot is an intelligent system that interacts by simulating human conversations. With the continuous development of artificial intelligence technology, chatbots are becoming one of the popular applications on mobile platforms. However, currently most chatbots can only perform simple Q&A and lack true conversational and comprehension abilities. Therefore, this study aims to develop a chatbot mini program with high conversational and comprehension abilities. By introducing the SpringBoot framework and combining it with development tools such as WeChat mini programs, a chatbot mini program based on PaddleHub is designed and implemented. This study will provide a new method and approach for the development of chatbot mini program systems.

This article analyzes the functional requirements of chat robot mini programs, establishes interfaces for dialogue with robots, and achieves data integration and synchronization with popular science knowledge. Design and develop a universal chat robot mini program, including user interface design, interaction design, function development, etc. Finally, perform functional testing and user experience evaluation, collect user feedback, and optimize the design and performance of the mini program. By introducing deep learning and reinforcement learning methods, the conversational and comprehension abilities of chatbots can be improved, enhancing user experience and satisfaction.

Key words WeChat Mini Program; Springboot; Chatbot; PaddleHub

目录

1 绪论

1.1 研究背景与意义

1.2国内外研究现状

1.3论文主要研究内容

1.4论文组织结构

2 相关技术介绍

2.1 微信开发者工具

2.2 PaddleHub介绍

2.3  Vue主要功能

2.4  Springboot框架

2.5  MySQL数据库

3 系统分析设计

3.1 可行性分析

3.1.1 技术可行性分析

3.1.2 经济可行性分析

3.1.3 操作可行性分析

3.2 系统流程分析

3.2.1 用户登录流程

3.2.2 信息添加流程

3.2.3 信息删除流程

3.3 功能需求分析

3.4 非功能性需求分析

3.5系统角色用例分析

3.5.1系统前台用户用例

3.5.2系统后端用例

4 系统概要设计

4.1开发流程设计

4.2系统功能结构设计

4.3数据库概念结构设计

4.4数据库逻辑结构设计

5 系统的实现

5.1前台用户功能模块

5.1.1 前台首页界面

5.1.2注册界面

5.1.3登录界面

5.1.4 交流论坛界面

5.1.5 新闻资讯界面

5.1.6 科普知识详情界面

5.1.7 聊天机器人会话界面

5.2后台功能模块

5.2.1 系统用户界面

5.2.2 科普知识管理界面

5.2.3 系统管理界面

5.2.4 资源管理界面

5.2.5 交流管理界面

6系统的测试

6.1测试的目的

6.2 系统测试用例

6.3 系统测试结果

结论

参考文献

致谢

1 绪论

1.1 研究背景与意义

随着智能手机的普及和人工智能技术的持续发展,聊天机器人成为移动应用开发的重要方向之一。聊天机器人在各个领域有着广泛的应用,如客服领域的智能问答系统、社交娱乐领域的虚拟伴侣等,其实现的关键在于自然语言处理和对话系统技术的发展。

然而,目前大多数的聊天机器人只能根据预先设定的规则进行回答,缺乏理解用户意图和生成自然流畅的对话的能力。传统的聊天机器人系统通常采用基于规则的方法,通过预先定义的规则和模式匹配来生成回答。这种方法的局限性在于无法处理复杂的自然语言表达和多轮对话,容易出现歧义和误解。另一种方法是基于机器学习的方法,通过训练深度学习模型来进行聊天对话生成。这种方法可以提高聊天机器人的对话能力和自然度,但需要大量的标注数据和计算资源。

PaddleHub作为一个全面的深度学习模型库,提供了各种预训练模型和工具,其中包含了针对自然语言处理任务的模型。通过结合PaddleHub的模型和技术,可以实现更加智能和流畅的聊天机器人。本文基于PaddleHub的聊天机器人小程序具有以下几点研究意义:

(1)提升用户体验:采用PaddleHub提供的模型,可以在聊天机器人中实现更准确、更流畅的自然语言处理,从而提升用户与机器人的交互体验。

2)降低开发成本:PaddleHub提供了丰富的预训练模型,开发者可以通过简单调用这些模型来快速搭建聊天机器人,降低了开发和部署的成本。

(3)探索新型应用场景:基于PaddleHub的聊天机器人小程序可以在多个领域得到应用,如智能家居、在线教育、健康咨询等,为人们的生活带来便利和创新。

4)推动技术发展:通过研究基于PaddleHub的聊天机器人小程序,可以促进自然语言处理和对话系统技术的深入发展,推动人工智能技术的进步。

1.2国内外研究现状

聊天机器人是近年来人工智能领域的热门研究方向之一。聊天机器人通过自然语言处理和对话管理等算法,能够与用户进行智能对话,实现语义理解和生成,具有广泛应用前景。因此,聊天机器人的研究受到了学术界和工业界的广泛关注。PaddleHub是百度推出的一款开源深度学习模型管理工具,为开发者提供了丰富的深度学习模型和预训练模型库。借助PaddleHub,开发者可以快速构建和部署各种深度学习模型,包括聊天机器人模型。

中国在聊天机器人的研究和应用方面取得了相当的成就。大部分研究聚焦于中文场景下的聊天机器人技术。例如,阿里巴巴的天猫精灵、百度的度秘、腾讯的小微等聊天机器人产品已经在市场上推出,并广泛应用于智能音箱、手机等终端设备中。国内的研究机构和高校也积极进行聊天机器人的研究,包括中科院、清华大学、浙江大学等。

国内的聊天机器人研究主要集中在以下几个方面:自然语言处理、对话系统、知识图谱等。自然语言处理是聊天机器人的核心技术之一,包括语义理解、语义生成、文本分类等。对话系统则涉及对话状态追踪、对话管理、应答生成等方面的技术。此外,聊天机器人还需要具备丰富的知识库以支持对话,在知识图谱的构建和应用上也有相关研究。

国外的聊天机器人研究也相当活跃,并且在某些领域取得了重要的突破。例如,Google的谷歌助手、Microsoft的小冰、Facebook的M等聊天机器人产品在国际市场上受到了广泛的关注和使用。同时,国外的研究机构和大学也在聊天机器人研究领域取得了一些重要的成果,如斯坦福大学、麻省理工学院、牛津大学等。

国外的聊天机器人研究同样关注自然语言处理、对话系统和知识图谱等技术。此外,国外的研究还在追求更加智能化的聊天机器人。例如,使用深度学习技术进行模型训练,以提升对话的流畅性和语义理解能力。同时,还有研究人员探索了跨语言对话机器人、情感理解和生成、多轮对话等前沿研究方向。

在国内外,关于基于PaddleHub的聊天机器人小程序的研究和应用也逐渐增多。通过对已有研究成果的整理和总结,可以更好地了解当前研究的发展状况,并指导进一步的研究和应用实践。接下来,将介绍国内外关于基于PaddleHub的聊天机器人小程序的研究现状。

国内外在聊天机器人的研究和应用方面都取得了重要的进展。不同的研究机构和公司通过开发和应用创新技术,使得聊天机器人在个人助手、客户服务、教育培训等领域呈现广泛的应用前景。研究者们通过不断探索和优化,提高了聊天机器人的语言理解、交互效果和应用范围,为智能客服、智能教育等领域的发展提供了有力支持。随着人工智能技术的不断发展,聊天机器人将会在未来的智能社会中发挥更加重要的作用。

1.3论文主要研究内容

本研究将以PaddleHub为基础,主要研究内容包括:

(1)在数据收集和预处理阶段,收集聊天对话数据并进行预处理,为后续的模型训练做准备。

(2)研究PaddleHub平台提供的聊天机器人相关的预训练模型,包括中文对话模型等,选择合适的模型作为聊天机器人的基础。利用PaddleHub提供的聊天机器人模型进行初步实验,评估其性能和适用场景。

(3)搭建一个简单易用的聊天机器人小程序,设计并实现一个简单的前端交互界面,用户可以通过该界面输入对话内容,并查看聊天机器人的回复。同时设计聊天机器人的对话生成策略,优化模型的训练过程,提升对话质量和流畅性。

(4)基于用户反馈和实验结果对聊天机器人的性能进行优化和改进,包括对话质量、响应速度等指标的评估,通过用户调研和实验验证聊天机器人的实际效果

1.4论文组织结构

本文共分为七章,章节内容安排如下:

第一章:引言。主要介绍了课题研究的背景,国内目前相关研究现状以及本文的研究内容与主要工作。

第二章:相关技术介绍。主要对本系统使用的相关技术和开发工具进行介绍。

第三章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。

第四章:系统概要设计。主要对系统框架、系统功能模块、数据库进行功能设计。

第五章:系统实现。主要介绍了系统框架搭建、系统界面的实现。

第六章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试。

第七章:总结与展望。

2 相关技术介绍

2.1 微信开发者工具

微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。

根据用户的需求,我们将采用不同的屏幕大小来制作小程序。

在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。

控制台:方便调试打印输出信息。

将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。

通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。

使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。

本地数据存储显示的是本地存储的数据。

通过使用子父层级结构,我们可以更容易地进行视图调试。

微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。

微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。

2.2 PaddleHub介绍

PaddleHub是基于PaddlePaddle开发的预训练模型管理工具,可以借助预训练模型更便捷地开展迁移学习工作,旨在让PaddlePaddle生态下的开发者更便捷体验到大规模预训练模型的价值。简单来说,Paddlehub就是一个用于储存所有一训练好模型的小型仓库。所有已经训练好的模型都会被放到这个仓库里面。开发者可以在已有模型的基础上进行迁移学习,也可以直接将训练好的模型拿出来使用。

当前PaddleHub已经可以支持文本、图像、视频、语音和工业应用等五大类主流方向,为用户准备了大量高质量的预训练模型,可以满足用户各种应用场景的任务需求,包括但不限于词法分析、情感分析、图像分类、图像分割、目标检测、关键点检测、视频分类等经典任务。

2.3  Vue主要功能

Vue(读音/vjuː/,相似于view)是一种具有高度灵活性的JavaScript架构,能够从基础到顶级,从低到高地实现多种功能,从而创造出一个完整的、高效的用户体验。Vue的核心库专注于视觉表示,它的操作简单,并且可以轻松地将其与其他第三方库和已存在的项目进行集成。此外,Vue可以通过搭配先进的工具和多样的支撑性库,来实现对复杂的网站(SPA)的高效管理。

Vue.Vue作为一种逐步改善的用户体验的框架,具备了独特的优势:首先,它的基础结构更加简单,而且可以轻松地被更多的人使用,而Vue的核心库则更加专注于视觉层,可以轻松地被更多的人使用,也可以被更多的库和现成的项目所使用。Vue 具备强大的功能,可以利用其内置的多个文档组件以及其强大的生态系统,来实现更加精简、高效的单页应用。

Vue.js 旨在通过最少的 API ,实现对数据的有效绑定,并将其转换为多种形式的视图组件。

Vue.js 虽然不是一个完美的框架,但它可以帮助我们更好地理解和实现复杂的页面应用。它的视图层特性使得它更容易学习,并且可以与其他库或已有项目进行整合,从而提高效率。

2.4  Springboot框架

Spring框架是一个由SpringBoot公司发布的开放式框架,旨在通过其可扩展的特性来支持多种不同的编码方式。尽管Spring框架不会影响任何特定的编码方式,但其出色的性价比和可扩展性,已经成为EJB(EnterpriseSpringBootBeans)框架的重要组成部分,并且一直得到越来越多的人的青睐。Spring框架不仅可以有效地支撑开发,而且还可以充分利用其独有的控制反转功能,以及支撑多种持久性技术,从而将托管对象的生命周期变得更加容易,并且可以支撑声明性的事务处理,还可以支撑多种Web框架,从而有效地推动开发。

Spring框架拥有强大的IOC功能,可以轻松地实现SpringBoot对象的调度与操作,从而更好地支持项目的运行。此外,Spring还支持将SpringBoot对象的生命周期进行可视化,以实现更加灵活的调度与操作。Spring框架提供了一种新的、高效的容器设计工具,它能够根据XML文件和AOP注解的指引,从多个源中提取和组织相应的参数,从而实现多种功能。此外,它还提供了一种面向服务的框架,它能够根据用户的需求,自动调整参数,从而提高系统的效率和性能。Spring框架的AOP框架具有强大的功能,可以满足各种复杂的需求[10]。尽管AspectJ框架的性能不及其他框架,但是Spring AOP的出色表现使其在各种应用场景中都具有出色的表现,例如:在事务处理、远程控制、网络安全、数据共享、文件共享、网络安全协议、网络安全协议。

SpringBoot的事务处理框架提供了一种灵活的方式,可以将不同的内容、不同的时间段、不同的类型的数据进行处理,并且可以将这些处理结果存储到一起。此外,Spring还提供了一系列的事务模型。Spring的事务框架提供了一种灵活的方式,它允许用户根据需要调整事务的类型,例如XML、SpringBoot等,同时还支持快速的消息传输、缓冲等特性,从而有效地帮助开发者处理日益增长的数据需求。这款应用程序拥有强大的功能,能够兼容各种常见的数据处理框架,包括SpringBoot、iBATS/MyBATIs、Hibernate、SpringBoot)数据对象(JDO)、Apache OJB、Apache Cayne等,并能够将其与Spring的事务处理功能相结合,从而实现更加高效的数据处理。SpringMVC最初的目的是要替代StrutsWeb框架,因此,开发者决定将其与传统的web页面框架进行改造,使其能更好地支持用户的访问。这样,SpringMVC就能更好地支持用户的需求,从而提高web页面的性能

2.5  MySQL数据库

MySQL数据库已经成为网络上的一种强大的工具,它能够支持多个用户,并且能够根据客户端和服务端的需求进行调整,从而满足不同的需求。在这里,服务端和客户端只是一种软件上的概念,而我们所使用的计算机硬件则没有必要完全相互匹配。

MySQL作为一个受到广泛认可的开放式DBMS,其卓越的性能和易于操作的特性,以及其在多种操作环境中的灵活性,让其成为了众多AP中的首选。此外,MySQL还具有良好的跨平台性,让软件开发人员对其有着极高的评价。与传统的关联式数据库系统形式大相径庭,MySQL拥有一套完善的数据库管理策略,以确保用户的安全、稳健、安全。MySQL具备良好的容错、安全、快速、稳健的特点,使得mysql成为一款极其实用的数据库管理工具。

MySQL拥有一种独特的权限分配机制,可以根据用户的身份和业务逻辑,为用户提供更多的选择,从而大大提高了MySQL的安全性和完整性,远超过其他关系型数据库。

MySQL具有强大的功能,能够处理各种数据类型,包括动态、静态、多种语言,从而使用户能够轻松访问多种数据。

MySQL具有多种功能,它能够支持多种平台的开发,并且支持多种编程语言,使得用户能够轻松访问和使用MySQL数据库。

3 系统分析设计

3.1 可行性分析

可行性分析是系统分析的第一步,通过可行性分析我们可以得出系统是不是值得开发,如果系统的开发是不可信的,那么就没有必要再进行下面的操作,对于本基于PaddleHub的聊天机器人小程序在可行性方面进行了技术、经济以及操作的分析。

3.1.1 技术可行性分析

基于PaddleHub的聊天机器人小程序在技术上采用的是Java语言、基于Browser/Server模式,前台使用了Vue.js、HTML、CSS等技术,后台使用了Springboot框架结合PaddleHub应用工具,这些技术在校期间都已经学习过,而且用这些技术开发过一些小的系统,同时在实际开发中微信小程序功能强大被普通应用,因此开发技术是没有问题的。

3.1.2 经济可行性分析

开发基于PaddleHub的聊天机器人小程序并不需要投入太多,开发工具、服务器、数据库等,都可以通过网络搜索、下载、安装,只需要一台普通的计算机就可以完成操作,而且在系统功能规划上都是通过问卷调查了解用户需求,通过百度、知网库、学校图书馆查阅相关系统,了解它们对系统具体实现的功能需求,然后进行设计开发,不存在任何开销,因此系统的开发在经济方面是可行的。

3.1.3 操作可行性分析

基于PaddleHub的聊天机器人小程序的在开发的时候充分了解用户群体,对于使用智能机不熟练的用户也进行考虑在内,在小程序的开发中首页有醒目的导航栏,使得即使没有使用过小程序的用户,也可以根据导航栏的提示进行操作,非常方便,因此系统在操作上是可行的。

3.2 系统流程分析

3.2.1 用户登录流程

第一步,为了保证系统的安全性,用户需要在登录窗口中输入自己的个人信息,并确保信息准确无误。如果输入的信息不正确,将会弹出提示框,导致用户登录失败,需要重新输入,如图3-1所示。

图3-1登录操作流程图

3.2.2 信息添加流程

基于PaddleHub的聊天机器人小程序可以实现快速、准确地收集和处理各种信息,而且在使用过程中,只有在按照指定的界面和指定的参考文献,才能够正确地获取和处理信息,而若信息未能满足预期,就会被退出第一步,并且在第二步中,还会继续检查信息的准确性,以确保最终的结果能够满足预期的目标。

图3-2 信息添加流程图

3.2.3 信息删除流程

无论是何种用户角色,只要进入了不正常的系统操作界面,就可以使用不同的信息内容来进行操作。当用户尝试删除系统中的数据时,必须先ACK这些数据是否已经被删除,如果没有,就应该按照图3-3的指示进行操作,以免影响系统的正常运行。

图3-3 信息删除流程图

3.3 功能需求分析

1聊天机器人模块基于PaddleHub的聊天机器人小程序最主要的功能就是与机器人进行人机互动,对话聊天。如下图3-4所示。

3-4聊天机器人模块用例图

2科普知识模块:基于PaddleHub的聊天机器人小程序最主要的一个功能就是搜索科普知识并进行阅读点赞收藏和评论。系统中需要管理员添加各种科普知识供用户查询阅读,管理员在此模块主要是对科普知识的增删改查,游客实现对科普知识信息的查询,普通用户则实现科普知识的点赞、评论、收藏等操作。如下图3-5所示。

3-5 科普知识模块用例图

3交流论坛模块:管理员在后台可以对交流论坛及其分类进行增删改查,游客实现查看交流论坛,用户进行发布帖子、收藏、点赞、评论操作。如下图3-6所示。

3-6交流论坛模块用例图

4新闻资讯模块:管理员在后台可以对新闻资讯及其分类进行增删改查,游客实现查看新闻资讯,用户进行收藏、点赞、评论。如下图3-7所示。

3-7新闻资讯模块用例图

5)用户管理模块:在前台游客可以通过注册,然后参与到系统当中,管理员可以对注册的用户进行修改、删除、查询、也可以添加新的用户。如下图3-8所示。

3-8用户管理模块用例图

6我的模块:我的模块是前台用户独有的功能,可以在“我的”管理个人信息、登录密码和收藏的信息我的用例如下图3-9所示。

3-9我的管理模块用例图

3.4 非功能性需求分析

系统的功能需求方面主要是从系统的安全性、存储性、可靠性、易学性、稳定性等方面进行分析:

(1)安全性:系统的安全问题是开发者首先要考虑的,如果系统存在安全隐患,可能使得用户个人信息被泄露,给用户带来困扰,造成损失。

(2)储存性:因为用户使用的关于科普知识的网站,普通用户多,而且登录后要查询各种科普知识信息,那就需要一个强大的数据库来进行数据的存储,对数据库的要求是非常严格的,本系统选用的是MYSQL数据库,MYSQL的运行速度很快,执行命令的速度也非常快,而且体积小。 

(3)可靠性:可靠性指的是用户在进行科普知识信息查询评论以及已读的时候,能够按照用户的指示进行显示信息,如果用户点击查询科普知识详细信息,显示出来的是不可已读的信息,那就违背用户的初衷。

(4)易学性:系统的开发面向对象学历不尽相同,所有在开发的时候要考虑系统操作应该简单,不需要进行任何学习、培训,只能上网的用户就可以操作。

(5)稳定性:系统在运行方面要很稳定,系统的界面、字体要清楚,没有失真现象,给用户以良好的体验。

(6)可拓展性:本基于PaddleHub的聊天机器人小程序的功能还有待完善,因此系统要有很好的拓展性,方便后期功能更新维护。

3.5系统角色用例分析

3.5.1系统前台用户用例

基于PaddleHub的聊天机器人小程序前台用户的主要功能是对系统信息的查看、收藏、评论以及和聊天机器人的聊天对话。前台普通用户用例图如图3-10所示

3-10 聊天机器人小程序前台普通用户用例图

在系统前台中主要实现的是对基于PaddleHub的聊天机器人小程序交流论坛、新闻资讯和科普知识信息的查看、收藏、评论以及和聊天机器人的聊天对话几个功能。

1新闻资讯功能,主要实现了是对新闻资讯的查看,用户进行评论、收藏、点赞,用例说明如下表所示:

3-1 新闻资讯用例说明

用例名称

新闻资讯

角色

用户

用例说明

对新闻资讯评论

前置条件

用户登录到系统当中

后置条件

用户发表评论

基本事件流

1.进入系统登录界面

2.点击新闻资讯,选择某条新闻资讯查看详情

3.输入评论内容

4.点击提交按钮,发表评论

扩展流程

3a.用户没有登录成功

异常事件流

3a.输入评论内容为空

其他

2科普知识功能,本功能是系统的主要功能之一,主要实现了是对科普知识的查看,用户进行评论、收藏、点赞,用例说明如下标所示:

3-2 科普知识用例说明

用例名称

科普知识

角色

用户

用例说明

对科普知识评论

前置条件

用户登录到系统当中

后置条件

用户发表评论

基本事件流

1.进入系统登录界面

2.点击科普知识,选择某条科普知识查看详情

3.输入评论内容

4.点击提交按钮,发表评论

扩展流程

3a.用户没有登录成功

异常事件流

3a.输入评论内容为空

其他

3聊天机器人功能,本功能是系统的主要功能,主要实现了用户与智能机器人交流互动的功能,用例说明如下标所示:

3-3 聊天机器人用例说明

用例名称

聊天机器人

角色

用户

用例说明

与聊天机器人发起会话

前置条件

用户登录到系统当中

后置条件

发送聊天对话内容给聊天机器人

基本事件流

1.进入系统登录界面

2.点击聊天机器人头像,进入与聊天机器人的对话窗口

3.输入聊天内容

4.点击发送

扩展流程

3a.用户没有登录成功

异常事件流

3a.输入会话内容为空

其他

3.5.2系统后端用例

后台管理员进入以后可以对系统用户、知识分类管理、科普知识管理、系统管理、公告信息管理、资源管理、交流管理进行管理。

后台管理员用例图如图3-11所示

3-11 聊天机器人小程序后台管理员用户用例图

后台管理员主要实现了是对系统用户、知识分类管理、科普知识管理、系统管理、公告信息管理、资源管理、交流管理的增删改查操作。后台管理员的用例说明如下表所示:

表3-3 后台管理用例说明

用例名称

后台管理

角色

管理员

用例说明

对前端显示的信息进行管理

前置条件

管理员登录进入后台管理页面

后置条件

基本事件流

1.管理员登录进入后台管理界面

2.点击左侧选择相应功能板块

3.选择所要操作的数据

4.点击选择的内容进行增加/删除/修改/查找

5.点击立即保存按钮

扩展流程

异常事件流

其他

4 系统概要设计

4.1开发流程设计

开发基于PaddleHub的聊天机器人小程序需要经过多个步骤,包括分析管理模块+编写代码+规划和操作,这些步骤是打造基于PaddleHub的聊天机器人小程序信息管理AP的关键,它们将决定系统能否达到预期的功能,并且能够在完成设计之后得到实施。在开发过程中,为了确保系统的有效性,每个阶段的开发必须严格遵循线性顺序,并且每个步骤的完成情况都要经过技术检验,以确保每个步骤的准确性,避免出现拖拽现象,从而保证系统的设计功能能够得到有效实施。

通过对基于PaddleHub的聊天机器人小程序的成功开发,我们可以看出,采用这种方法可以显著降低系统的复杂性,并且可以通过图4-1进一步证明。

图4-1开发系统流程图

4.2系统功能结构设计

基于PaddleHub的聊天机器人小程序总体分为前台用户模块和后台管理员模块。

两个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。

综上所述,系统功能结构图如图4-2所示。

4-2 系统功能结构

4.3数据库概念结构设计

数据库系统作为一个重要的组件,其优化针对整体网络的运行非常重要。为了构建一个高效的数据库系统,我们需要明确每个元素的特征,并将它们组合在一起。在本次研究中,我们将重点关注基于PaddleHub的聊天机器人小程序的项目概述和设计分析,并对数据库进行设计。我们将使用mysql数据库来支持我们的系统,同时我们将采用更加人性化的操作设计,以便在系统中及时处理和反馈错误信息。

下面是整个基于PaddleHub的聊天机器人小程序中主要的数据库表总E-R实体关系图。

4-3 系统总E-R关系图

4.4数据库逻辑结构设计

通过上一小节中基于PaddleHub的聊天机器人小程序中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表forum (论坛)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

forum_id

mediumint

8

0

N

Y

论坛id

2

display

smallint

5

0

N

N

100

排序

3

user_id

mediumint

8

0

N

N

0

用户ID

4

nickname

varchar

16

0

Y

N

昵称:[0,16]

5

praise_len

int

10

0

Y

N

0

点赞数

6

hits

int

10

0

N

N

0

访问数

7

title

varchar

125

0

N

N

标题

8

keywords

varchar

125

0

Y

N

关键词

9

description

varchar

255

0

Y

N

描述

10

url

varchar

255

0

Y

N

来源地址

11

tag

varchar

255

0

Y

N

标签

12

img

text

65535

0

Y

N

封面图

13

content

longtext

2147483647

0

Y

N

正文

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

16

avatar

varchar

255

0

Y

N

发帖人头像:

17

type

varchar

64

0

N

N

0

论坛分类:[0,1000]用来搜索指定类型的论坛帖

表forum_type (论坛分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

name

varchar

16

0

N

N

分类名称:[2,16]

3

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

4

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

5

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

6

icon

varchar

255

0

Y

N

分类图标:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表knowledge_classification (知识分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

knowledge_classification_id

int

10

0

N

Y

知识分类ID

2

knowledge_type

varchar

64

0

Y

N

知识类型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表popular_science_knowledge (科普知识)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

popular_science_knowledge_id

int

10

0

N

Y

科普知识ID

2

knowledge_name

varchar

64

0

Y

N

知识名称

3

knowledge_type

varchar

64

0

Y

N

知识类型

4

release_date

date

10

0

Y

N

发布日期

5

industry

varchar

64

0

Y

N

所属行业

6

knowledge_cover

varchar

255

0

Y

N

知识封面

7

knowledge_description

text

65535

0

Y

N

知识描述

8

knowledge_content

text

65535

0

Y

N

知识内容

9

hits

int

10

0

N

N

0

点击数

10

praise_len

int

10

0

N

N

0

点赞数

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表registered_users (注册用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registered_users_id

int

10

0

N

Y

注册用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5 系统的实现

5.1前台用户功能模块

5.1.1 前台首页界面

当进入基于PaddleHub的聊天机器人小程序的时候,首先映入眼帘的是系统的导航栏,导航栏上面是轮播图以及科普知识和新闻资讯,其主界面展示如下图5-1所示。

图5-1 前台首页界面图

5.1.2注册界面

不是基于PaddleHub的聊天机器人小程序中正式用户的是可以在线进行注册的,当用户点击“注册”按钮,填写上自己的账号+密码+确认密码+昵称等,再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可普通用户注册成功。其用注册流程图如图5-2所示,注册界面展示如下图5-3所示。

5-2注册流程图

图5-3 前台注册界面图

注册关键代码如下所示。

/**

     * 注册

     * @param user

     * @return

     */

    @PostM小程序ing("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

  }     

5.1.3登录界面

基于PaddleHub的聊天机器人小程序中的前台上注册后的普通用户是可以通过自己的账户名和密码进行登录的,当普通用户输入完整的自己的账户名和密码信息并通过滑动验证通过后,点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到基于PaddleHub的聊天机器人小程序的首页中;否则将会提示相应错误信息,用户登录流程如图5-4所示,登录界面如下图5-5所示。

5-4 登录流程图

图5-5普通用户登录界面图

登录的逻辑代码如下所示。

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostM小程序ing("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

5.1.4 交流论坛界面

当用户点击基于PaddleHub的聊天机器人小程序中的“交流论坛”后将会进入到该“交流论坛”列表的界面,然后选择想要看的论坛帖子信息,点击进入到详细界面,在详细界面可以收藏+赞+评论等操作,用户也可以点击“发布内容”按钮发布新的帖子信息。交流 论坛列表界面如下图5-6所示。

图5-6交流论坛列表界面图

5.1.5 新闻资讯界面

用户点击基于PaddleHub的聊天机器人小程序中导航栏上的“新闻资讯”后将会进入到该“新闻资讯”列表的界面,然后选择想要看的新闻资讯,点击进入到详细界面,新闻资讯详情界面如下图5-7所示。

图5-7新闻资讯详情界面图

5.1.6 科普知识详情界面

用户点击了任意科普知识后将会进入该科普知识的详情界面,可以了解到该科普知识的知识名称、知识类型、发布日期、所属行业、知识封面、知识描述、知识内容等,同时可以对该科普知识通知进行点赞、评论、收藏,科普知识详情展示页面如图5-8所示。

图5-8科普知识详情界面图

5.1.7 聊天机器人会话界面

用户点击首页的聊天机器人头像,会跳转到与聊天机器人的对话窗口,输入会话内容可以像机器人发起提问,聊天机器人会根据PaddleHub的预测模型进行回答。聊天机器人会话页面如图5-9所示。

图5-9聊天机器人会话界面图

5.2后台功能模块

5.2.1 系统用户界面

后台管理人员是可以对前台注册的普通用户进行管理。系统用户管理界面如下图5-10所示。

图5-10系统用户管理界面图

5.2.2 科普知识管理界面

后台管理人员对聊天机器人小程序内的不同知识分类下的科普知识进行维护和管理的,也可以对用户提交的关于科普知识的评论信息进行管控。科普知识管理界面如下图5-11所示。

图5-11科普知识管理界面图

5.2.3 系统管理界面

管理人员在“系统管理”这一菜单下是可以对聊天机器人小程序内展示的轮播图进行添加修改的。系统管理界面如下图5-12所示。

图5-12系统管理界面图

5.2.4 资源管理界面

后台管理人员是可以对新闻资讯以及资讯分类的分类进行增删改查操作也可以对用户提交的关于新闻资讯的评论信息进行管控新闻资讯界面如下图5-13所示。

图5-13新闻资讯理界面图

5.2.5 交流管理界面

管理员点击“交流管理”菜单能够对就业管理系统内的交流论坛帖子及其所属论坛分类信息进行增删改查。交流管理界面如下图5-14所示。

图5-14交流管理界面图

6系统的测试

6.1测试的目的

系统的前台、后台、数据库完成以后,这个系统才算是完成了一半,我们在这之后要对系统进行最后的一个阶段,那就是测试了,测试对一个系统来说是非常重要的,有的时候开发完一个系统,如果测试不合格的话,这个系统是没有办法进行投入使用的,所有我们要用测试对系统的功能进行检验,把不完善的功能尽量完善,把出现的bug解决掉,然后给用户呈现出一个完美的系统。通过对系统最后一步的测试,使得开发人员对自己的系统更加有信心,更加积极的为后期的系统版本的更新提供支持。

6.2 系统测试用例

系统测试包括:用户登录功能测试、科普知识查看功能测试、新闻资讯添加、科普知识搜索、密码修改功能测试,如表6-1、6-2、6-3、6-4、6-5所示:

用户登录功能测试:

表6-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

科普知识查看功能测试:

表6-2 科普知识查看功能测试表

用例名称

科普知识查看

目的

测试科普知识查看功能

前提

用户登录

测试流程

点击科普知识列表

预期结果

可以查看到所有科普知识

实际结果

实际结果与预期结果一致

管理员添加新闻资讯界面测试:

表6-3 管理员添加新闻资讯界面测试表

用例名称

新闻资讯发布测试用例

目的

测试新闻资讯发布功能

前提

管理员用户正常登录情况下

测试流程

1)管理员点击新闻资讯,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的新闻资讯信息 

实际结果

实际结果与预期结果一致

科普知识搜索功能测试:

表6-4 科普知识搜索功能测试表

用例名称

科普知识搜索测试

目的

测试科普知识搜索功能

前提

测试流程

1)在搜索框填入搜索关键字。

2)点击搜索按钮。

预期结果

页面显示包含有搜索关键字科普知识

实际结果

实际结果与预期结果一致

密码修改搜索功能测试:

表6-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

6.3 系统测试结果

通过编写基于PaddleHub的聊天机器人小程序的测试用例,已经检测完毕一上功能模块的测试。在测试每个功能的过程中,我们应该严格按照指定的测试计划逐步进行测试,不能急于实现,并且每个测试的结果都应该充分记录下来,最好的选择是自动化测试,这样可以更准确、更快地完成,而不是依赖手动测试,因为这样可以避免问题,它还可以防止疲劳和问题。进行测试时,必须保持高度专注,密切关注测试结果,并及时纠正任何异常情况;最后,在测试完成后,应该正确保存文档以备将来使用。经过测试可以发现,原来开发的系统是清晰的,只有对其进行细化,编程的过程才会变得更加顺利。只有有了良好的结构,后期的编程工作才能顺利完成,同时也可以大大降低时间和精力成本。

结论

基于PaddleHub的聊天机器人小程序使用的开发环境是功能强大的SpringBoot技术,结合微信小程序和PaddleHub预测模型平台,在大学的学科中重点学习了这几种技术,在对这些技术学习、熟悉之后,结合对系统进行的需求分析顺利的完成了本次项目的设计。在最初接到任务书的那一刻,比较迷茫,没有任何的思路,在经过了老师的指导以后,调查了一些跟人工智能、chatgpt相关的资料后,慢慢的有了头绪,开始入手开题,明确了系统的内容,对系统进行可行性的分析,确定系统可行以及功能内容以后,就按照开题初步设计的内容进行完善,慢慢补充、学习,最终结束了程序的开发,也完成了论文的写作。这一过程,虽然艰辛,但也学习到了很多,对项目开发流程也有了一个新的认识,动手能力也得到了提高,这正是书本上所学习不到的。

经过开发本项目,让我非常有成就高,与此同时我对程序的开发更加感兴趣了,信息技术真的很强大,也很深奥,在以后工作中,我将会寻找与其相关工作,继续深入学习,开发出更优秀的项目。

参考文献

[1]Kim A ,Su Y .How implementing an AI chatbot impacts Korean as a foreign language learners’ willingness to communicate in Korean[J].System,2024,122103256-.

[2]Singer B M ,Fu J J ,Chow J , et al.Development and Evaluation of Aeyeconsult: A Novel Ophthalmology Chatbot Leveraging Verified Textbook Knowledge and GPT-4[J].Journal of Surgical Education,2024,81(3):438-443.

[3]程光,程翠柳.基于ChatGPT的管理会计应用场景研究[J/OL].会计之友,2024,(06):15-20[2024-03-03].http://kns.cnki.net/kcms/detail/14.1063.F.20240221.1226.006.html.

[4]Filho L R J ,Coleti A T ,Morandini M .Evaluating chatbot user experience (UX) through electroencephalography measures: A systematic literature review[J].Computers in Human Behavior Reports,2024,13100381-.

[5]Ochoa O E ,Pérez Q J ,Arguedas M , et al.The effectiveness of empathic chatbot feedback for developing computer competencies, motivation, self-regulation, and metacognitive reasoning in online higher education[J].Internet of Things,2024,25101101-.

[6]杨月涵.字节“扣子”上线AI聊天机器人升温[N].北京商报,2024-02-02(004).DOI:10.28036/n.cnki.nbjxd.2024.000314.

[7]宫蛟飞.图书馆机器人分类及应用探讨[J].科技创新与应用,2024,14(04):189-192.DOI:10.19981/j.CN23-1581/G3.2024.04.044.

[8]黄荣怀,陈莺,Ahmed Tlili.教育机器人的典型应用场景及技术治理[J].中国现代教育装备,2024,(01):1-4+8.DOI:10.13492/j.cnki.cmee.2024.01.006.

[9]李恬蕊.“增智”语言邦:智能语言乌托邦与敌托邦的平衡[J].湖北第二师范学院学报,2024,41(01):8-12.

[10]李国琪.ChatGPT对科技期刊的影响及对策初探[J].天津科技,2024,51(01):73-78.DOI:10.14099/j.cnki.tjkj.2024.01.010.

[11]郑春萍,于淼,郭智妍.人工智能在语言教学中的应用研究:回顾与展望[J].外语教学,2024,45(01):59-68.DOI:10.16362/j.cnki.cn61-1023/h.2024.01.009.

[12]惠延年.人工智能聊天机器人助力眼科和科学论文写作[J/OL].国际眼科杂志,2024,(01):1-4[2024-03-03].http://kns.cnki.net/kcms/detail/61.1419.R.20240108.0900.002.html.

[13]付玲.亚马逊发布面向其云平台的人工智能聊天机器人“Q”[J].互联网天地,2023,(12):60.

[14]刘朝晖.对话机器人诞生,打开人机交互大门[J].新民周刊,2023,(45):40-41.

[15]游丽江.人工智能聊天机器人的影响分析及对策建议——以ChatGPT为例[J].网络安全技术与应用,2023,(12):128-130.

[16]王娆.传播学领域关于社交机器人的研究——基于人机共生的视角[J].中国地市报人,2023,(11):60-62.DOI:10.16763/j.cnki.1007-4643.2023.11.021.

[17]任牡丹,耿骞,吴义熔.聊天机器人评估研究综述:指标、方法与应用领域[J].图书情报工作,2023,67(22):140-148.DOI:10.13266/j.issn.0252-3116.2023.22.014.

[18]张展嘉,张兴梅.基于人工智能聊天机器人(AI Chatbot)的干预对身体活动影响的系统综述[C]//中国体育科学学会.第十三届全国体育科学大会论文摘要集——书面交流(体质与健康分会).北京大学;,2023:2.DOI:10.26914/c.cnkihy.2023.085590.

[19]张跃胜,金文俊.ChatGPT的关键技术、应用场景及未来展望[J].信息技术与管理应用,2023,2(05):64-74.

[20]本刊讯.人工智能聊天机器人是否会被批准为医疗设备[J].数据分析与知识发现,2023,7(09):11.

致谢

通过这样设计与开发这样一个系统,首先向我们老师、同学和朋友表达真诚的感谢。没有指导老师的指导和平日子的教导,我也不能够学到如此多的专业知识。另外,也佩服老师兢兢业业的工作态度,给我们做好了表率。系统开发技术要学习的东西很多,前台框架、后台框架、业务流程、数据结构、操作系统等各种知识非常的丰富,都需要慢慢的专研。在这里,首先感谢老师细心的教导,我只想说一句:“老师,谢谢您,您辛苦了!有您在,大学生活才更加的充实。”另外,我要感谢我的室友,由于知识掌握得不够产生各种问题,正因为有了你们的帮忙,给我提出很多很好的建议,才能更好的解决系统开发问题。同时,我也应该感谢那些计算机专业的先哲们,正是由于有这么一群人,才能把这样的专业研究得如此透彻,才能助力新世界的诞生。你们的理论,是我们一生学习的内容,你们的成就,是我们一生追求的目标。

最后,也希望自己在未来的道路上能够走得更远,不辜负在大学的学习,以及老师们的细致的教导。

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值