# 项目名称:高考招生智能咨询支持系统
代码开源于
https://gitee.com/lcm_ccy/call_for_deepseek_system# 注意所有resource图片均要去网上自己找,据图需要图放在哪里,看resource文件
## 依赖的开源库
本项目依赖了以下开源库,感谢各位开源大佬的慷慨开源
- openai-cpp <https://github.com/olrea/openai-cpp> //调用API库
- maddy <https://github.com/progsource/maddy> //markdownToHtml
- Lucas98Fernando <https://github.com/Lucas98Fernando/login-screen-html-css-js> //登录页面的设计提供
- chatgpt-web <https://github.com/Chanzhaoyu/chatgpt-web.git> //对话界面设计
- Admin_template <https://gitee.com/yinqi/Light-Year-Admin-Using-Iframe-v4> //管理后台模板
## 简介
本项目是一个使用 C++ 和 Qt框架 开发的桌面聊天应用程序。它集成了多种大语言模型API(如OpenAI、DeepSeek等),允许用户与AI进行交互,特别针对高考招生咨询场景进行了优化。此外,项目还包含用户注册、登录、聊天记录管理以及Markdown格式支持,并提供管理员后台用于API密钥和用户管理。
## 使用说明
1. 启动应用程序后,您将看到初始界面。
2. 如果您是新用户,请点击"注册"按钮并填写信息以创建账户。
3. 如果已有账户,请点击"用户"按钮并使用您的凭据登录。
4. 登录后,您可以开始与 AI 进行聊天。
5. 聊天内容支持 Markdown 语法。应用程序后,您将看到初始选择界面,提供管理员和普通用户两种模式。
2. 普通用户模式:
- 如果您是新用户,请点击"注册"按钮并填写信息以创建账户。
- 如果已有账户,请使用您的凭据登录。
- 登录后,您可以开始与 AI 进行聊天。
- 聊天内容支持 Markdown 语法。
3. 管理员模式:
- 点击"管理员"按钮进入管理后台。
- 管理后台包含仪表盘、API管理、模型管理、提示词管理和用户管理等功能。
- 可以添加/编辑/删除 API 密钥、管理可用模型、配置提示词模板、管理用户账户等。。
## 主要功能
- 用户认证:提供用户注册和登录界面,确保用户数据的安全。
- AI 聊天:集成 Deepseek API,实现与智能 AI 的实时聊天功能。
- Markdown 支持:聊天内容支持 Markdown 格式,可以显示格式化的文本、代码块等。
- 聊天记录:保存和管理用户的聊天记录。
- 界面:使用 Qt 构建图形用户界面,提供友好的用户体验。
- 管理后台:基于 Light Year Admin 模板的管理员界面,用于管理用户、API、模型和提示词。
- 多API密钥支持:支持添加并管理多个不同服务提供商(如OpenAI、DeepSeek等)的API密钥。
## 技术栈
- 编程语言:C++ (C++17 标准)
- 图形用户界面:Qt 5 (Widgets, Core, Gui)
- 网络请求:libcurl
- 加密:OpenSSL (用于 RSA 加密和哈希运算)
- JSON 处理:Nlohmann Json
- Markdown 解析:maddy (一个 Markdown 解析库)
- 构建系统:CMake
- 管理后台模板:Light Year Admin Using Iframe v4
## 项目结构
```text
.
├── CMakeLists.txt # CMake 构建配置文件
├── CMakePresets.json # CMake 预设文件
├── README.md # 项目说明文件
├── resources.qrc # Qt 资源文件
├── build/ # 构建输出目录
├── include/ # 头文件目录
│ ├── AdminGUI.hpp # 管理员界面类
│ ├── Call_for_deepseek.hpp # 调用 DeepSeek API 相关
│ ├── initWindow.hpp # 初始窗口类
│ ├── LoginWindow.hpp # 登录窗口类
│ ├── RegisterWindow.hpp # 注册窗口类
│ ├── UserChatWindow.hpp # 用户聊天窗口类
│ ├── UsersRegister.hpp # 用户注册逻辑类
│ ├── maddy/ # maddy Markdown 解析库
│ ├── openai/ # OpenAI C++ 库
│ │ └── openai.hpp
│ └── tools/ # 工具类目录
│ ├── Hash.hpp # 哈希算法工具
│ ├── Logger.hpp # 日志工具
│ ├── markdownTohtml.hpp # maddy 封装工具
│ └── ReadAndWeite.hpp # 文件读写工具
├── openai/ # OpenAI C++ 库源码 (拷贝)
│ └── openai-cpp/
├── opensource/ # 可能包含一些开源组件或参考项目
│ ├── ChatGPT-Web/ # ChatGPT Web 版本参考
│ ├── Light-Year-Admin-Using-Iframe-v4/ # 管理后台模板
│ ├── login-screen-html-css-js/ # 登录页面模板
│ └── maddy/ # maddy Markdown 解析库源码 (拷贝)
├── resource/ # 资源文件目录 (图片、配置文件等)
│ ├── api_key.json # 主API密钥文件
│ ├── api_key1.json # 附加API密钥文件1
│ ├── api_key2.json # 附加API密钥文件2
│ ├── History/ # 存放聊天记录
│ └── user/ # 用户数据目录
├── src/ # 源文件目录
│ ├── AdminGUI.cpp # 管理员界面实现
│ ├── initWindow.cpp # 初始窗口实现
│ ├── LoginWindow.cpp # 登录窗口实现
│ ├── main.cpp # 程序入口
│ ├── MarkdownConverter.cpp # Markdown 转换实现
│ ├── markdownTohtml.cpp # Markdown到HTML转换实现
│ ├── RegisterWindow.cpp # 注册窗口实现
│ ├── RSA.cpp # RSA 加密实现
│ ├── UserChatWindow.cpp # 用户聊天窗口实现
│ └── UserRegister.cpp # 用户注册逻辑实现
└── ...
```
## 构建与运行
### 依赖项
- Ubuntu 22.04
- CMake (== 3.28.0)
- C++ 编译器 (支持 C++17)
- Qt 5 (Widgets, Core, Gui)
- libcurl
- OpenSSL
### 构建步骤
1. 感谢我
2. 创建构建目录并进入
```bash
mkdir build
cd build
```
3. 运行 CMake 配置
```bash
cmake ..
```
4. 编译项目
```bash
make
```
5. 运行程序
可执行文件通常位于 build 目录下。
```bash
./cpp
```
## 使用说明
1. 启动应用程序后,您将看到初始界面。
2. 如果您是新用户,请点击“注册”按钮并填写信息以创建账户。
3. 如果已有账户,请点击“用户”按钮并使用您的凭据登录。
4. 登录后,您可以开始与 AI 进行聊天。
5. 聊天内容支持 Markdown 语法。
## 注意事项
- API 密钥:确保在管理后台中正确配置了您的 API 密钥,系统支持多个API密钥文件(自动命名为 api_key1.jsonapi_key2.json 等)。
- 网络连接:程序需要稳定的网络连接才能与 API 服务通信。
- 依赖库安装:请确保所有必要的依赖库已正确安装在您的系统上。
```bash
sudo apt-get update
sudo apt-get install build-essential cmake qtcreator qt5-default libcurl4-openssl-dev libssl-dev
```
## TODO
- RSA算法实现
- AI记忆功能实现
- AI上下文处理
- 实现用户权限分级管理
- 优化图形化界面
- 错误处理(try catch)
- 提供更多预设提示词模板
- 优化界面响应性能
## 贡献
欢迎对此项目进行贡献!如果您有任何建议或发现任何问题,请随时创建 Issue 或提交 Pull Request。
## 许可证
本项目采用 GNU General Public License v3.0 进行许可。
您应该已经随本项目收到了一份 GNU General Public License v3.0 的副本。如果没有,请参阅 <https://www.gnu.org/licenses/gpl-3.0.html>。
---
本文档最后更新于 2025年6月6日