|
|
|
|
@ -1,120 +0,0 @@
|
|
|
|
|
编程能力个性化评价系统
|
|
|
|
|
—— 系统简介与环境配置指南
|
|
|
|
|
|
|
|
|
|
一、系统简介
|
|
|
|
|
编程能力个性化评价系统是一款融合 人工智能预测 与 多维度数据分析 的智能学习辅助平台,专为 ACM-ICPC 等算法竞赛选手设计。系统基于用户在在线判题(OJ)平台的历史提交数据,通过深度挖掘行为模式、知识点掌握情况和解题趋势,提供科学、动态、个性化的编程能力评估与发展建议。
|
|
|
|
|
|
|
|
|
|
核心价值:
|
|
|
|
|
精准画像:构建用户编程能力的六维雷达图,量化评估真实水平
|
|
|
|
|
智能预测:采用 PyTorch + LSTM 神经网络,预测未来知识点掌握趋势
|
|
|
|
|
等级对标:建立符合 ACM 竞赛体系的 6 级能力等级(新手 → 世界决赛级)
|
|
|
|
|
因材施教:生成 12 周个性化学习计划、知识图谱路线与资源推荐
|
|
|
|
|
极速响应:通过数据库索引 + 内存缓存,实现 <0.1 秒重复访问体验
|
|
|
|
|
|
|
|
|
|
适用人群:
|
|
|
|
|
高校 ACM/ICPC 参赛队员
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
技术实现:
|
|
|
|
|
后端架构 Flask 微服务 + 分层服务设计(AuthService / StatsService / AssessmentService 等)
|
|
|
|
|
AI 模块 PyTorch 构建 2 层 LSTM 网络,输入 10 维时序特征,输出掌握度预测
|
|
|
|
|
数据存储 SQLite 轻量级数据库 + 8 个复合索引优化查询性能
|
|
|
|
|
前端交互 Bootstrap 5 响应式布局 + ECharts 5 可视化图表(词云、雷达图、趋势线等)
|
|
|
|
|
性能保障 CTE 排名算法(提速 90%+)+ TTL 内存缓存(命中率 >95%)
|
|
|
|
|
|
|
|
|
|
本系统不仅是一个评估工具,更是一个 AI 驱动的成长伙伴,帮助用户从“盲目刷题”走向“精准提升”。
|
|
|
|
|
|
|
|
|
|
二、环境配置指南
|
|
|
|
|
系统要求:
|
|
|
|
|
操作系统 Windows / macOS / Linux(推荐 Linux 或 macOS 用于训练)
|
|
|
|
|
Python 版本 3.8 或更高(建议 3.9–3.11)
|
|
|
|
|
浏览器 Chrome / Edge / Firefox(需启用 JavaScript)
|
|
|
|
|
磁盘空间 ≥ 200 MB(含数据库与模型)
|
|
|
|
|
内存 ≥ 2 GB(训练 LSTM 时建议 ≥ 4 GB)
|
|
|
|
|
|
|
|
|
|
安装步骤:
|
|
|
|
|
1️⃣ 克隆或下载项目
|
|
|
|
|
bash
|
|
|
|
|
git clone https://bdgit.educoder.net/pc729iqo3/PPAES.git
|
|
|
|
|
cd PPAES
|
|
|
|
|
若无 Git,可直接下载 ZIP 并解压到本地目录。
|
|
|
|
|
|
|
|
|
|
2️⃣ 创建虚拟环境(推荐)
|
|
|
|
|
bash
|
|
|
|
|
创建虚拟环境
|
|
|
|
|
python -m venv venv
|
|
|
|
|
激活虚拟环境
|
|
|
|
|
Windows:
|
|
|
|
|
venv\Scripts\activate
|
|
|
|
|
macOS/Linux:
|
|
|
|
|
source venv/bin/activate
|
|
|
|
|
|
|
|
|
|
3️⃣ 安装依赖
|
|
|
|
|
方案 A:完整功能(含 AI 预测)
|
|
|
|
|
bash
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
包含 Flask、PyTorch、Pandas、NumPy、ECharts 等全部依赖。
|
|
|
|
|
方案 B:基础功能(不含 LSTM)
|
|
|
|
|
bash
|
|
|
|
|
pip install Flask==2.3.3 flask-login==0.6.2 pandas==2.2.3 numpy==1.26.4
|
|
|
|
|
适用于仅需统计与评估功能,无需 AI 预测的场景。
|
|
|
|
|
注意:PyTorch 安装可能较慢,请确保网络通畅。如需 GPU 支持,请参考 [PyTorch 官网](https://pytorch.org/get-started/locally/) 安装对应版本。
|
|
|
|
|
|
|
|
|
|
4️⃣ 初始化数据库
|
|
|
|
|
bash
|
|
|
|
|
创建表结构
|
|
|
|
|
python backend/scripts/init_db.py
|
|
|
|
|
导入示例题目与提交记录(来自 data/ 目录)
|
|
|
|
|
python backend/scripts/ingest_json.py
|
|
|
|
|
(推荐)优化数据库性能(创建索引 + VACUUM)
|
|
|
|
|
python optimize_database.py
|
|
|
|
|
成功后将在 backend/instance/app.sqlite 生成约 158 MB 的数据库文件。
|
|
|
|
|
|
|
|
|
|
5️⃣ (可选)训练 LSTM 预测模型
|
|
|
|
|
若需启用 AI 趋势预测 功能:
|
|
|
|
|
bash
|
|
|
|
|
基础训练(约 2-5 分钟,CPU)
|
|
|
|
|
python models/train_lstm_model.py
|
|
|
|
|
或自定义参数训练(例如 100 轮 + 绘图)
|
|
|
|
|
python models/train_lstm_model.py --epochs 100 --batch_size 64 --plot
|
|
|
|
|
训练完成后,模型将保存为 models/lstm_knowledge_predictor.pth。
|
|
|
|
|
提示:首次使用可跳过此步,系统会检测模型是否存在并提示。
|
|
|
|
|
|
|
|
|
|
6️⃣ 启动系统
|
|
|
|
|
bash
|
|
|
|
|
推荐方式:使用启动脚本(自动打开浏览器)
|
|
|
|
|
python start_system.py
|
|
|
|
|
或直接运行 Flask
|
|
|
|
|
python app.py
|
|
|
|
|
成功启动后,终端将显示:
|
|
|
|
|
✅ 系统已启动!正在打开浏览器...
|
|
|
|
|
🌐 访问地址: http://localhost:5000
|
|
|
|
|
👤 测试账号: 52(密码: 123456)
|
|
|
|
|
🔐 默认所有用户密码均为 123456(可在 config.py 中修改)。
|
|
|
|
|
|
|
|
|
|
🧪 快速验证
|
|
|
|
|
|
|
|
|
|
操作 验证方式
|
|
|
|
|
------ --------
|
|
|
|
|
Web 服务 访问 http://localhost:5000,应显示登录页
|
|
|
|
|
数据库 登录后进入仪表板,查看是否有统计数据
|
|
|
|
|
LSTM 模型 进入「学习建议」页面,查看是否有「AI 掌握度预测」模块
|
|
|
|
|
API 接口 访问 http://localhost:5000/api/grades/52,应返回 JSON 数据
|
|
|
|
|
|
|
|
|
|
🛠 配置说明(config.py)
|
|
|
|
|
|
|
|
|
|
python
|
|
|
|
|
class Config:
|
|
|
|
|
SECRET_KEY = 'your-secret-key' # 生产环境务必修改!
|
|
|
|
|
DB_PATH = 'backend/instance/app.sqlite' # 数据库路径
|
|
|
|
|
DEBUG = True # 开发模式
|
|
|
|
|
HOST = '0.0.0.0' # 允许外部访问
|
|
|
|
|
PORT = 5000 # 端口号
|
|
|
|
|
DEFAULT_PASSWORD = '123456' # 默认用户密码
|
|
|
|
|
📌 生产部署建议:关闭 DEBUG,设置强 SECRET_KEY,使用 Nginx + Gunicorn。
|
|
|
|
|
|
|
|
|
|
🚀 下一步
|
|
|
|
|
登录系统(用户名:52,密码:123456)
|
|
|
|
|
探索四大核心模块:仪表板 → 数据统计 → 能力评估 → 学习建议
|
|
|
|
|
查看 docs/ 目录获取详细开发与使用文档
|
|
|
|
|
|