| name | Chatbot Implementation |
| description | Details of the RAG Chatbot, including UI and backend logic. |
Chatbot Logic
Overview
A specialized RAG (Retrieval Augmented Generation) chatbot that helps users learn from the textbook content.
Backend
- Route:
app/api/chat/route.ts - Logic:
- Receives
queryandhistory. - Embeds query using Gemini or OpenAI embedding model.
- Searches Qdrant (vector DB) for relevant textbook chunks.
- Constructs context from matches.
- Generates response using Gemini Flash/Pro.
- Receives
Vector Search (Qdrant)
We use Qdrant for storing embeddings of the textbook.
- Collection:
textbook_chunks(or similar). - Fields:
text,source,chunk_id.
UI Component
- Location:
textbook/src/components/Chatbot/index.tsx. - Features:
- Floating chat window.
- Size controls (Small, Medium, Large).
- Markdown rendering of responses.
- Context selection (highlight text to ask about it).
- Mobile responsive design.
- Auth awareness (personalizes answer based on user profile).
Styling
- CSS:
styles.module.css(Premium animations, shadow effects). - Themes: Dark/Light mode compatible (using
--ifmvariables).