Spaces:
Sleeping
Sleeping
| # 🎓 HCMUT RAG Chatbot | |
| Chatbot hỏi đáp thông tin về **Trường Đại học Bách khoa - Đại học Quốc gia TP.HCM (HCMUT)** sử dụng kiến trúc **Retrieval-Augmented Generation (RAG)**. | |
| Hệ thống cho phép người dùng đặt câu hỏi về: | |
| * Tuyển sinh | |
| * Ngành học | |
| * Học phí | |
| * Thông tin chung về trường | |
| * Cơ sở vật chất và hoạt động sinh viên | |
| Chatbot sử dụng **Vector Search + LLM** để tìm tài liệu liên quan và tạo câu trả lời chính xác. | |
| --- | |
| # 🧠 Kiến trúc hệ thống | |
| Pipeline của hệ thống: | |
| User Question | |
| ↓ | |
| Rewrite Query (LLM) | |
| ↓ | |
| Embedding (Sentence Transformers) | |
| ↓ | |
| Vector Search (Cosine Similarity) | |
| ↓ | |
| Retrieve Top-k Documents | |
| ↓ | |
| RAG Prompt | |
| ↓ | |
| Gemma LLM | |
| ↓ | |
| Final Answer | |
| Công nghệ chính: | |
| * RAG (Retrieval-Augmented Generation) | |
| * Sentence Transformers | |
| * Vector Similarity Search | |
| * Google Gemma LLM | |
| * Streamlit UI | |
| --- | |
| # 📂 Cấu trúc thư mục | |
| ``` | |
| CHATBOT RAG | |
| │ | |
| ├── main.py # Logic chính của chatbot + RAG pipeline | |
| ├── ui.py # Giao diện chatbot bằng Streamlit | |
| ├── requirement.txt # Thư viện cần cài | |
| │ | |
| ├── Chunk/ # Xử lý chia nhỏ dữ liệu | |
| │ └── chunkingData.py | |
| │ | |
| ├── Retrieve/ # Truy xuất dữ liệu từ Vector DB | |
| │ └── retriever.py | |
| │ | |
| ├── VectorDatabase/ # Lưu embeddings | |
| │ ├── vectorDB.py | |
| │ ├── embeddings.npy | |
| │ └── texts.npy | |
| │ | |
| ├── Data/ # Dữ liệu đã xử lý | |
| │ ├── data-cleaned.jsonl | |
| │ ├── hcmut_data.txt | |
| │ └── hcmut_info.txt | |
| │ | |
| ├── RawData/ # Dữ liệu gốc và script crawl | |
| │ ├── crawlData.py | |
| │ └── xlsvtojson.py | |
| │ | |
| └── venv/ # Python virtual environment | |
| ``` | |
| --- | |
| # ⚙️ Cài đặt | |
| ### 1️⃣ Clone project | |
| ```bash | |
| git clone <repo-url> | |
| cd chatbot-rag | |
| ``` | |
| ### 2️⃣ Tạo virtual environment | |
| ```bash | |
| python -m venv venv | |
| ``` | |
| Activate: | |
| Windows | |
| ``` | |
| venv\Scripts\activate | |
| ``` | |
| Linux / Mac | |
| ``` | |
| source venv/bin/activate | |
| ``` | |
| ### 3️⃣ Cài thư viện | |
| ```bash | |
| pip install -r requirement.txt | |
| ``` | |
| --- | |
| ## 🔑 Thiết lập API Key | |
| Dự án này sử dụng **Google Generative AI (Gemma/Gemini)** nên cần API key để chạy. | |
| Vì lý do bảo mật, **API key không được đưa trực tiếp vào repository**. | |
| ### 1. Tạo file `.env` | |
| ### 2. Thêm API key vào `.env` | |
| Mở file `.env` và thêm API key của bạn: | |
| ``` | |
| GEMINI_API_KEY=your_api_key_here | |
| ``` | |
| # 🗄️ Tạo Vector Database | |
| Trước khi chạy chatbot cần tạo embeddings cho dữ liệu: | |
| ```bash | |
| python -m VectorDatabase.vectorDB | |
| ``` | |
| File sau sẽ được tạo: | |
| ``` | |
| VectorDatabase/ | |
| ├── embeddings.npy | |
| └── texts.npy | |
| ``` | |
| --- | |
| # 🚀 Chạy Chatbot | |
| Chạy giao diện Streamlit: | |
| ```bash | |
| streamlit run ui.py | |
| ``` | |
| Sau đó mở trình duyệt tại: | |
| ``` | |
| http://localhost:8501 | |
| ``` | |
| --- | |
| # 💬 Ví dụ câu hỏi | |
| Bạn có thể hỏi chatbot: | |
| * Trường Đại học Bách khoa TP.HCM có bao nhiêu cơ sở? | |
| * Trường có những ngành đào tạo nào? | |
| * Học phí của trường là bao nhiêu? | |
| * Địa chỉ của trường ở đâu? | |
| --- | |
| # 🛠️ Công nghệ sử dụng | |
| * Python | |
| * Streamlit | |
| * Sentence Transformers | |
| * Scikit-learn | |
| * LangChain | |
| * Google Generative AI | |
| * HuggingFace Transformers | |
| --- | |
| # 📌 Ghi chú | |
| Chatbot chỉ trả lời các câu hỏi liên quan đến **Trường Đại học Bách khoa TP.HCM**. | |
| Nếu câu hỏi ngoài phạm vi, hệ thống sẽ từ chối trả lời. | |
| --- | |
| # 👨💻 Tác giả | |
| Sinh viên thực hiện dự án **RAG Chatbot tư vấn HCMUT** phục vụ mục đích học tập và nghiên cứu AI / NLP. | |