GCTU Smart Student Chatbot – AI-Powered Assistant This is an AI-powered chatbot designed to assist students of Ghana Communication Technology University (GCTU) by answering questions based on official university documents like the academic calendar, undergraduate handbook, and relevant website pages.
📚 GCTU Smart Student Chatbot – AI-Powered Assistant
This is an AI-powered chatbot designed to assist students of Ghana Communication Technology University (GCTU) by answering questions
based on official university documents like the academic calendar, undergraduate handbook, and relevant website pages.
✅ Features
💬 Ask GCTU-specific questions (e.g., "When does the semester start?")
🧠 Context-aware answers using embedded university documents
📄 Load and parse PDFs (e.g., handbook, calendar)
🌐 Read content from GCTU website pages
🔍 Semantic search using ChromaDB
⚡ Uses free, fast LLM via Groq API (Mixtral, LLaMA3)
🧠 Embedding model: sentence-transformers/all-MiniLM-L6-v2
📦 Tech Stack
Python 3.10+
Django
ChromaDB
Sentence Transformers
Groq API
BeautifulSoup (for HTML parsing)
PyMuPDF (for PDF extraction)
🚀 Getting Started
1. Clone the Project
git clone
github.com
cd gctu-chatbot
2. Set Up Python Environment
Install pyenv if needed, then:
pyenv install 3.10.13
pyenv local 3.10.13
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
3. Set Up Environment Variables
Create a .env file and add your Groq API key:
Visit:
console.groq.com
GROQ_API_KEY=your-groq-api-key-here
4. Add Your GCTU PDFs
Create a folder called gctu_docs in the project root and place your PDFs inside (e.g., Academic Calendar, Handbook).
5. Load Data into ChromaDB
Run the ingestion script:
python load_gctu_docs.py
This will embed both PDF and online content into your local vector store.
6. Run the Django Server
python manage.py runserver
Open
localhost and chat with your GCTU bot.
🧠 How It Works
Text Extraction
Extracts content from PDFs and GCTU URLs
Splits them into text chunks for semantic similarity
Embedding & Storage
Uses sentence-transformers to embed chunks
Stores them in ChromaDB locally
Question Answering
When a question is asked, the bot:
Embeds the question
Retrieves top re …