Spaces:
Sleeping
Sleeping
A newer version of the Streamlit SDK is available:
1.49.1
metadata
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:
- Informer Agent: Giải bài toán dựa trên sách giáo khoa (RAG)
- Practice Agent: Tạo bài tập và đề xuất video phù hợp
- Insight Agent: Phân tích điểm yếu và cảm xúc học sinh
- Verifier Agent: Kiểm tra tính đúng đắn của câu trả lời
- 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
pip install -r requirements.txt
2. Thiết lập Google AI API Key
export GOOGLE_API_KEY="your_api_key_here"
Hoặc trên Windows:
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 embeddingvideos.json
: Danh sách thông tin video bài giảng
4. Chạy ứng dụng
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ý
- Phân loại ý định → Xác định loại câu hỏi
- Điều phối agent → Gọi agent phù hợp
- Xử lý và kiểm tra → Tạo câu trả lời + verification
- 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ợ:
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"
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"
Biểu đạt stress:
- "Tôi mệt quá"
- "Khó hiểu quá"
- "Không làm được"
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:
- Fork repository
- Tạo feature branch
- Commit changes
- 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 để lấy key.