SkillAgentSearch skills...

PersonalExam

🧠 AI-powered Personalized Exam System: Integrating OpenPangu LLM, Knowledge Graph RAG, and BKT algorithm for adaptive question generation and recommendation. 基于LLM与知识图谱的智能个性化出题系统。

Install / Use

/learn @sribdcn/PersonalExam

README

🧠 基于LLM和知识图谱协同的个性化出题系统

alt text

alt text

Personalized Question Generation System Based on LLM and Knowledge Graph Collaboration

Version Python License

一个基于LLM和知识图谱协同的个性化出题系统,使用BKT算法、RAG引擎和OpenPangu模型,实现个性化的智能题目生成和推荐。

开发单位: 深圳市大数据研究院 (SRIBD) | 课题组: AI系统与应用课题组

Powered by OpenPangu. OpenPangu is a trademark of Huawei Technologies Co., Ltd.

许可证:

  • 项目代码: 本项目代码采用 BSL 1.1 (Business Source License 1.1) 许可证,允许非商业使用,商业使用需要授权。
  • OpenPangu模型: 本项目使用的OpenPangu模型采用 OPENPANGU MODEL LICENSE AGREEMENT VERSION 1.0 许可证,需遵守该许可协议的所有条款。

📄 论文

  1. Beyond Static Question Banks: Dynamic Knowledge Expansion via LLM-Automated Graph Construction and Adaptive Generation https://doi.org/10.48550/arXiv.2602.00020

📋 目录

✨ 功能特性

🎯 智能测评

  • 自适应题目推荐: 基于BKT算法和知识图谱RAG引擎,根据学生掌握度智能推荐题目
  • 细粒度知识点追踪: 支持知识点大类和小类两级追踪,实时更新掌握度
  • AI答案评估: 使用盘古7B模型进行智能答案评估,提供详细反馈

📊 学习分析

  • 学生画像生成: 自动生成个性化学习画像,识别薄弱知识点
  • 可视化报告: 生成包含雷达图、掌握度图表等可视化分析报告
  • 历史记录查询: 支持按知识点、时间范围查询答题历史

🕸️ 知识图谱

  • 自动构建与更新: 使用盘古7B模型自动构建知识图谱,智能检测题库变化并更新
  • 交互式可视化: 支持2D/3D可视化,多种布局算法,交互式探索
  • 知识图谱RAG: 基于知识图谱的检索增强,实现精准题目推荐

👥 用户管理

  • 角色权限: 支持学生和教师两种角色,权限分离
  • 用户注册登录: 安全的用户认证系统,支持默认测试账号

⚙️ 系统管理

  • 题库管理: UI界面添加题目,支持JSON批量导入
  • 学生管理: 教师可查看学生学习数据和答题情况
  • 系统监控: 实时监控系统状态和统计信息

🏗️ 技术架构

核心技术栈

系统架构图

%%{init: {'theme':'base', 'themeVariables': {'primaryBackgroundColor':'#ffffff', 'primaryTextColor':'#000000', 'primaryBorderColor':'#333333', 'lineColor':'#333333', 'edgeLabelBackground':'#ffffff', 'secondaryColor':'#f0f0f0', 'tertiaryColor':'#ffffff', 'mainBkgColor':'#ffffff', 'secondBkgColor':'#f5f5f5', 'tertiaryBkgColor':'#ffffff', 'background':'#ffffff', 'primaryColor':'#ffffff'}}}%%
graph TB
    subgraph 前端层["前端层"]
        GradioUI["Gradio Web UI<br/>enhanced_main_ui.py<br/>交互式Web界面"]
        Login["登录注册系统<br/>用户认证与权限管理"]
    end
    
    subgraph 应用层["应用层"]
        SystemCore["System Core<br/>system_core_db.py<br/>系统核心协调器"]
        BKT["BKT算法适配器<br/>bkt_database_adapter.py<br/>贝叶斯知识追踪"]
        RAG["RAG引擎<br/>rag_engine.py<br/>基于知识图谱的检索"]
        KG["知识图谱构建器<br/>kg_builder.py<br/>实体关系提取与图谱构建"]
        Selector["题目选择器<br/>question_generator.py<br/>智能推荐+题目互选"]
        Evaluator["评估器<br/>evaluator.py<br/>答案评判+学习分析+报告生成"]
        Visualizer["可视化器<br/>kg_visualizer.py<br/>radar_chart.py<br/>知识图谱+雷达图可视化"]
    end
    
    subgraph AI模型层["AI模型层"]
        Pangu["OpenPangu 7B<br/>llm_models.py<br/>• 实体关系提取<br/>• 题目互选<br/>• 答案评判<br/>• 分析总结"]
        BGE["BGE-small-zh-v1.5<br/>embedding_model.py<br/>文本向量化"]
    end
    
    subgraph 数据层["数据层"]
        DB[("SQLite数据库<br/>database.py<br/>• 用户表<br/>• 题目表<br/>• 答题记录表<br/>• 学生状态表")]
        Cache[("知识图谱缓存<br/>knowledge_graph.pkl<br/>实体关系图")]
        Hash[("知识图谱哈希<br/>kg_hash.txt<br/>检测题库更新")]
        VectorIndex[("向量索引<br/>内存存储<br/>题目向量检索")]
    end
    
    subgraph 硬件层["硬件层"]
        NPU["昇腾910B2 NPU<br/>AI模型加速"]
    end
    
    %% 前端到核心
    GradioUI --> Login
    Login --> SystemCore
    
    %% 系统核心初始化各组件
    SystemCore --> BKT
    SystemCore --> RAG
    SystemCore --> KG
    SystemCore --> Selector
    SystemCore --> Evaluator
    SystemCore --> Visualizer
    
    %% 数据存储关系
    BKT --> DB
    SystemCore --> DB
    KG --> Cache
    KG --> Hash
    RAG --> VectorIndex
    
    %% RAG引擎相关连接
    RAG --> DB
    RAG --> BGE
    RAG --> Pangu
    RAG --> Cache
    BGE --> VectorIndex
    
    %% 知识图谱构建器相关连接
    KG --> DB
    KG --> Pangu
    KG --> Cache
    
    %% 题目选择器相关连接
    Selector --> RAG
    Selector --> BKT
    Selector --> Pangu
    Selector --> DB
    
    %% 评估器相关连接
    Evaluator --> Pangu
    Evaluator --> BKT
    Evaluator --> DB
    
    %% 可视化器相关连接
    Visualizer --> Cache
    Visualizer --> DB
    
    %% 硬件加速
    Pangu --> NPU
    BGE --> NPU
    
    style GradioUI fill:#E3F2FD
    style Login fill:#C8E6C9
    style SystemCore fill:#F3E5F5
    style Pangu fill:#FFF3E0
    style BGE fill:#FFF3E0
    style NPU fill:#E0E0E0
    style RAG fill:#E1BEE7
    style Selector fill:#E1BEE7
    style Evaluator fill:#E1BEE7
    style Visualizer fill:#E1BEE7
    style BKT fill:#C8E6C9
    style KG fill:#BBDEFB
    style DB fill:#FFE0B2
    style Cache fill:#FFE0B2
    style Hash fill:#FFE0B2
    style VectorIndex fill:#FFE0B2

主要技术栈

%%{init: {'theme':'base', 'themeVariables': {'primaryBackgroundColor':'#ffffff', 'primaryTextColor':'#000000', 'primaryBorderColor':'#333333', 'lineColor':'#333333', 'edgeLabelBackground':'#ffffff', 'secondaryColor':'#f0f0f0', 'tertiaryColor':'#ffffff', 'mainBkgColor':'#ffffff', 'secondBkgColor':'#f5f5f5', 'tertiaryBkgColor':'#ffffff', 'background':'#ffffff', 'primaryColor':'#ffffff'}}}%%
graph LR
    subgraph 前端技术["前端技术"]
        Gradio["Gradio 5.49.1<br/>Apache 2.0"]
    end
    
    subgraph 深度学习框架["深度学习框架"]
        PyTorch["PyTorch<br/>BSD 3-Clause"]
        TorchNPU["torch-npu<br/>Apache 2.0"]
    end
    
    subgraph 模型库["模型库"]
        Transformers["Transformers 4.53.2<br/>Apache 2.0"]
        Accelerate["Accelerate 1.10.1<br/>Apache 2.0"]
        SentenceTransformers["sentence-transformers 5.1.1<br/>Apache 2.0"]
    end
    
    subgraph 数据处理["数据处理"]
        NumPy["NumPy 1.26.4<br/>BSD 3-Clause"]
        Pandas["Pandas 1.5.3<br/>BSD 3-Clause"]
        SciPy["SciPy 1.15.3<br/>BSD 3-Clause"]
    end
    
    subgraph 图论可视化["图论与可视化"]
        NetworkX["NetworkX 3.5<br/>BSD 3-Clause"]
        Plotly["Plotly 6.4.0<br/>MIT"]
        Matplotlib["Matplotlib 3.10.6<br/>Matplotlib License"]
    end
    
    subgraph 数据库["数据库"]
        SQLite["SQLite<br/>Public Domain"]
    end
    
    subgraph AI模型["AI模型"]
        OpenPangu["OpenPangu 7B<br/>OpenPangu License v1.0"]
        BGE["BGE-small-zh-v1.5<br/>Apache 2.0"]
    end
    
    subgraph 硬件加速["硬件加速"]
        NPU["昇腾910B2 NPU"]
    end
    
    Gradio --> PyTorch
    Gradio --> Transformers
    PyTorch --> TorchNPU
    TorchNPU --> NPU
    Transformers --> OpenPangu
    Transformers --> Accelerate
    Accelerate --> NPU
    SentenceTransformers --> BGE
    SentenceTransformers --> Transformers
    OpenPangu --> NPU
    BGE --> NPU
    
    NumPy --> PyTorch
    Pandas --> NumPy
    SciPy --> NumPy
    NetworkX --> NumPy
    Plotly --> NumPy
    Matplotlib --> NumPy
    
    SQLite --> Gradio
    
    style Gradio fill:#BBDEFB
    style PyTorch fill:#C8E6C9
    style Transformers fill:#FFF9C4
    style Accelerate fill:#FFF9C4
    style SentenceTransformers fill:#FFF9C4
    style OpenPangu fill:#FFE0B2
    style BGE fill:#FFE0B2
    style NPU fill:#E0E0E0
    style SQLite fill:#C8E6C9
    style NetworkX fill:#E1BEE7
    style Plotly fill:#E1BEE7
    style Matplotlib fill:#E1BEE7

核心算法流程

%%{init: {'theme':'base', 'themeVariables': {'primaryBackgroundColor':'#ffffff', 'primaryTextColor':'#000000', 'primaryBorderColor':'#333333', 'lineColor':'#333333', 'edgeLabelBackground':'#ffffff', 'secondaryColor':'#f0f0f0', 'tertiaryColor':'#ffffff', 'mainBkgColor':'#ffffff', 'secondBkgColor':'#f5f5f5', 'tertiaryBkgColor':'#ffffff', 'background':'#ffffff', 'primaryColor':'#ffffff'}}}%%
flowchart TD
    Start([用户登录系统]) --> Auth{身份验证}
    Auth -->|学生| StudentFlow[学生流程]
    Auth -->|教师| TeacherFlow[教师流程]
    
    StudentFlow --> StartAssess[开始智能测评]
    StartAssess --> GenProfile[【BKT算法】<br/>生成学生画像]
    GenProfile --> SelectKP{选择目标知识点}
    SelectKP -->|70%概率| WeakKP[优先选择薄弱知识点]
    SelectKP -->|30%概率| RandomKP[随机选择知识点]
    WeakKP --> GetMastery[【BKT算法】<br/>获取学生掌握度]
    RandomKP --> GetMastery
    
    GetMastery --> QuestionSelect[【题目选择器】<br/>智能选择题目]
    QuestionSelect --> RAGStrategy{知识图谱RAG检索}
    RAGStrategy -->|成功| RAGSelected[返回RAG推荐题目]
    RAGStrategy -->|失败| Fallback[多级SQL备用方案<br/>1.精确匹配 2.大类+难度<br/>3.大类匹配 4.任意题目]
    RAGSelected --> CreateSession[创建测评会话]
    Fallback --> CreateSession
    
    CreateSession --> DisplayQ[显示题目]
    DisplayQ --> Answer[学生答题]
    Answer --> SubmitAnswer[提交答案]
    
    SubmitAnswer --> AnswerJudge[【盘古7B模型】<br/>智能答案评估<br/>支持答案缓存优化]
    AnswerJudge --> BKTUpdate[【BKT算法】<br/>更新学生掌握度]
    BKTUpdate --> SaveDB[【SQLite数据库】<br/>保存答题记录]
    
    SaveDB --> CheckMore{还有题目?}
    CheckMore -->|是| PreSelectNext[预选下一题<br/>选择知识点+选择题目]
    CheckMore -->|否| GenerateReport[【盘古7B模型】<br/>生成学习分析报告]
    
    PreSelectNext --> NextQuestion[加载下一题]
    NextQuestion --> DisplayQ
    
    GenerateReport --> ShowReport[显示学习报告<br/>包含掌握度、薄弱点、<br/>进步趋势等]
    ShowReport --> End([结束])
    
    TeacherFlow --> Manage[【教师管理功能】<br/>题库管理、学生管理、<br/>系统监控、知识图谱管理]
    
    style Start fill:#E8F5E9
    style Auth fill:#FFF3E0
    style StudentFlow fill:#E3F2FD
    style TeacherFlow fill:#F3E5F5
    style GenProfile fill:#E3F2FD
    style SelectKP fill:#FFF3E0
    style WeakKP fill:#FFE0B2
    style GetMastery fill:#E3F2FD
    style QuestionSelect fill:#E1BEE7
    style RAGStrategy fill:#F3E5F5
    style RAGSelected fill:#C8E6C9
    style Fallback fill:#FFF9C4
    style AnswerJudge fill:#FFE0B2
    style BKTUpdate fill:#E3F2FD
    style SaveDB fill:#C8E6C9
    style GenerateReport fill:#FFE0B2
    style ShowReport fill:#C8E6C9
    style End fill:#FFCDD2
    style Manage fill:#E1BEE7

💻 系统要求

硬件要求

环境配置(参考)

  • CPU: Kunpeng-920处理器
  • 存储: 196GB总容量(建议至少100GB可用空间用于模型文件和Docker镜像)
  • NPU: 昇腾910B2 NPU

软件要求

  • 操作系统: Linux (推荐 Ubuntu 22.04.5 LTS,容器内使用 Ubuntu 22.04.5 LTS)
  • Python: 3.11.12 (容器内版本)
  • Docker: 18.09.0+ (宿主机版本,推荐使用Docker容器化部署)
View on GitHub
GitHub Stars274
CategoryEducation
Updated14h ago
Forks11

Languages

Python

Security Score

85/100

Audited on Mar 24, 2026

No findings