基于SSE长连接的智能客服问答系统技术方案及完整项目源码

news2024/11/27 8:41:58

文章目录

    • 一、项目背景
    • 二、项目演示
    • 三、项目介绍
      • B系统主要功能
        • 1. 注册登录重置密码
        • 2. 权限管理
        • 3. 项目管理
        • 4.客服管理
      • C系统主要功能
        • 1. 问答组件
        • 2. 主题色定制
        • 3. 类微信时间显示控件及智能tip提示
        • 4. 无障碍阅读
        • 4. 丰富的输入框组件
        • 5. 人工客服
        • 6. 聊天记录分表记录与查询
    • 四、项目总结
        • 本项目涵盖多个技术框架,是一套功能非常完善的系统。是前端及node后端学习的进阶项目,如果你想在vue+node方向全栈技术道路上更上一层,该项目将对你有非常大的帮助。

一、项目背景

公司为了及时快速高效地了解用户真实需求,最开始采用的是网易七鱼的客服问答系统,但是使用过程中并不能够解决一些特定需求,而且对于我们自己维护不太友好,所以公司组织人力开发属于自己的客服系统。旨在为了100%对口我们自己核心业务,做到0开发复制新的客服项目。

图片

然后就由我前头组建了团队,说是团队,其实就是我一个人,哈哈。

然后经过两个月的努力(煎熬),才有了比较能用的技术方案及项目实施.最终1.0客服问答系统落地。公司反馈还不错。特此拿来分享(可以说是显摆嘛哈哈),分享的当然是最初版本,只讲核心几个大模块;其他定制化满足自身业务升级部分省略哈哈哈;

在这里插入图片描述

二、项目演示

在这里插入图片描述

皮一下,接下来正式开始

本来想着录制一下子的,发现浏览器插件screenity有问题了,后期补充吧

三、项目介绍

项目采用SSE长连接方式,并非市面上大多数使用的轮询、webscoket等技术,因为用户SSE可以大大减少带宽,网络、流量等资源的消耗,没有消息的接收及发送不进行任何操作,服务端及用户有信息输入才会触发页面及服务器的消息接收及发送

本文章将围绕三个大系统展开分享;分别是:

  • 客户使用的toC(简称C系统)问答聊天界面;
  • 管理员及客服小姐姐使用toB(简称B系统)后台管理系统
  • 满足toC及toB的后端服务系统

B系统主要功能

1. 注册登录重置密码
  • 用户注册,邮箱校验

    在这里插入图片描述

登录注册还是比较难处理的,需要考虑鉴权与加密存储用户信息,使用非对称加密方式大大加强了用户信息的安全性,并且用户密码采用加盐处理,保证了用户信息的安全。

  • 用户登录

在这里插入图片描述
用户登录采用jwt token检验方式,确保用户登录的唯一性与安全性

  • 随机验证码(后期维护)
    实现随机生成验证码功能,用于用户注册、登录等操作的验证,可包括图形验证码、短信验证码等方式,并考虑后续的维护和更新
  • 忘记密码
    提供用户忘记密码时的密码重置功能,包括验证身份、发送重置链接或验证码等流程,确保用户可以安全地重新设置密码.
    在这里插入图片描述
2. 权限管理
  • 菜单权限
    管理系统中的菜单项,包括菜单的添加、编辑、删除以及权限设置,确保不同用户能够看到符合其权限的菜单。
  • 角色权限
    对系统中的角色进行管理,包括角色的创建、权限分配、角色的绑定等操作,实现对用户权限的灵活控制
  • 用户管理
    对系统用户进行管理,包括用户的添加、编辑、删除,以及用户的角色分配、状态管理等,确保系统安全可控。
3. 项目管理
  • 项目配置
    对系统中各个项目的基本信息进行配置,包括项目名称、描述、负责人等,方便项目的管理与跟踪。
    在这里插入图片描述
  • 语料库配置
    管理系统中的语料库,包括语料的添加、编辑、删除,以及语料的分类、标记等,为后续的数据处理提供基础。
    配置问题及答案、添加基础语料库,比如未搜索到配置的专项问答就智能回复,避免用户无感,失去耐心

在这里插入图片描述在这里插入图片描述

  • 反馈配置
    管理系统中的反馈信息,包括用户反馈、系统日志等,提供反馈信息的查看、处理和分析功能,以改进系统的稳定性和用户体验。
    在这里插入图片描述
4.客服管理
  • 坐席管理
    客服人员进行管理,包括坐席的添加、编辑、删除,以及坐席的状态管理、权限分配等,确保客服团队的高效运作。
    在这里插入图片描述

  • 聊天室
    提供在线客服的聊天室功能,包括用户的接入、消息的发送与接收、会话的记录与管理等,实现客户与客服之间的即时沟通。在这里插入图片描述

#pic_center =440x300

逗比一下O(∩_∩)O哈哈~

C系统主要功能

1. 问答组件
  • 配置问题问答
    在B系统上配置问题,然后项目立即生效显示,点击问题即显示问题答案

  • 输入框模糊搜索快速匹配
    使用elasticsearch全文检索快速检索匹配项,并且根据匹配优先级排序
    在这里插入图片描述

  • 未匹配智能回复

    当用户输入问题没有匹配到问题答案时,则根据基础语料库给出智能回复。
    在这里插入图片描述

  • 语料库里匹配默认回复
    当基础语料库都没有时则给出默认回复
    在这里插入图片描述

2. 主题色定制

根据需求,支持任何主题色配置

在这里插入图片描述

页面及更改主题色
在这里插入图片描述

3. 类微信时间显示控件及智能tip提示

非常人性化的时间显示,和微信时间显示一样。非常符合用户习惯
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4. 无障碍阅读

项目支持百度语音合成api,配置简单,功能丰富,对于不识字及视力不好的用户有极大地帮助和关怀

在这里插入图片描述

4. 丰富的输入框组件

支持智能提示、丰富的表情、及上传文件文件显示等

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 人工客服

支持强大的人工客服,点击转人工,即接入人工客服系统,但是需要在B系统配置坐席,没有客服则显示,
当前人工客服繁忙,请稍后再试。
在这里插入图片描述

在这里插入图片描述

当客服在线时,此时客服分配算法, 如果有多个客服在线,则优先匹配服务客户少的客服与用户对接。
后期还可以分配给指定客服人员

在这里插入图片描述

在这里插入图片描述

聊天记录实事保存

6. 聊天记录分表记录与查询

根据项目分表处理,将大大提高聊天记录可维护性,及优化查询效率,提高数据访问速度

在这里插入图片描述

在这里插入图片描述

四、项目总结

项目管理:使用pnpm + eslint + prettier + commitlint + lint-staged + ts 实现 monorepo为前端工程化基础建设

C系统: h5聊天界面采用 vue3 + ts + vue-router + pinia + vant3.5.2 + lodash-es + axios + wfl-utils + dayjs等框架及插件

B系统 后端管理系统采用vue2 + js + vue-router + vuex + and-design-vue + md5 + nprogress + vue-cropper等框架和插件

S系统 后端服务采用阿里出的node框架eggjs。 项目采用mysql + redis + jwt + sse + nodemailer等使用
egg-es、egg-alinode、ORM框架egg-sequelize jwt插件jsonwebtoken、电子邮箱插件nodemailer和nodemailer-smtp-transport、excel处理插件xlsx,文件系统处理插件fs-extra等等,功能强大、内容丰富。

本项目涵盖多个技术框架,是一套功能非常完善的系统。是前端及node后端学习的进阶项目,如果你想在vue+node方向全栈技术道路上更上一层,该项目将对你有非常大的帮助。

源码地址 提取码: 6uek

在这里插入图片描述
别忘了点赞评论加转发呀!!!@吴彦祖们!!!!
aa

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1578201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【拓扑的基】示例及详解

集合X的某拓扑的一个基是X的子集的一个族(其成员称为基元素),满足条件: 1. 2. 由基生成拓扑 由生成的拓扑(满足以上两个条件) 等价描述: 由所有可表示为的某些成员的井的那些集合组成 例1: 证明:由生成的族确实是拓扑…

零代码与低代码开发平台

1、什么是低代码开发平台?什么是零代码开发平台? 零代码开发平台: 指的是不需要写代码就能够快速开发出业务应用/系统的平台。我们在工作中使用的业务应用,主要提供数据收集、数据处理、数据流转和展示等功能。零代码开发平台能够…

2005-2023年各省国内生产总值指数分季度数据

2005-2023年各省国内生产总值指数分季度数据 1、时间:2005-2023年 2、来源:国家统计局、各省统计局 3、指标:地区生产总值指数(上年同期100)_累计值(%) 4、范围:31省 5、时间跨度:季度 6、缺失情况:无…

Qt | Q_PROPERTY属性和QVariant 类

一、属性基础 1、属性与数据成员相似,但是属性可使用 Qt 元对象系统的功能。他们的主要差别在于存取方式不相同,比如属性值通常使用读取函数(即函数名通常以 get 开始的函数)和设置函数(即函数名通常以 set 开始的函数)来存取其值,除此种方法外,Qt 还有其他方式存取属性值…

比亚迪,学历大于一切

比亚迪 今天逛学生聚集地(牛客网)的时候,看到一篇前几天的帖子。 标题为「比亚迪,学历大于一切」。 这位发帖的同学指出,他曾在比亚迪工作,当时入职时级别为 G3/F1,目测自己工作三年也不一定能升…

【频繁模式挖掘】FP-Tree算法(附Python实现)

一、实验内容简介 该实验主要使用频繁模式和关联规则进行数据挖掘,在已经使用过Apriori算法挖掘频繁模式后,这次使用FP-tree算法来编写和设计程序,依然使用不同规模的数据集来检验效果,最后分析和探讨实验结果,看其是…

HarmonyOS 应用开发-使用colorPicker实现背景跟随主题颜色转换

介绍 本示例介绍使用image库以及effectKit库中的colorPicker对目标图片进行取色,将获取的颜色作为背景渐变色,通过swiper组件对图片进行轮播, 效果图预览 使用说明 直接进入页面,对图片进行左右滑动,或者等待几秒&a…

2014最新AI智能创作系统ChatGPT网站源码+Midjourney绘画网站源码+搭建部署教程文档,支持最近火爆的Suno-v3-AI音乐生成大模型

一、文章前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持…

鼠标经过切换项,切换显示对应的内容(js)

一、功能描述 有多个切换项,鼠标移到每一项时对应切换下面对应的内容,一项对应一项内容,并且切换选中的样式。 二、实现效果 以这个例子为例。 三、实现思路 1.获取所有切换项。 2.获取所有切换项内容。 3.定义好“move”样式&#xff0…

链表之双向链表的实现

铁汁们大家好,我们上一篇博客学习了单链表,这节课让我们继续往深学习,学习一下双线链表,话不多说,我们开始吧! 目录 1.双向链表 2.顺序表和链表的优缺点 3.双向链表的实现 1.双向链表 1.我们要实现的双线…

IDEA中修改git的作者、邮箱名称

目录 一、查看当前git信息 1、查看git作者名称 如下图: 2、查看git邮箱信息 二、修改git信息 1、修改git作者名称 如下图: 2、修改git邮箱名称 一、查看当前git信息 1、查看git作者名称 在git控制台 或者 Terminal 输入 git config user.name …

蓝桥杯物联网竞赛_STM32L071_16_EEPROM

仍然是没有考过的知识点 朴素的讲就是板子中一块不会因为断电重启而导致数值初始化的一片地址 要注意的是有时候容易把板子什么写错导致板子什么地址写坏了导致程序无法烧录,这个时候记得一直按flash键烧录,烧录时会报错,点击确定&#xff0…

飞鸟写作可靠吗 #职场发展#经验分享#经验分享

飞鸟写作是一个非常便捷的论文写作工具,不仅可以帮助用户高效地完成论文写作,还可以提供查重降重的功能,帮助用户确保论文的原创性。那么,飞鸟写作到底可靠吗?答案是肯定的。 首先,飞鸟写作提供的查重降重功…

经典算法-分治法由散点得出凸包-python实现

import copy import random import matplotlib import mathdef distance_p2l(point, line_point1, line_point2):if (line_point2[0] - line_point1[0]) 0:return abs(point[0] - line_point2[0])# 计算直线的斜率m (line_point2[1] - line_point1[1]) / (line_point2[0] - l…

电脑出现mfc140u.dll丢失怎么办?教你7个方法解决此问题

mfc140u.dll 是一个动态链接库 (Dynamic Link Library, DLL) 文件,它是 Microsoft Windows 操作系统环境下用于支持应用程序运行的重要组成部分。具体来说,mfc140u.dll 是 Microsoft Foundation Class (MFC) 库 14.0 版本的 Unicode 版本动态链接库文件。…

分享一下项目中遇到的排序失效问题

今天把原来的一个查询接口的业务代码进行了优化&#xff0c;减少了十几行冗余的代码。 原来的代码 ChongwuServiceImpl.java /*** author heyunlin* version 1.0*/ Slf4j Service public class ChongwuServiceImpl implements ChongwuService {Overridepublic JsonResult<…

TensorFlow-gpu安装教程(Linux系统)

一、TensorFlow-gpu环境的安装 使用这个代码安装的前提是你的深度学习已经环境存在 &#xff08;例如&#xff1a;conda、pytorch、cuda、cudnn等环境&#xff09; TensorFlow版本对应GPU版本&#xff0c;自己选择版本&#xff0c;也可以忽略版本直接安装TensorFlow-gpu cond…

百度松果菁英班——机器学习实践五:明星图片爬取

飞桨AI Studio星河社区-人工智能学习与实训社区 &#x1f96a;图片爬取 import requests import os import urllib ​ class GetImage():def __init__(self,keyword大雁,paginator1):# self.url: 链接头self.url http://image.baidu.com/search/acjson?self.headers {User…

IO_DAY7

1:实现2个终端之间的互相聊天 要求:千万不要做出来2个终端之间的消息发送是读一写的&#xff0c;一定要能够做到&#xff0c;一个终端发送n条消息&#xff0c;另一个终端一条消息都不回复都是没有问题的 终端A&#xff1a; #include<myhead.h> int main(int argc, char…

测开面经(pytest测试案例,接口断言,多并发断言)

pytest对用户登录接口进行自动化脚本设计 a. 创建一个名为"test_login.py"的测试文件&#xff0c;编写以下测试脚本 import pytest import requests# 测试用例1&#xff1a;验证登录成功的情况 # 第一个测试用例验证登录成功的情况&#xff0c;发送有效的用户名和密…