Grounded by design
The prompt instructs the model to use only the retrieved context. If the answer is not there, it says so instead of guessing.
Upload a PDF, Word file or plain text, then ask questions in your own words. Every answer is generated from retrieved passages in your files — and shown with the sources it came from.
Revenue grew across all three regions, led by the services division…
Operating costs were held flat while headcount increased in support…
Revenue grew across all three regions, with the services division leading growth while operating costs stayed flat.
Illustrative preview of the chatbot workflow.
This is a focused RAG application, not a general chatbot. It reads your documents, retrieves the passages that matter, and answers from that context only.
The prompt instructs the model to use only the retrieved context. If the answer is not there, it says so instead of guessing.
PyPDF, Docx2txt and plain-text loaders feed one ingestion pipeline. Pasted notes are chunked and embedded the same way.
Chunks are embedded on your machine with all-MiniLM-L6-v2 (384 dimensions). No embedding API key, no per-chunk cost.
Each response lists the retrieved chunks with filename, chunk index and page metadata when the loader provides it.
Search the whole library or tick specific documents, and choose how many chunks to retrieve (1–20) for each question.
ChromaDB persists vectors to local disk. Content-based SHA-256 IDs make re-uploading the same file safe rather than duplicated.
Uploads and questions travel different paths through the same system. The tour walks through every stage with the real implementation details.
No hidden services. These are the pinned libraries and models the project runs on.
Chat inference uses the Groq API; document embeddings are computed locally. No API keys are exposed to the browser.
Open the chatbot and upload your first file, or take the guided tour first to see exactly how retrieval and generation fit together.