Skip to content

Labs

Hands-on, mostly $0 labs that build the real thing — RAG, agents, evals. They're provider-agnostic: run them on a local model via Ollama (the default — private, $0, great on Apple Silicon) or a free hosted tier (ideal on an Intel/older Mac or a locked-down laptop). Set this up once in Choosing a Model Backend. Each lab uses the three-layer reading model: a main track any technically-literate reader can complete, inline context boxes for SE relevance, go-deeper anchors for the engineering detail, and an "explain it to a customer" close.

The labs are where this site earns its credibility: the translation layer is added on top of real work, never substituted for it.

The labs

LabFocusStackTimeDifficulty
01 · First LLM AppThe core app loop + function callingOllama/hosted, Python~1 hBeginner
02 · Production RAGHybrid retrieval + RRF + rerank + grounding + evalQdrant, BM25, fastembed~2–3 hIntermediate
03 · Agent SystemHub-and-spoke orchestrator-worker + one MCP toolLangGraph, MCP~2–3 hIntermediate
04 · Eval HarnessLLM-as-judge + a regression gate in CIopenai-compatible~2 hIntermediate
05 · Serving & CostQuantization tradeoffs, measured latency/costOllama~1.5 hAdvanced
06 · ObservabilityTracing + cost/latency, live in a dashboardLangfuse~1 hIntermediate
07 · CapstoneEnd-to-end RAG-agent app; $0 local or optional cloudfull stack~4 hAdvanced

Before you start

Two one-time steps, then every lab is just make commands.

1 · A Python virtual environment (keeps lab deps off your system Python and avoids "externally-managed-environment" errors).

Requires Python 3.10+ (Lab 03's MCP adapter needs it). Check first:

bash
python3 --version

⚠️ macOS ships an older python3 (often 3.9). If yours is below 3.10, install a newer one — brew install python@3.12, or use pyenv — and substitute it (e.g. python3.12) in the command below.

bash
python3 -m venv .venv        # from the repo root, once (use python3.12 if needed)
source .venv/bin/activate    # macOS/Linux — each new terminal
# .venv\Scripts\activate     # Windows PowerShell

You'll know it's active when your prompt shows (.venv). The labs call python3 throughout, so the venv's python3 is all you need.

2 · Choose a model backend — a ~2-minute decision: run locally (Ollama) or on a free hosted tier. Every lab uses it.

Suggested order

Start with Lab 01 — it stands up the app loop every later lab builds on. From there, 01 → 02 → 04 (evals early, on purpose) → 03 is the fastest path to credible, measured hands-on proof.

What each lab gives you

  • A Makefile with one-command setup, run, and cleanup.
  • A clear cost note — almost always $0 on local models.
  • Troubleshooting for the things that actually break.
  • The SE translation layer: how you'd demo it and explain it to a non-technical stakeholder.