项目概述

自适应学习系统是一个知识图谱驱动的个性化自适应学习系统,采用前后端分离架构。后端使用Python + Django + Django REST Framework构建, 数据库采用PostgreSQL存储关系数据,Neo4j存储知识图谱数据。系统通过LangChain框架集成大语言模型(通义千问/DeepSeek), 实现智能化的学习者画像分析和学习路径推荐。

系统架构

技术栈

模块划分

模块 路径 功能描述
用户模块 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.pytest.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测试数据

更多信息