Hệ thống phát hiện sớm trạng thái cảm xúc tiêu cực của sinh viên từ nội dung trực tuyến là nền tảng giúp nhà trường thu thập, phân loại và phản hồi các ý kiến của sinh viên về môn học, giảng viên và trải nghiệm học tập.
Hệ thống tích hợp mô hình phân tích cảm xúc (Sentiment Analysis) dựa trên trí tuệ nhân tạo (AI) để tự động nhận biết phản hồi tích cực hoặc tiêu cực, đồng thời kích hoạt chatbot hỗ trợ khi phát hiện nội dung tiêu cực nhằm giúp sinh viên được tư vấn, chia sẻ và định hướng kịp thời.
Hệ thống được xây dựng theo mô hình Client–Server, sử dụng FastAPI làm backend và SQLite làm cơ sở dữ liệu, kết hợp giao diện web được phát triển bằng HTML, Bootstrap và AdminLTE. Mô hình học máy được huấn luyện trước bằng XGBoost và SentenceTransformer giúp đảm bảo tốc độ xử lý nhanh, chính xác và có thể mở rộng trong tương lai.
Ứng dụng gồm các thành phần chính sau:
- Frontend (Giao diện web): Cho phép sinh viên đăng nhập, gửi phản hồi, xem lịch sử và trò chuyện với chatbot.
- Backend (FastAPI): Xử lý logic nghiệp vụ, gọi mô hình AI phân tích cảm xúc, lưu dữ liệu và phản hồi kết quả cho frontend.
- Mô hình AI (Sentiment Analysis): Phân tích nội dung phản hồi, xác định cảm xúc và ngưỡng tiêu cực để quyết định hiển thị chatbot.
- Chatbot (Gemini API): Giao tiếp tự nhiên với người dùng, cung cấp lời khuyên, hướng dẫn hoặc hỗ trợ tâm lý cơ bản.
- Database (SQLite): Lưu trữ thông tin sinh viên, lớp học, học phần, phản hồi và lịch sử hội thoại.
- Ngôn ngữ lập trình: Python 3.10
- Framework Backend: FastAPI – nhanh, gọn, typing rõ ràng.
- Máy chủ ứng dụng: Uvicorn (ASGI) để chạy FastAPI ổn định.
- Cơ sở dữ liệu: SQLite (nhẹ, đủ cho demo/triển khai nhỏ).
- ORM: SQLAlchemy – mô hình hoá bảng và quan hệ, dễ bảo trì.
- Bảo mật: Passlib/bcrypt – băm mật khẩu an toàn.
- AI phân tích cảm xúc:
- SentenceTransformer để mã hoá ngữ nghĩa phản hồi.
- XGBoost phân loại cảm xúc POS/NEG, xuất ra xác suất.
- Chatbot hỗ trợ: Google Gemini API (trợ lý đồng cảm, trả lời ≤120 từ).
- Frontend: HTML5, CSS3, Bootstrap 4 và AdminLTE (UI quản trị + widget chat nổi).
- Cấu hình môi trường:
python-dotenvđọc biến môi trường (.env).
Hình 3: Giao diện phản hồi sinh viên
Hình 4: Giao diện Chatbot trợ lý sinh viên
| Thành phần | Phiên bản khuyến nghị | Ghi chú |
|---|---|---|
| Python | ≥ 3.10 | Đảm bảo đã thêm vào PATH |
| Pip | Mặc định theo Python | Dùng để cài thư viện |
| Git | (Tùy chọn) | Dùng để clone project |
| Trình duyệt web | Chrome / Edge / Brave | Dùng để truy cập giao diện hệ thống |
| IDE khuyến nghị | VSCode / PyCharm | Hỗ trợ virtualenv & gợi ý code |
git clone https://github.com/pnguyen13/student_feedback_system.git
cd student_feedback_systempython -m venv .venv-
Windows (PowerShell):
.venv\Scripts\Activate.ps1
⚠️ Nếu bị lỗiexecution policy, chạy lệnh sau rồi thử lại:Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
-
macOS / Linux:
source .venv/bin/activate
pip install -r requirements.txtTạo file .env tại thư mục gốc (cùng cấp với api/ và model/) với nội dung ví dụ:
GEMINI_API_KEY=your_google_gemini_api_key_here
DB_URL=sqlite:///./student_feedback.dbuvicorn api.main:app --reload --port 8000✅ Sau khi chạy thành công, terminal hiển thị:
INFO: Uvicorn running on http://127.0.0.1:8000
- Truy cập: http://127.0.0.1:8000/
- Đăng nhập bằng tài khoản mặc định:
admin / 123456
- ✅ Gửi phản hồi → mô hình AI phân tích cảm xúc.
⚠️ Nếu phát hiện phản hồi tiêu cực, hệ thống hiển thị popup chatbot.- 💬 Chatbot Gemini sẽ chào sinh viên: “Chào bạn 👋 Mình là trợ lý sinh viên. Mình giúp gì được cho bạn?”
- 👨🎓 Sinh viên thực hiện: Nguyễn Đào Phúc Nguyên, Đoàn Tuấn Nam
- 🎓 Khoa: Công nghệ thông tin – Đại học Đại Nam
- 📧 Email: [email protected]


