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.

terminal
bash
# 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 dev

This clones the repo, creates a uv-managed virtual environment, installs dependencies (FastAPI, ChromaDB, sentence-transformers, BeautifulSoup), and starts the API server.

.env
bash
# 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-it

The 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…