AI 智能出题系统 (AI Quiz Master)
一个"带文档进,带题目出"的 SaaS 工具,用户上传 PDF/Word 文档,系统利用大模型自动提取知识点并生成结构化试题。
⚠️ 开发项目 : 本项目为开发中的演示项目,包含示例配置和默认凭据。部署到生产环境前,请务必修改所有默认密码和密钥。
重要 : 本项目包含开发环境的默认配置,部署前必须修改:
默认管理员账号 (admin/admin123) - 仅用于开发测试
数据库凭据 (postgres/postgres) - 请使用强密码
JWT 密钥 - 请使用随机生成的强密钥
服务间认证密钥 - 请使用随机生成的强密钥
加密密钥 - 请使用 32+ 字符的随机密钥
AI 智能出题系统是一个基于大语言模型的智能试题生成平台,支持:
出题者 :上传文档 → AI 解析 → 生成题目 → 发布试卷
答题者 :分享链接 → 在线答题 → 查看成绩 → 错题解析
BYOK 模式 :用户自带 API Key,费用由自己的账号承担
功能
状态
说明
文档上传
✅
支持 PDF/Word/TXT,最大 10MB
智能解析
✅
自动提取内容为 Markdown
内容预览
✅
编辑清洗后的内容
AI 生成
✅
调用 DeepSeek/OpenAI 生成题目
题目查看
✅
查看所有题目+答案+解析
试卷发布
✅
生成分享链接供考生答题
用户注册
✅
邮箱/用户名注册
API Key 配置
✅
配置自己的 DeepSeek/OpenAI Key
功能
状态
说明
匿名访问
✅
通过分享链接无需登录
在线答题
✅
一道题一道题答题
答题导航
✅
答题卡、跳转
倒计时
✅
考试倒计时、时间警告
成绩展示
✅
圆形进度、正确率
答案解析
✅
提交后查看错题解析
┌─────────────────────────────────────────────────────────────────┐
│ 前端层 (Vue 3) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Home │ │ Upload │ │ Preview │ │ Generate │ │
│ │ Tasks │ │ Settings │ │ Login │ │ Register │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ TakeExam (匿名) │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 业务后端 (Spring Boot 3 + Java 17) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Auth │ │ Task │ │ Exam │ │
│ │ Controller │ │ Controller │ │ Controller │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ User │ │ Exam │ │ Python AI │ │
│ │ Service │ │ Publish │ │ Service │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────┼─────────────────┐
▼ ▼ ▼
┌───────────────────┐ ┌──────────────┐ ┌───────────────────┐
│ PostgreSQL 15+ │ │ Python AI │ │ DeepSeek/OpenAI │
│ - 用户配置 │ │ Service │ │ API 外部服务 │
│ - 任务记录 │ │ - 文档解析 │ │ │
│ - 题目存储 │ │ - LLM 调用 │ │ │
│ - 试卷数据 │ │ - Prompt │ │ │
└───────────────────┘ └──────────────┘ └───────────────────┘
ai_exam_system/
├── backend/
│ ├── java-service/ # Spring Boot 业务后端 (端口: 8080)
│ │ ├── src/main/java/com/aiexam/
│ │ │ ├── controller/ # REST 控制器
│ │ │ ├── service/ # 业务逻辑层
│ │ │ ├── repository/ # 数据访问层
│ │ │ ├── entity/ # JPA 实体
│ │ │ ├── dto/ # 请求/响应对象
│ │ │ └── util/ # 工具类
│ │ └── src/main/resources/
│ │ ├── application.yml # 配置文件
│ │ └── static/ # 静态资源
│ └── python-service/ # FastAPI AI 服务 (端口: 8000)
│ ├── app/
│ │ ├── main.py # FastAPI 应用入口
│ │ ├── api/ # API 路由
│ │ ├── services/ # 业务逻辑
│ │ └── models/ # 数据模型
│ └── .env # 环境变量
├── frontend/ # Vue 3 前端 (端口: 5175)
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ ├── components/ # 公共组件
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── api/ # API 请求模块
│ │ └── router/ # 路由配置
│ └── package.json
├── database/ # 数据库脚本
│ └── init.sql # 初始化 SQL
├── docs/ # 项目文档
│ ├── architecture.md # 架构设计
│ ├── api.md # API 文档
│ └── development.md # 开发指南
└── docker-compose.yml # Docker 编排
组件
版本要求
Java
17+
Python
3.10+
Node.js
18+
PostgreSQL
15+
# 安装 PostgreSQL
sudo apt-get install postgresql postgresql-contrib
# 启动服务
sudo service postgresql start
# 创建数据库
sudo -u postgres psql -c " CREATE DATABASE ai_exam;"
# 初始化数据库(创建表结构)
sudo -u postgres psql -d ai_exam -f database/init.sql
项目使用环境变量存储敏感配置,必须先配置才能启动 。
cd backend/java-service
# 复制配置模板
cp .env.development.template .env
# 生成随机密钥(Linux/Mac)
JWT_SECRET=$( openssl rand -base64 64)
PYTHON_SERVICE_API_KEY=$( openssl rand -hex 32)
ENCRYPTION_KEY=$( openssl rand -hex 32)
# 编辑 .env 文件,填入上述生成的值和你的 DeepSeek API Key
# DEEPSEEK_API_KEY 获取地址:https://platform.deepseek.com/api_keys
cd backend/python-service
# 复制配置模板
cp .env.development.template .env
# 编辑 .env 文件,填入你的 API Key
# DEEPSEEK_API_KEY 获取地址:https://platform.deepseek.com/api_keys
cd backend/python-service
# 安装依赖
pip3 install -r requirements.txt
# 启动服务
PYTHONPATH=$( pwd) python3 -m uvicorn app.main:app --host 0.0.0.0 --port 8000
cd backend/java-service
# 确保已配置 .env 文件(见步骤 2)
# 启动服务
mvn spring-boot:run
# 访问 API 文档: http://localhost:8080/api/swagger-ui.html
cd frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 访问: http://localhost:5173
用户名
密码
说明
admin
admin123
默认管理员
MIT License
版本
日期
说明
v0.3.0
2026-01-30
用户认证、试卷发布、API Key 配置
v0.2.0
2026-01-30
答题界面完成
v0.1.0
2026-01-29
MVP 版本完成