A Dynamic Domain-Specific Classroom Assistant built using Retrieval-Augmented Generation (RAG) architecture. Designed for Electronics and Communication Engineering (ECE) departments to query student records and academic documents using natural language.
Traditional LLMs generate responses from generalized training data and often hallucinate. This system solves that by grounding every answer strictly in uploaded classroom documents — student records, syllabi, and subject notes.
Key capabilities:
User Query
↓
Embedding Model (all-MiniLM-L6-v2)
↓
Vector Similarity Search (ChromaDB)
↓
Top-K Relevant Chunks Retrieved
↓
Prompt Construction (query + context)
↓
LLM Response Generation (phi3:mini via Ollama)
↓
Grounded Answer → User
| Component | Technology |
|---|---|
| Language | Python 3.10+ |
| LLM | phi3:mini via Ollama (local) |
| Embedding Model | all-MiniLM-L6-v2 (sentence-transformers) |
| Vector Database | ChromaDB (persistent local store) |
| RAG Framework | LangChain |
| Frontend UI | Streamlit |
| Document Parsing | PyPDF, Pandas |
| Environment | python-dotenv |
rag_classroom_assistant/
├── app.py # Streamlit chat UI
├── requirements.txt # All dependencies
├── .env # Environment config
├── verify_setup.py # Setup checker
│
├── src/
│ ├── ingest.py # Document ingestion + chunking
│ ├── embed.py # Embedding generation + ChromaDB storage
│ └── rag_pipeline.py # Query → retrieve → LLM → answer
│
├── data/
│ ├── documents/ # ECE PDFs (syllabus, notes)
│ └── students/ # Student records (CSV)
│
└── db/
├── chunks.json # Processed text chunks
└── chroma_store/ # ChromaDB vector index
cd Desktop
# place the rag_classroom_assistant folder here
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
Download Ollama from https://ollama.com then:
ollama pull phi3:mini
data/documents/data/students/python src\ingest.py
python src\embed.py
streamlit run app.py
Open http://localhost:8501 in your browser and start asking questions:
Student queries:
Subject queries (requires PDFs uploaded):
Out-of-domain (correctly rejected):
| Feature | Plain LLM | RAG System |
|---|---|---|
| Hallucination | High | Very low |
| Domain restriction | Not possible | Built-in |
| Private data support | No | Yes |
| Dynamic updates | Needs retraining | Upload + re-index |
| Answer traceability | None | Source chunks shown |
Vashundhara.R — Pre-final year ECE Student
Project: AIML mini Project
Domain: AI / NLP / Information Retrieval
A Dynamic Domain-Specific Classroom Assistant built using Retrieval-Augmented Generation (RAG) architecture. Designed for Electronics and Communication Engineering (ECE) departments to query student records and academic documents using natural language.
Traditional LLMs generate responses from generalized training data and often hallucinate. This system solves that by grounding every answer strictly in uploaded classroom documents — student records, syllabi, and subject notes.
Key capabilities:
User Query
↓
Embedding Model (all-MiniLM-L6-v2)
↓
Vector Similarity Search (ChromaDB)
↓
Top-K Relevant Chunks Retrieved
↓
Prompt Construction (query + context)
↓
LLM Response Generation (phi3:mini via Ollama)
↓
Grounded Answer → User
| Component | Technology |
|---|---|
| Language | Python 3.10+ |
| LLM | phi3:mini via Ollama (local) |
| Embedding Model | all-MiniLM-L6-v2 (sentence-transformers) |
| Vector Database | ChromaDB (persistent local store) |
| RAG Framework | LangChain |
| Frontend UI | Streamlit |
| Document Parsing | PyPDF, Pandas |
| Environment | python-dotenv |
rag_classroom_assistant/
├── app.py # Streamlit chat UI
├── requirements.txt # All dependencies
├── .env # Environment config
├── verify_setup.py # Setup checker
│
├── src/
│ ├── ingest.py # Document ingestion + chunking
│ ├── embed.py # Embedding generation + ChromaDB storage
│ └── rag_pipeline.py # Query → retrieve → LLM → answer
│
├── data/
│ ├── documents/ # ECE PDFs (syllabus, notes)
│ └── students/ # Student records (CSV)
│
└── db/
├── chunks.json # Processed text chunks
└── chroma_store/ # ChromaDB vector index
cd Desktop
# place the rag_classroom_assistant folder here
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
Download Ollama from https://ollama.com then:
ollama pull phi3:mini
data/documents/data/students/python src\ingest.py
python src\embed.py
streamlit run app.py
Open http://localhost:8501 in your browser and start asking questions:
Student queries:
Subject queries (requires PDFs uploaded):
Out-of-domain (correctly rejected):
| Feature | Plain LLM | RAG System |
|---|---|---|
| Hallucination | High | Very low |
| Domain restriction | Not possible | Built-in |
| Private data support | No | Yes |
| Dynamic updates | Needs retraining | Upload + re-index |
| Answer traceability | None | Source chunks shown |
Vashundhara.R — Pre-final year ECE Student
Project: AIML mini Project
Domain: AI / NLP / Information Retrieval