Skip to content

hiraljj05/chatbot-rag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– KMIT College ChatBot (Gemini API + Flask + Supabase + RAG)

A smart AI chatbot built for Keshav Memorial Institute of Technology (KMIT) to help students, faculty, and visitors instantly access important information, events, and resources via a floating assistant on the college website.


✨ Features

  • πŸ’¬ Conversational AI powered by Gemini LLM (Google Generative AI)
  • πŸ“š Retrieval-Augmented Generation (RAG) using FAISS + Sentence Transformers
  • πŸ—ƒοΈ College info and event data loaded via JSON files and Supabase
  • πŸ”— Quick redirects to portals like Attendance, Exam Info, Syllabus, etc.
  • πŸ§‘β€πŸŽ“ Smart responses to FAQs, context-based queries, and navigation requests
  • πŸ–ΌοΈ Floating chatbot UI embedded on the website using Vite + TypeScript
  • πŸ” CORS-enabled Flask backend serving AI and database responses

βš™οΈ Tech Stack

Layer Tech Used
🧠 AI Model Gemini API (Google Generative AI)
πŸ” Embeddings Sentence-Transformers (MiniLM-L6-v2)
πŸ“₯ Vector DB FAISS (Facebook AI Similarity Search)
🌐 Backend Flask + Flask-CORS + Supabase SDK
πŸ“Š Data JSON file + Supabase DB
πŸ§ͺ Scraping Selenium (ChromeDriver)
πŸ–₯️ Frontend Vite + TypeScript

πŸ–ΌοΈ Chatbot Preview

Screenshot 2025-06-04 190815

Screenshot 2025-06-04 190823


🧠 How It Works

  1. User submits a question via the floating chatbot.
  2. Query is normalized and embedded using Sentence Transformers.
  3. FAISS retrieves the most relevant context from the JSON data.
  4. Context and query are sent to Gemini API for the final response generation.
  5. Supabase is queried for dynamic content like event updates.
  6. Response is displayed in the chatbot UI.

πŸ“© Contact

For questions or to see a demo, feel free to reach out!


About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published