Spaces:
Sleeping
Sleeping
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. |