File size: 4,553 Bytes
3e9c8cf
 
bdd85b8
3e9c8cf
 
bdd85b8
3e9c8cf
 
 
 
 
4a93bef
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50ad2a8
4a93bef
50ad2a8
4a93bef
 
 
 
50ad2a8
4a93bef
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
---
title: MMQA Chatbot
emoji: 🤖
colorFrom: yellow
colorTo: blue
sdk: streamlit
app_file: app.py
pinned: false
---


# 🤖 Chatbot Gia sư Toán AI Đa Agent

Một ứng dụng chatbot thông minh sử dụng kiến trúc đa agent để hỗ trợ học sinh lớp 9 học Toán theo chương trình Việt Nam.

## 🎯 Tính năng chính

### 5 Agent thông minh:
1. **Informer Agent**: Giải bài toán dựa trên sách giáo khoa (RAG)
2. **Practice Agent**: Tạo bài tập và đề xuất video phù hợp
3. **Insight Agent**: Phân tích điểm yếu và cảm xúc học sinh
4. **Verifier Agent**: Kiểm tra tính đúng đắn của câu trả lời
5. **Tutor Agent**: Điều phối các agent và quản lý hội thoại

### Các luồng tương tác:
-**Giải toán chi tiết**: Trả lời từng bước với kiểm tra chéo
- 🎯 **Luyện tập chủ động**: Tự động đề xuất bài tập dựa trên điểm yếu
- 💚 **Hỗ trợ cảm xúc**: Nhận biết stress và phản hồi đồng cảm
- 🚫 **Từ chối an toàn**: Chỉ tập trung vào toán học

## 🛠️ Thiết lập

### 1. Cài đặt dependencies
```bash
pip install -r requirements.txt
```

### 2. Thiết lập Google AI API Key
```bash
export GOOGLE_API_KEY="your_api_key_here"
```

Hoặc trên Windows:
```cmd
set GOOGLE_API_KEY=your_api_key_here
```

### 3. Chuẩn bị dữ liệu
Đảm bảo có 2 file trong thư mục gốc:
- `embedded_documents.pkl`: Documents sách giáo khoa đã được embedding
- `videos.json`: Danh sách thông tin video bài giảng

### 4. Chạy ứng dụng
```bash
streamlit run app.py
```

## 📚 Cấu trúc hệ thống

### Kiến trúc Multi-Agent
```
┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│   Tutor     │────│  Informer   │────│  Verifier   │
│   Agent     │    │   Agent     │    │   Agent     │
│ (Điều phối) │    │   (RAG)     │    │ (Kiểm tra)  │
└─────────────┘    └─────────────┘    └─────────────┘
       │                   │
       ▼                   ▼
┌─────────────┐    ┌─────────────┐
│  Practice   │    │   Insight   │
│   Agent     │    │   Agent     │
│(Tạo bài tập)│    │(Phân tích)  │
└─────────────┘    └─────────────┘
```

### Luồng xử lý
1. **Phân loại ý định** → Xác định loại câu hỏi
2. **Điều phối agent** → Gọi agent phù hợp
3. **Xử lý và kiểm tra** → Tạo câu trả lời + verification
4. **Phân tích chủ động** → Đề xuất bài tập theo điểm yếu

## 🎮 Cách sử dụng

### Các loại câu hỏi được hỗ trợ:

1. **Câu hỏi toán học**:
   - "Giải phương trình x + 5 = 10"
   - "Tính diện tích hình tròn bán kính 3cm"
   - "Chứng minh định lý Pythagore"

2. **Yêu cầu luyện tập**:
   - "Cho tôi bài tập về phương trình"
   - "Tôi muốn luyện tập thêm"

3. **Biểu đạt stress**:
   - "Tôi mệt quá"
   - "Khó hiểu quá"
   - "Không làm được"

4. **Câu hỏi ngoài chuyên môn**:
   - Hệ thống sẽ từ chối và hướng về toán học

## 🔧 Công nghệ sử dụng

- **Framework**: Haystack-AI 2.x
- **LLM**: Google Gemini 1.5 Pro
- **Embedding**: Vietnamese BI-Encoder
- **UI**: Streamlit + Streamlit-Chat
- **Vector Store**: InMemoryDocumentStore

## 📊 Tối ưu hóa

### Caching thông minh:
- `@st.cache_resource` cho việc tải models
- Session state cho lịch sử chat
- Embedding được cache tự động

### Memory Management:
- Giới hạn lịch sử chat (10 tin nhắn gần nhất)
- Lazy loading cho các component

## 🤝 Đóng góp

Dự án này là case study cho AIQAM'25 Workshop. Nếu bạn muốn đóng góp:

1. Fork repository
2. Tạo feature branch
3. Commit changes
4. Push và tạo Pull Request

## 📄 License

MIT License - Chi tiết xem file LICENSE

## 🎓 Tác giả

Dự án được phát triển cho Workshop AIQAM'25 về Interactive QA Systems.

---
**Lưu ý**: Cần thiết lập Google AI API key để sử dụng. Tham khảo [Google AI Studio](https://makersuite.google.com/app/apikey) để lấy key.