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
S
Description
No description provided
Readme 647 KiB
Languages
JavaScript 48.3%
Java 26.1%
CSS 20.7%
PowerShell 3.4%
HTML 1.1%
Other 0.4%