master
AI Chat — 智能聊天助手
基于大语言模型的前后端分离智能对话系统。
技术架构
| 模块 | 技术 | 说明 |
|---|---|---|
| 前端 | Vite + Vanilla JS + marked | 现代化聊天界面,支持 Markdown 解析与高亮 |
| 后端 | Spring Boot 3.2 + JDK 17 | RESTful API + SSE 流式响应 |
| 数据库 | MySQL + MyBatis-Plus | 核心数据持久化与强大的 ORM 框架 |
| 权限认证 | Sa-Token | 轻量级 Java 权限认证框架,实现多用户隔离 |
| AI 接口 | OpenAI 兼容格式 | 支持 OpenAI / DeepSeek / 通义千问 |
| 版本控制 | Git | 代码托管与版本控制 |
| 自动化部署 | Jenkins + Docker | 自动化 CI/CD 流水线与容器化运行 |
项目结构
chat/
├── chat-server/ # 后端 Spring Boot 项目
│ ├── pom.xml
│ └── src/main/java/com/chat/
│ ├── ChatApplication.java
│ ├── config/ # 配置类(CORS、AI 模型)
│ ├── controller/ # API 控制器
│ ├── service/ # 业务服务
│ ├── model/ # 实体和 DTO
│ └── repository/ # 数据访问
│
└── chat-web/ # 前端 Vite 项目
├── index.html
└── src/
├── components/ # UI 组件
├── services/ # API 调用
└── utils/ # 工具函数
快速开始
1. 配置 AI 模型
编辑 chat-server/src/main/resources/application.yml,修改 AI 配置:
ai:
base-url: https://api.deepseek.com # API 地址
api-key: your-api-key-here # 你的 API Key
model: deepseek-chat # 模型名称
支持的模型:
- OpenAI:
base-url=https://api.openai.com,model=gpt-4o - DeepSeek:
base-url=https://api.deepseek.com,model=deepseek-chat - 通义千问:
base-url=https://dashscope.aliyuncs.com/compatible-mode,model=qwen-plus
2. 启动后端
cd chat-server
mvn spring-boot:run
后端默认运行在 http://localhost:8080
3. 启动前端
cd chat-web
npm install
npm run dev
前端默认运行在 http://localhost:5173
4. 开始使用
打开浏览器访问 http://localhost:5173,即可开始与 AI 对话。
功能特性
- ✨ 流式输出 — SSE 实时推送,打字机效果
- 💬 会话管理 — 创建、切换、重命名、删除对话
- 📝 Markdown 渲染 — 支持代码高亮、表格、列表等
- 📋 一键复制 — 代码块一键复制到剪贴板
- 🌙 深色主题 — 精美的玻璃态暗色界面
- 📱 响应式布局 — 适配桌面和移动端
- 💾 持久化存储 — MySQL 数据库提供稳定可靠的聊天记录存储
- 🔐 权限隔离 — 采用 Sa-Token 实现安全的用户会话级数据隔离
代码提交指南
本项目使用 Git 进行版本控制,请遵循以下流程提交代码:
1. 更新本地代码
在开发新功能前,建议先拉取最新代码:
git pull origin main
2. 暂存改动
将修改的文件添加到暂存区:
git add .
3. 提交代码
请使用符合规范的 commit message 进行提交:
git commit -m "feat: 增加新功能"
常用提交类型说明:
feat: 新增功能fix: 修复缺陷docs: 文档更新style: 代码格式(如空格、缩进等,不影响功能)refactor: 代码重构(不包括 bug 修复或功能新增)perf: 性能优化test: 添加或更改测试用例chore: 构建过程或辅助工具的变动
4. 推送至远程仓库
将本地提交推送到远程:
git push origin main
Description
Languages
JavaScript
48.3%
Java
26.1%
CSS
20.7%
PowerShell
3.4%
HTML
1.1%
Other
0.4%