Environment setup
Welcome! I'm Param. In this course we are going to build a grounded RAG chatbot from scratch. It scrapes real websites, indexes them in ChromaDB, and reranks retrieval results with a cross-encoder so the LLM answers from facts instead of hallucinating.
The end result is a FastAPI service that accepts any public URL, processes its content in the background, and answers questions about it with streaming responses and cited sources. The same pipeline extends to many sites without changing the core code.
# Clone the workshop repository
git clone https://github.com/learnwithparam/rag-chromadb.git
cd rag-chromadb
# One command to set up the environment and run the service
make devThis clones the repo, creates a uv-managed virtual environment, installs dependencies (FastAPI, ChromaDB, sentence-transformers, BeautifulSoup), and starts the API server.
# Copy the example and pick a provider
cp .env.example .env
# Any OpenAI-compatible provider works
LLM_PROVIDER=openrouter
OPENROUTER_API_KEY=your_key_here
OPENROUTER_MODEL=google/gemma-3-12b-itThe LLM provider is pluggable. You only need one key. OpenRouter has a free tier, so it is a safe default if you are starting fresh.
Validation checklist: Environment setup checklist
Loading practice…