A demo website where you can view the syllabus of a typical computer science BTech program. It includes a Retrieval-Augmented Generation (RAG) based chatbot designed to answer course-related queries accurately.
The current static deployment is hosted here: https://syllabot.netlify.app/
Important Technical Note:
The deployed version is a static frontend build that currently performs searches based solely on keyword matching against course titles.
The full-featured Django application is designed for high-accuracy results, utilizing semantic search and RAG (Retrieval-Augmented Generation) to analyze the content of syllabus documents. For a demonstration of the full RAG capabilities, please refer to the Installation section to run the application locally.
- Browse courses by academic year.
- View credits, prerequisites, units and topics covered, experiments, and references for each course.
- Ask the RAG chatbot any question regarding the course contents.
- Includes custom parsers used to build SQL and vector databases from source markdown files.
| Category | Technologies |
|---|---|
| Frontend | HTML, CSS, JavaScript |
| Backend | Python (Django Framework), LangChain |
| Database | SQLITE, Chroma (Vector DB) |
| LLMs/Embeddings | Nomic Text Embeddings, Llama 3.2 (1B parameter) |
| Deployment | Netlify (Frontend only with limited chat functionality) |
-
Install Python and pip.
-
Install Ollama (This manages the local LLMs).
-
Pull embedding model and chat model: Bash
ollama pull nomic-embed-text:latest ollama pull llama3.2:1b
-
Clone the repository:
git clone <https://github.com/4dith/syllabot.git> -
Navigate to the project directory:
cd syllabot -
Install dependencies:
pip install -r requirements.txt -
Start the Ollama application on your PC (it runs in the background).
-
Run the web application locally:
python manage.py runserver -
Click the link to the development server (usually
http://127.0.0.1:8000/) from the output text in your console.
static-site/ - For deployment of the static demo site (can be ignored for local development)
courses/ - Main Django app (contains models, views, and templates for course data)
courses/rag.py - Contains the RAG functionality using OLLAMA
createDB.py - Script to create a vector embedding database from the SQLITE database
parser.py - Script to create the SQLITE database by parsing source markdown files
Distributed under the MIT License. See the LICENSE file for more information.
Project Link: https://github.com/4dith/syllabot Email: adithyavenkatesh.in@gmail.com
We would like to extend our sincere thanks to Dr. K Hima Bindu for their invaluable mentorship and guidance throughout the development of Syllabot.