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 β¦