hcmut-rag-chatbot / src /README.md
botconming's picture
Cập nhật dữ liệu RAG và logic chatbot
936810c

🎓 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

git clone <repo-url>
cd chatbot-rag

2️⃣ Tạo virtual environment

python -m venv venv

Activate:

Windows

venv\Scripts\activate

Linux / Mac

source venv/bin/activate

3️⃣ Cài thư viện

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:

python -m VectorDatabase.vectorDB

File sau sẽ được tạo:

VectorDatabase/
├── embeddings.npy
└── texts.npy

🚀 Chạy Chatbot

Chạy giao diện Streamlit:

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.