A Retrieval Augmented Generation (RAG) application that allows you to ask questions about documents. The system includes ManishKumar's resume as a permanent document and supports uploading additional PDFs for temporary use during your session.
For Streamlit Cloud deployment, a separate streamlit_app.py file is provided that combines both frontend and backend functionality into a single Streamlit application.
Clone and navigate to the project:
cd d:\Project\RAG
Install dependencies:
pip install -r requirements.txt
Set up environment variables:
Create a .env file in the project root:
GOOGLE_API_KEY=your_google_api_key_here
LANGSMITH_API_KEY=your_langsmith_api_key_here # Optional
Ensure the resume file exists:
Make sure ManishKumarResume.pdf is in the pdfs/ folder
python run_app.py
start.bat
Start the API server:
uvicorn api:app --host 0.0.0.0 --port 8000 --reload
Start the Streamlit frontend (in another terminal):
streamlit run frontend.py
Access the application:
Ask questions about the resume:
Upload additional documents:
Session management:
GET /health - Health checkPOST /query - Ask questions about documentsPOST /upload - Upload a PDF for the current sessionPOST /cleanup-session - Clean up session documentsGET /loadedpdfs - List available documentsd:\Project\RAG\
βββ api.py # FastAPI backend
βββ frontend.py # Streamlit frontend
βββ textRAG.py # Core RAG implementation
βββ run_app.py # Startup script
βββ start.bat # Windows batch file
βββ requirements.txt # Python dependencies
βββ README.md # Documentation
βββ .env # Environment variables (create this)
βββ pdfs/ # PDF storage
β βββ ManishKumarResume.pdf
βββ test_chroma_db/ # Vector database storage
ManishKumarResume.pdf is in the pdfs/ folderGOOGLE_API_KEY in the .env fileTo extend the application:
api.pytextRAG.pyfrontend.pyapi.pyKey dependencies include:
fastapi - Web API frameworkstreamlit - Web interfacelangchain - LLM frameworkchromadb - Vector databasetransformers - HuggingFace modelsdocling - Document processinggoogle-generativeai - Google Gemini integrationSee requirements.txt for the complete list.
A Retrieval Augmented Generation (RAG) application that allows you to ask questions about documents. The system includes ManishKumar's resume as a permanent document and supports uploading additional PDFs for temporary use during your session.
For Streamlit Cloud deployment, a separate streamlit_app.py file is provided that combines both frontend and backend functionality into a single Streamlit application.
Clone and navigate to the project:
cd d:\Project\RAG
Install dependencies:
pip install -r requirements.txt
Set up environment variables:
Create a .env file in the project root:
GOOGLE_API_KEY=your_google_api_key_here
LANGSMITH_API_KEY=your_langsmith_api_key_here # Optional
Ensure the resume file exists:
Make sure ManishKumarResume.pdf is in the pdfs/ folder
python run_app.py
start.bat
Start the API server:
uvicorn api:app --host 0.0.0.0 --port 8000 --reload
Start the Streamlit frontend (in another terminal):
streamlit run frontend.py
Access the application:
Ask questions about the resume:
Upload additional documents:
Session management:
GET /health - Health checkPOST /query - Ask questions about documentsPOST /upload - Upload a PDF for the current sessionPOST /cleanup-session - Clean up session documentsGET /loadedpdfs - List available documentsd:\Project\RAG\
βββ api.py # FastAPI backend
βββ frontend.py # Streamlit frontend
βββ textRAG.py # Core RAG implementation
βββ run_app.py # Startup script
βββ start.bat # Windows batch file
βββ requirements.txt # Python dependencies
βββ README.md # Documentation
βββ .env # Environment variables (create this)
βββ pdfs/ # PDF storage
β βββ ManishKumarResume.pdf
βββ test_chroma_db/ # Vector database storage
ManishKumarResume.pdf is in the pdfs/ folderGOOGLE_API_KEY in the .env fileTo extend the application:
api.pytextRAG.pyfrontend.pyapi.pyKey dependencies include:
fastapi - Web API frameworkstreamlit - Web interfacelangchain - LLM frameworkchromadb - Vector databasetransformers - HuggingFace modelsdocling - Document processinggoogle-generativeai - Google Gemini integrationSee requirements.txt for the complete list.