This project is a Retrieval-Augmented Generation (RAG) application built with Streamlit, Ollama, and ChromaDB.
It allows users to upload PDF documents, store them as embeddings, expand user queries using an LLM, and generate citation-backed answers.
- π Upload and process PDF documents
- βοΈ Chunking with RecursiveCharacterTextSplitter
- π Query Expansion using LLM
- π Vector storage with ChromaDB (persistent)
- π€ Answer generation with citations
- π§ Local LLM inference using Ollama
- π₯οΈ Interactive Streamlit UI
- Python
- Streamlit
- LangChain
- Ollama
- ChromaDB
- all-MiniLM embeddings
- Gemma / LLaMA models
.
βββ app.py
βββ data/ # Uploaded PDFs
βββ chromadb/ # Persistent vector store
βββ requirements.txt
βββ README.md
1οΈβ£ Install Ollama
Download and install Ollama:
π https://ollama.com
Pull required models:
ollama pull gemma3
ollama pull all-minilm2οΈβ£ Install dependencies
pip install -r requirements.txt
streamlit run app.py
Upload PDF files from the sidebar
Click Initialize System
Click Process Documents
Enter a question
Click Search
View answers with citations and sources