File size: 3,061 Bytes
833dac3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# 教育LLM助手项目文档

## 项目概述

这是一个基于Gradio构建的教育类LLM应用,主要功能是将学习问题分解为相关概念并提供详细解释。

## 系统架构

### 主要组件

1. **前端界面** (app.py)
   - 使用Gradio构建的Web界面
   - 包含用户配置、问题输入、概念图谱展示和概念解释等模块

2. **LLM链** (llm_chain.py)
   - 处理核心的AI交互逻辑
   - 包含两个主要功能:概念分解和概念解释

3. **可视化模块** (visualization.py)
   - 负责生成概念知识图谱

### 数据流程

```mermaid
graph LR
    A[用户输入] --> B[问题分析]
    B --> C[概念分解]
    C --> D[知识图谱生成]
    C --> E[概念卡片生成]
    E --> F[概念选择]
    F --> G[概念解释生成]
```

## Prompt系统

### 1. 概念分解 Prompt (prompts.py)

输入参数:
- question: 用户问题
- grade: 年级水平
- subject: 学科
- learning_needs: 学习需求

Prompt模板:
```python
def generate_decomposition_prompt(question, grade, subject, learning_needs):
    return f"""
    作为一名{subject}教育专家,请分析以下{grade}级学生的问题:
    
    问题:{question}
    
    学习需求:{learning_needs}
    
    请将这个问题分解为相关的核心概念,并说明它们之间的关系。
    """
```

### 2. 概念解释 Prompt (prompts.py)

输入参数:
- concept_name: 概念名称
- concept_description: 概念描述
- grade: 年级水平
- subject: 学科
- learning_needs: 学习需求

Prompt模板:
```python
def generate_explanation_prompt(concept_name, concept_description, grade, subject, learning_needs):
    return f"""
    请为{grade}级{subject}学生解释以下概念:
    
    概念:{concept_name}
    描述:{concept_description}
    
    学习需求:{learning_needs}
    
    请提供:
    1. 详细解释
    2. 具体例子
    3. 相关学习资源
    4. 练习题
    """
```

## 处理流程

1. **用户输入阶段**
   - 用户设置学习配置(年级、学科、学习需求)
   - 输入学习问题

2. **概念分解阶段**
   - 系统使用decomposition prompt分析问题
   - 生成相关概念及其关系
   - 创建概念知识图谱
   - 生成概念卡片

3. **概念解释阶段**
   - 用户选择特定概念
   - 系统使用explanation prompt生成详细解释
   - 提供例子、资源和练习题

4. **缓存机制**
   - 使用AppState类管理状态
   - 缓存已生成的概念解释
   - 存储用户配置和当前概念数据

## 输出格式

1. **概念分解输出**
   - 概念列表(名称、描述、难度)
   - 概念间关系
   - 可视化知识图谱

2. **概念解释输出**
   - 详细解释文本
   - 示例(包含难度分级)
   - 学习资源链接
   - 练习题(带答案)

## 注意事项

1. 所有输出都经过格式化,以适应不同年级水平
2. 系统支持多语言(通过用户界面配置)
3. 实现了错误处理和优雅的降级机制
4. 使用缓存来提高响应速度