目录
1.项目介绍
2.设计思路
3.Pro文件配置
4.项目演示
5.项目开源
项目介绍
智能即时聊天室系统(AIChatProject)是一个高效、灵活的即时通讯解决方案。它融合了百度的开源大型语言模型——文心一言,通过API接口实现深度集成。系统专为聊天和文件传输等核心功能设计,以便快速搭建定制化的即时通讯应用。采用客户端/服务器(C/S)架构,确保了应用的稳定性和扩展性。数据存储依托于MySQL数据库,保障了数据的安全性和高效管理。客户端之间的信息交换通过JSON格式实现,简洁而高效。此外,系统利用TCP协议进行数据传输,确保了通信的可靠性和稳定性
设计思路
智能即时聊天室项目,主要参考市场上主流的通信软件开发,例如QQ,微信等。与市场主流软件不同的是,该项目支持AI聊天,支持大文件的传输。具体开发思路如下:
1.通过QTcpSocket使用TCP协议对客户端与服务端之间的数据进行传输,并且使用JSON格式对传递的数据进行格式化操作。服务端返回的JSON格式自带错误码,方便客户端对响应的请求反馈给用户
2.针对AIChatProject项目,作者采用QThreadPool模块,在客户端与服务端都定义了多线程模块。针对服务端共有两个线程,一个是数据库链接线程,一个是处理服务端数据线程。针对客户端定义了两个线程,分别用于处理与服务端数据传输以及对智能聊天数据的传输
3.通过QNetWork模块,对其鉴权元素进行处理,对特定的地址进行POST请求,获取Token。后续使用Token对发出的询问进行加密,返回智能机器人的响应信息
4.针对列表模块使用了模型/视图架构,针对好友,群聊以及智能聊天机器人分别对其映射,将数据与视图隔离,规范了代码,降低耦合
5.针对用户作输入操作时,该项目采用正则表达式检测用户异常输出,防止恶意的SQL注入攻击及不规范的输入,减少服务端的恶意请求,降低成本
6.针对用户登录时,项目使用MD5加密算法对其密码等数据进行加密,减少用户被恶意攻击,数据泄漏的几率
Pro文件配置
为了实现智能即时聊天室系统,我们需要Qt中自带的三个模块,分别为sql模块,network模块
和websockets模块:
1.sql模块:该模块提供了对数据库的访问支持。它允许开发者通过Qt的API与各种数据库进行交互,包括但不限于MySQL、PostgreSQL、SQLite等
2.network模块:该模块提供了对网络通信的支持,包括TCP/IP协议栈的实现。主要类有QTcpSocket
和QUdpSocket
,分别用于TCP和UDP通信
3.websockets模块:该模块是一种在单个TCP连接上进行全双工通信的协议,它允许服务器主动向客户端发送消息。提供了QWebSocket
和QWebSocketServer
类,分别用于客户端和服务器端的WebSocket通信
所以开发前Pro文件中应该添加以下字段
QT += sql network websockets
项目演示
智能即时聊天室项目演示视频
项目开源
AIChatProjecthttps://github.com/3020Xmy/AIChatProject