A powerful Streamlit-powered RAG (Retrieval-Augmented Generation) application that allows you to upload documents and ask natural language questions. It intelligently retrieves relevant information and generates accurate, context-aware answers using embeddings and LLMs.
Built as part of the RAG-Mastery learning journey — covering everything from basic chunking & retrieval to advanced RAG concepts.
- Semantic Document Search — Upload PDFs, TXT, or other documents and get intelligent answers
- End-to-End RAG Pipeline — Document loading, chunking, embedding generation, vector storage & retrieval
- LLM Integration — Powered by OpenAI (easily extendable to other models)
- Clean & Interactive UI — Built with Streamlit for a smooth user experience
- Modular Codebase — Well-organized
src/structure for easy learning and extension - Great for Experimentation — Perfect foundation to try advanced RAG techniques, agents, LangGraph, etc.
Deployed Application: Document Search Engine App
Demo Video:
https://github.com/mani24singh/Document-Search-Engine-App/blob/main/assets/output_demo.mp4
- Language: Python 3.11+
- UI Framework: Streamlit
- RAG Framework: LangChain
- Embeddings: OpenAI Embeddings
- LLM: OpenAI GPT models
- Package Manager: uv (recommended)
git clone https://github.com/mani24singh/Document-Search-Engine-App.git
cd Document-Search-Engine-App# Install uv (fast Python package manager)
pip install uv
# Create and activate virtual environment
uv venv --python 3.11
# Activate environment
# Windows:
.venv\Scripts\activate
# macOS / Linux:
source .venv/bin/activateuv pip install -r requirements.txtCreate a .env file in the root directory and add your key:
OPENAI_API_KEY=sk-your-openai-api-key-hereNote:
.envis already added to.gitignorefor security.
streamlit run streamlit_app.pyThe app will automatically open in your browser.
Document-Search-Engine-App/
├── assets/ # Demo videos and images
├── data/ # Sample documents
├── src/ # Core RAG logic and modules
├── .env.example # Example environment variables
├── .gitignore
├── LICENSE
├── main.py # Alternative entry point
├── requirements.txt
├── README.md
└── streamlit_app.py # Main Streamlit application
Contributions, issues, and feature requests are welcome!
Feel free to fork the repository and submit a pull request.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License — see the LICENSE file for details.
If you liked this project or found it helpful for learning RAG, please give it a ⭐ on GitHub!
It really helps the project reach more people.
Made with ❤️ for learning and building better RAG systems.