项目概述
自适应学习系统是一个知识图谱驱动的个性化自适应学习系统,采用前后端分离架构。后端使用Python + Django + Django REST Framework构建,
数据库采用PostgreSQL存储关系数据,Neo4j存储知识图谱数据。系统通过LangChain框架集成大语言模型(通义千问/DeepSeek),
实现智能化的学习者画像分析和学习路径推荐。
系统架构
技术栈
- 后端框架: Python 3.12 + Django 5.2 + Django REST Framework
- 数据库: PostgreSQL(关系数据)+ Neo4j(知识图谱,完全存储)
- 认证: JWT (djangorestframework-simplejwt)
- AI框架: LangChain (支持通义千问/DeepSeek)
- API文档: drf-spectacular (OpenAPI 3.0)
模块划分
| 模块 |
路径 |
功能描述 |
| 用户模块 |
users/ |
用户认证、权限管理、学习偏好 |
| 课程模块 |
courses/ |
课程、班级、选课管理 |
| 知识图谱模块 |
knowledge/ |
知识点、关系、资源、掌握度 |
| 测评模块 |
assessments/ |
题库、测评、能力评分 |
| 学习路径模块 |
learning/ |
学习路径、节点、进度 |
| 考试模块 |
exams/ |
考试、提交、反馈报告 |
| AI服务模块 |
ai_services/ |
大模型调用、智能分析 |
| 公共模块 |
common/ |
工具函数、权限类、响应格式 |
API端点
认证模块 (/api/auth/*)
| 方法 |
路径 |
描述 |
| POST |
/api/auth/register |
用户注册 |
| POST |
/api/auth/login |
用户登录 |
| GET |
/api/auth/userinfo |
获取用户信息 |
| PUT |
/api/auth/userinfo/update |
更新用户信息 |
| POST |
/api/auth/token/refresh |
刷新令牌 |
学生模块 (/api/student/*)
| 方法 |
路径 |
描述 |
| GET |
/api/student/assessments/status |
获取测评状态 |
| GET |
/api/student/assessments/initial/knowledge |
获取知识测评题目 |
| POST |
/api/student/assessments/initial/knowledge/submit |
提交知识测评 |
| GET |
/api/student/assessments/initial/ability |
获取能力测评题目 |
| POST |
/api/student/assessments/initial/ability/submit |
提交能力测评 |
| GET |
/api/student/assessments/initial/habit |
获取习惯问卷 |
| POST |
/api/student/assessments/initial/habit/submit |
提交习惯问卷 |
| POST |
/api/student/assessments/profile/generate |
生成学习画像 |
| GET |
/api/student/profile |
获取学习画像 |
| GET |
/api/student/learning-path |
获取学习路径 |
| GET |
/api/student/knowledge-map |
获取知识图谱 |
| GET |
/api/student/exams |
获取考试列表 |
| POST |
/api/student/exams/{id}/submit |
提交考试 |
| POST |
/api/student/classes/join |
加入班级 |
| DELETE |
/api/student/classes/{id}/leave |
退出班级 |
教师模块 (/api/teacher/*)
| 方法 |
路径 |
描述 |
| GET |
/api/teacher/courses/my |
获取我的课程 |
| POST |
/api/teacher/courses/create |
创建课程 |
| GET |
/api/teacher/classes/my |
获取我的班级 |
| POST |
/api/teacher/classes/create |
创建班级 |
| POST |
/api/teacher/invitations/generate |
生成邀请码 |
| GET |
/api/teacher/classes/{id}/students |
获取班级学生 |
| GET |
/api/teacher/questions |
获取题库 |
| POST |
/api/teacher/questions/create |
创建题目 |
| GET |
/api/teacher/exams |
获取考试列表 |
| POST |
/api/teacher/exams/create |
创建考试 |
管理员模块 (/api/admin/*)
| 方法 |
路径 |
描述 |
| GET |
/api/admin/activation-codes |
获取激活码列表 |
| POST |
/api/admin/activation-codes/generate |
生成激活码 |
| GET |
/api/admin/logs |
获取操作日志 |
| GET |
/api/admin/student-profiles |
获取学生画像列表 |
快速开始
安装依赖
uv sync
配置环境变量
# 复制环境变量模板
cp .env.example .env
# 编辑.env文件,配置数据库和AI服务
# DB_NAME=wisdom_edu
# DB_USER=wisdom
# LLM_MODEL=qwen-plus
# DASHSCOPE_API_KEY=your_api_key
数据库迁移
uv run python manage.py migrate
创建测试数据
uv run python tools.py create_test_data
运行开发服务器
uv run python manage.py runserver
测试账号
| 角色 |
用户名 |
密码 |
| 管理员 |
admin |
Admin123456 |
| 教师 |
teacher1 |
Teacher123456 |
| 学生 |
student1 |
Student123456 |
⚠️ 注意: 以上为测试账号,仅用于开发测试环境,生产环境请务必修改密码!
工具脚本
项目根目录的 tools.py 和 test.py 提供了多个实用命令:
tools.py 管理工具
# 直接运行进入菜单模式
uv run python tools.py
# 命令行模式
uv run python tools.py clear_db # 清除数据库
uv run python tools.py create_test_data # 创建测试数据
uv run python tools.py import_knowledge_map 大数据图谱.xlsx # 导入知识图谱
uv run python tools.py export_knowledge_map output.json # 导出知识图谱
uv run python tools.py neo4j_status # 检查Neo4j状态
uv run python tools.py neo4j_sync_all # 同步所有课程到Neo4j
uv run python tools.py neo4j_clear # 清空Neo4j数据
test.py 测试工具
# 直接运行进入菜单模式
uv run python test.py
# 命令行模式
uv run python test.py test_api # 测试API接口
uv run python test.py test_neo4j # 测试Neo4j连接
uv run python test.py import_neo4j # 导入Neo4j测试数据
uv run python test.py clear_neo4j # 清空Neo4j测试数据
uv run python test.py import_pg # 导入PostgreSQL测试数据
更多信息