A production-grade Retrieval-Augmented Generation (RAG) system acting as a professional "Digital Twin."
This project is a high-performance RAG application designed to represent me professionally. It uses a hybrid search architecture to provide 100% accurate, source-cited information from my resume, ensuring recruiters and interviewers get the data they need instantly via Web and Mobile.
- Hybrid Search: Combines semantic vector search (BGE-Small) with keyword matching for zero-miss retrieval.
- Contextual Chunking: Breaks down resume sections into atomic, context-enriched pieces.
- Real-time Streaming: Chat responses stream token-by-token for a "ChatGPT-like" experience.
- Cross-Platform: Modern Streamlit Web Dashboard + Expo Mobile App.
- LLM Engine: Llama 3.2 (via Ollama)
- Vector Database: Supabase (pgvector)
- Backend API: Flask (Production-hardened with Gunicorn & Gevent)
- Frontend: Streamlit (Web) & Expo/React Native (Mobile)
- Infrastucture: Docker & Docker Compose
- Ollama installed and running (
ollama pull llama3.2) - Python 3.10+
- Node.js & npm (for Mobile)
# Clone the repository
git clone https://github.com/yourusername/resume-rag.git
cd resume-rag
# Install Python dependencies
pip install -r requirements.txt
# Start the Flask Backend
python -m app.apicd mobile
npm install
npx expo start --tunnelNote: Run python update_tunnel.py in the root folder whenever your ngrok URL changes.
To run the entire stack in a productionalized environment:
docker-compose up --build -d| Service | Endpoint |
|---|---|
| Backend API | http://localhost:5000 |
| Streamlit UI | http://localhost:8501 |
| Health Check | http://localhost:5000/health |
resume_rag/
├── app/ # 🧠 Backend & RAG Logic
│ ├── api.py # Flask API (Streaming capable)
│ ├── config.py # Centralized environment config
│ ├── rag_answer.py # Prompt engineering & LLM bridge
│ └── streamlit_app.py # Web Interface
├── mobile/ # 📱 Expo Mobile App
│ ├── app/(tabs)/ # Chat UI Screens
│ └── services/api.ts # Mobile-to-Backend service
├── data/ # 📄 Source Artifacts (resume.md)
├── Dockerfile # Production API image
├── Dockerfile.ui # Production Streamlit image
└── update_tunnel.py # Automated DX tool for mobile tunnelsCreate a .env file in the root:
DATABASE_URL=your_supabase_postgresql_url
APP_ENV=dev
CORS_ORIGINS=*Sahil Jadhav
AI/ML Engineer