Retrieval-Augmented Generation (RAG) powered document question-answering system built with FastAPI, FAISS, Sentence Transformers, Gemini, and Streamlit.
🔗 Live Demo Frontend: https://research-assistant-rvw6i2kgkdmrdu8mpsnvm8.streamlit.app/
🔗 Backend API https://research-assistant-1-s6ak.onrender.com
📖 API Documentation Swagger Docs: https://research-assistant-1-s6ak.onrender.com/docs
✅ PDF Upload & Processing ✅ Automatic Text Extraction ✅ Smart Text Chunking ✅ Semantic Search with FAISS ✅ Retrieval-Augmented Generation (RAG) ✅ Multi-Document Search ✅ Conversational Memory ✅ Source Attribution ✅ Confidence Scoring ✅ Chat Export ✅ Interactive Streamlit Frontend
- 🐍 Python
- ⚡ FastAPI
- 🎨 Streamlit
- 🔍 FAISS
- 🤗 Sentence Transformers
- 🤖 Gemini API
research-assistant/
│
├── app/
│ ├── services/
│ └── utils/
│
├── ui/
│ └── streamlit_app.py
│
├── uploads/
├── data/
├── vectorstore/
│
├── tests/
├── main.py
├── requirements.txt
└── README.md
- Upload one or more PDF documents.
- Extract text and split it into chunks.
- Generate embeddings using Sentence Transformers.
- Store embeddings in a FAISS vector index.
- Retrieve relevant chunks based on user queries.
- Use Gemini to generate context-aware answers.
- Display answers with confidence scores and sources.
- Semantic document search
- Retrieval-Augmented Generation (RAG)
- Multi-document retrieval
- Conversational memory
- Source inspection
- Confidence scoring
- Chat export functionality
- Hybrid Search (FAISS + BM25)
- Document Deletion & Re-indexing
- User Authentication
- Cloud Deployment
- Advanced Reranking
- Persistent Chat Storage




