这个项目是《网络协议设计与分析》课程的结课作业,旨在设计和实现一个简单的客户端-服务器系统,构建了一个基于GPT模型的实时对话应用,使用HTTP协议实现Restful API,通过WebSocket协议进行流式传输通信。
项目开源在GitHub,项目成员通过Git进行合作,仓库地址:https://github.com/pamaforce/pama-gpt
测试账号:test
密码:test
目前项目部署在云服务器上,网页端体验地址:https://pama.vip/gpt
移动端使用React Native,Android安装包地址:https://github.com/pamaforce/pama-gpt/releases/download/1.0.0/app-release.apk
项目的主要结构和模块包括前端、后端、数据库等。
/
|-- web/
| |-- public/
| | |-- favicon.ico
| | |-- index.html
| |-- src/
| | |-- api/
| | |-- assets/
| | |-- components/
| | |-- router/
| | |-- utils/
| | |-- views/
| | |-- App.vue
| | |-- main.js
| |-- package.json
|-- README.md
|-- api.py
|-- app.py
|-- config.py
|-- pama_gpt.sql
使用Python版本为3.9.10
然后,安装依赖项,在项目根目录执行:
pip install -r requirements.txt
所有依赖项都将被正确安装。
确保系统中安装了 MySQL 数据库并启动了 MySQL 服务。使用数据库管理工具连接到数据库服务器。
- 打开数据库管理工具,连接到数据库服务器。
- 执行
pama_gpt.sql
文件,初始化数据库结构。 - 在
users
表中插入登录 GPT 会话系统所需的用户名和密码(注意数据库中储存的是加密后的用户密码,加密逻辑在前端)。 - 在
config.py
中配置数据库相关信息。
在项目中,确保本地已搭建了梯子服务,并将其运行在本地的 127.0.0.1:10810
端口。在浏览器中设置代理服务器的 IP 地址为 127.0.0.1
,端口为 10810
。
在项目根目录下运行后端服务:
python app.py
确保后端服务正常运行并监听指定端口。
所用Node.js
的版本为14.20.1
。
在项目的 web
目录下执行以下命令,根据 package.json
文件安装所有前端依赖项:
npm install
执行以下命令,启动 Vue 服务:
npm run serve
Vue 服务将在默认端口(通常是 https://127.0.0.1:8080
)上启动,用户可以在浏览器中访问该地址查看前端页面。
通过以上步骤,完成了后端和前端环境的配置,确保系统在正确的数据库配置下正常运行。
前端:
- Vue - 前端框架
- Vue Router - 处理前端路由与页面跳转
- Axios - 提供HTTP请求客户端,调用后端接口
- webpack - 项目构建工具,打包优化前端资源
- SCSS - CSS预处理器,简化样式的开发
- Swiper - 实现触屏滑块组件
- React Native - 将网页打包成App
后端:
- Python 3.x
- SocketIO — WebSocket协议,全双工通信的协议
- HTTP协议 - 用于实现Restful API
- 流式传输 - 以流的形式传输数据
- Flask - Python web框架
- SQLAlchemy - 对数据库进行对象映射
- MySQL - 关系型数据库
- Flask-JWT - 生成和验证JWT token,实现用户会话
- pama
- buta