A free, open GenAI curriculum built from scratch. Start from zero, build real projects, and work your way up to production AI systems.
Overview
New sessions drop every . Star the repo to get notified. Questions → . Then open that weekend's folder README. That's the start page. There is no root requirements.txt; each session and app has its own (10_RAG/notebooks/requirements.txt, 11_LangGraph/notebooks/requirements.txt, and so on). Copy .env.example to .env. Don't commit the real one. Every weekend is notebooks you actually run. Most also leave you with an app, a paper, or a dataset you can talk about in an interview. Quick naming trap: folder 10_RAG/ is session , which covers modules (memory went into the RAG chatbot, not its own weekend). 11_LangGraph/ is session = module . 12_deepagents/ is . 13_Project_Implementation/ is (Dining Bot). 14_Bedrock_AgentCore/ is — six sub-labs numbered 01. → 06.. 15_LLM_Fine_Tuning/ is (LoRA / QLoRA). 16_Full_Course_Recap/ recaps S00–S15 and does replace S08. 17_Decision_Models/ is . 18_Final_Project/ is . S14 goes beyond the original 23-module syllabus (see Module map).
README
| 18 sessions | 60 notebooks | 12 research papers | 22 HTML decks |
|---|---|---|---|
| Pre-work → S17 | Colab-ready, commented | GPT-1 → DPO + Attention | Open in any browser |
| 9 industry RAG briefs | 11+ in-repo apps | 18 RAG notebooks | 5 LangGraph notebooks |
| Banking → insurance | Streamlit · FastAPI · React | Chunking → MCP helpdesk | Graphs · HITL · teams |
New sessions drop every Saturday / Sunday. Star the repo to get notified. Questions → WhatsApp cohort group.
Table of contents
- Start here
- Prerequisites
- What’s in this repo
- The MISSING chain
- Your instructor
- How this repo is laid out
- Sessions shipped so far
- Full syllabus
- Projects
- Classroom presentations
- Tech stack
- Module map
- Contributing
- License
🚀 Start here
| You are… | Do this |
|---|---|
| New to Python / ML | prereq/ (~3 hours) → then S00 |
| Ready for the course | Open the next session folder. The README inside is the start page. Run notebooks in order. |
| On RAG + memory (S10) | 10_RAG/README.md. Notebooks 01–12 are required. 11, 13, and 14 are the chatbot / memory track. |
| On LangGraph (S11) | 11_LangGraph/README.md. Notebooks 01–03 required; 04–05 are bonus. |
| On Deep Agents (S12) | 12_deepagents/README.md. One notebook: files, AGENT.md, SKILL.md, your tools, subagents. |
| On the Dining Bot capstone (S13) | 13_Project_Implementation/README.md. Spec + sample SQLite DB. |
| On Bedrock AgentCore + AWS (S14) | 14_Bedrock_AgentCore/README.md. Compare frameworks in lab 04, deploy an agent Runtime in 01 / 02 / 03, then ship the full stack (Cognito + React + FastAPI + CDK) in 05 / 06. |
| On Fine-Tuning (S15) | 15_LLM_Fine_Tuning/README.md. Classroom deck (RAG vs LoRA / QLoRA) + Unsloth notebook. |
| Full-course recap (S00–S15) | 16_Full_Course_Recap/README.md. End-of-arc interactive deck — does not replace S08 mid-course recap. |
| On Decision Models (S17) | 17_Decision_Models/README.md. RLCD / Jev classroom deck, 19 Jev use cases, and a three-model comparison. |
| Want the slides | Class presentations. Open those links. Clicking the .html in GitHub just shows source. |
| Want a browser lab | nursnaaz.github.io. Direct URLs are listed under each session below. No API key. |
| Caught up through S16 | Start Decision Models (S17), or ship something from Projects. |
Beginner notebooks (no install):
| Notebook | What you learn | Time |
|---|---|---|
| 01 — Python for GenAI | Variables, loops, functions, dicts, f-strings | 60 min |
| 02 — Math Intuition | Vectors, dot product, softmax | 60 min |
| 03 — Neural Networks | How models learn, in plain English | 60 min |
Then keep the Cheat Sheet open during S00.
⚙️ Prerequisites
| Need | Detail |
|---|---|
| Python | 3.11+ (3.12 is fine). Launch session apps with python3 -m streamlit so you hit the same environment. |
| Git | Clone the repo. Don’t copy folders around by hand. |
| Notebooks | Google Colab if you want zero install, or local Jupyter. |
| API keys | S00–S03 (and most of S04 NB1) need none. S04 NB2 onwards uses Gemini. From S10, put OPENAI_API_KEY in a copy of 10_RAG/.env.example. Anthropic, Cohere, Pinecone, Tavily, LangSmith only when a notebook asks. |
| Local models (S05 / S06 Ollama notebook) | Ollama or LM Studio on your laptop. These will not run in Colab. |
| GPU | Only the S02 training loop wants Colab Pro / a real GPU. Everything else is CPU or an API. |
| Node 18+ | Only if you run a React app (CineMatch, Distill, RAG Studio, Medium article agent, S14 labs 05/06). Streamlit paths don’t need it. |
| AWS account (S14 only) | Bedrock AgentCore, Cognito, App Runner, CloudFront, IAM — plus Docker Desktop and the AWS CDK CLI for labs 05/06. Free-tier eligible; App Runner is the main “left it on overnight” cost — see the S14 cleanup steps. |
git clone https://github.com/nursnaaz/zero-to-genai-engineer.git
cd zero-to-genai-engineer
Then open that weekend’s folder README. That’s the start page. There is no root requirements.txt; each session and app has its own (10_RAG/notebooks/requirements.txt, 11_LangGraph/notebooks/requirements.txt, and so on).
Copy .env.example to .env. Don’t commit the real one.
📦 What’s in this repo
Every weekend is notebooks you actually run. Most also leave you with an app, a paper, or a dataset you can talk about in an interview.
| Kind of material | Count | Where it lives |
|---|---|---|
| Weekend sessions (S00–S15, S17) + pre-work | 18 | Numbered folders + prereq/ |
| Jupyter notebooks | 60 | Session notebooks/, 11 S03 paper summaries, 2 S10 student copies, the RAG Studio and agentic-RAG capstone notebooks, the S14 framework-comparison notebook, and the S15 Unsloth notebook. Ignore 03_GPT_1_2_3/ — leftover from an older layout. |
| RAG teaching notebooks (01–16 + 2 student labs) | 18 | 10_RAG/notebooks/ |
| LangGraph teaching notebooks | 5 | 11_LangGraph/notebooks/ (plus optional self_correcting_rag.ipynb in the capstone folder) |
| Original research PDFs | 12 | S02 Attention Is All You Need + S03 GPT / BERT / alignment |
| Beginner paper-summary notebooks | 11 | 03_GPT_Evolution_and_Alignment/paper_summaries/ |
| Classroom HTML decks | 22 | S03 papers (1) · S08 recap (2) · S10 (12) · S11 (4) · S12 (1) · S15 (1) · S17 (1) |
| PDF slide decks | S00 (3) · S01 (1) · S02 (1) · S05 (slides.pdf) |
Each session’s slides/ |
| Interactive browser tutorials | 25 | nursnaaz.github.io — deep links next to each session |
| Student group RAG datasets | 9 companies | 10_RAG/student_group_datasets/ |
| AWS Bedrock AgentCore labs | 6 | 14_Bedrock_AgentCore/ — LangGraph, Strands, and CrewAI agents on a managed AWS Runtime, plus a full Cognito + React + FastAPI + CDK production deploy (two paths: staged CDK or 10 progressive folders) |
| Fine-tuning (S15) | Deck + Unsloth notebook | 15_LLM_Fine_Tuning/ — PEFT / LoRA / QLoRA, RAG vs fine-tune decision |
| Decision models (S17) | Deck + 19 Jev labs + 3-model comparison | 17_Decision_Models/ — RLCD, Jev, Strands Decider 2B, OpenAI Decisions |
| Shippable apps in this repo | 11+ | See Projects |
Quick naming trap: folder 10_RAG/ is session S10, which covers modules M07 + M08 + M06 (memory went into the RAG chatbot, not its own weekend). 11_LangGraph/ is session S11 = module M10. 12_deepagents/ is S12. 13_Project_Implementation/ is S13 (Dining Bot). 14_Bedrock_AgentCore/ is S14 — six sub-labs numbered 01. → 06.. 15_LLM_Fine_Tuning/ is S15 (LoRA / QLoRA). 16_Full_Course_Recap/ recaps S00–S15 and does not replace S08. 17_Decision_Models/ is S17. 18_Final_Project/ is S18. S14 goes beyond the original 23-module syllabus (see Module map).
🔗 The MISSING chain
Every session exists because the last one left a gap. That chain is how the course is sequenced.
S00 Search (TF-IDF)
└─ MISSING: meaning ─► S01 Embeddings (BoW → FastText)
└─ MISSING: context ─► S02 Transformers (self-attention)
└─ MISSING: GPT story ─► S03 GPT-1→3 + alignment (11 papers)
└─ MISSING: tokens & sampling ─► S04 BPE / Temp / Top-K / Top-P
└─ MISSING: how to RUN a model ─► S05 Ollama · LM Studio · OpenRouter
└─ MISSING: better prompts ─► S06 DSPy · CoT · MIPROv2 · GEPA
└─ MISSING: one API for every model ─► S07 LangChain LCEL
└─ S08 Recap (S00–S07 visual pass)
└─ MISSING: AI that writes the code ─► S09 /goal · /loop
└─ MISSING: YOUR documents ─► S10 RAG + memory + chatbots
└─ MISSING: loops, pause, teams ─► S11 LangGraph
└─ MISSING: files, skills, subagents ─► S12 Deep Agents
└─ MISSING: one product ─► S13 Dining Bot
└─ MISSING: ship it — cloud, identity, real users ─► S14 Bedrock AgentCore + AWS
└─ MISSING: the model still talks like a generic assistant ─► S15 Fine-Tuning (LoRA / QLoRA)
└─ S16 Full-course recap (S00–S15; does not replace S08)
└─ MISSING: even a fine-tuned LLM writes text when you only needed a decision ─► S17 Decision Models (RLCD · Jev)
└─ MISSING: the skills still need a product a hiring manager can click ─► S18 Final projects ← you are here
👨🏫 Your instructor
Mohamed Noordeen Alaudeen — Data Scientist at AWS Generative AI Innovation Center · Dubai
- 🏆 Emerging Global Leader in GenAI — Internet 2.0 Conference Award (2024)
- 👥 29,000+ LinkedIn followers · 1,000+ professionals mentored
- 📚 Packt author (Data Science Interview Questions) · IIM Lucknow · 10+ years in AI/ML
“Learn GenAI the way professionals actually use it — not just theory, but systems that get you hired.”
📁 How this repo is laid out
One numbered folder per weekend. Open that folder’s README first. Class slides are linked in the session table, next to the notebooks in the syllabus, and collected in one list.
| Folder | Session | What’s in it |
|---|---|---|
prereq/ |
Pre-work | 3 notebooks + cheat sheet |
00_How_Search_Engine_Works/ |
S00 | 2 notebooks |
01_Text_to_Numbers/ |
S01 | 2 notebooks + CineMatch |
02_Transformer_Architecture/ |
S02 | Notebook, Vaswani paper, animation |
03_GPT_Evolution_and_Alignment/ |
S03 | GPT from scratch + 11 papers |
04_BPE_Temperature_Top_K_Top_P/ |
S04 | 2 notebooks + 2 Excel workbooks |
05_Local_LLMs_and_API_Providers/ |
S05 | 6 notebooks + Distill |
06_Prompt_Engineering_DSPY_GEPA_COT/ |
S06 | DSPy → few-shot → MIPROv2 → GEPA |
07_LangChain_Notebooks/ |
S07 | One notebook: 4 providers, LCEL |
08_Recap/ |
S08 | Recap of S00–S07 |
09_AgenticCoding_LoopEngineering/ |
S09 | AGENTIC_CODING_GUIDE.md |
10_RAG/ |
S10 | Start here — 16 teaching notebooks, apps, 9 group briefs |
11_LangGraph/ |
S11 | Start here — 5 notebooks, helpdesk, agentic RAG |
12_deepagents/ |
S12 | Start here — LangChain vs LangGraph vs Deep Agents |
13_Project_Implementation/ |
S13 | Start here — Dining Bot: teach dining_bot.py, run modular app.py + dining_bot/ package, sample SQLite DB |
14_Bedrock_AgentCore/ |
S14 | Start here — 6 labs: LangGraph / Strands / CrewAI on AgentCore Runtime, a framework-comparison notebook, and a full Cognito + React + FastAPI + CDK AWS deploy (staged or progressive) |
15_LLM_Fine_Tuning/ |
S15 | Start here — PEFT / LoRA / QLoRA classroom deck + Unsloth notebook |
16_Full_Course_Recap/ |
Recap | Start here — interactive S00→S15 classroom recap (separate from S08) |
17_Decision_Models/ |
S17 | Start here — RLCD / Jev classroom deck, 19 Jev use cases, Jev vs Strands vs OpenAI Decisions |
18_Final_Project/ |
S18 | Start here — final projects. 01 Talking Avatar · 02 Newspaper · 03 Apex Counter · 04 Document desk |
S11 extra (separate repo, not in this clone): Medium article agent.
🗺️ Sessions shipped so far
| Session | Topic | What you build | Slides |
|---|---|---|---|
| Pre-work | Python, vectors, how NNs learn | 3 Colab notebooks + cheat sheet | |
| S00 | How Search Engines Work | TF-IDF engine from scratch | Intro · Search · Claude leak |
| S01 | Text to Numbers | 5 embedding methods, CineMatch | Text to Numbers |
| S02 | Transformer Architecture | Encoder–Decoder in PyTorch, EN→IT | Transformers |
| S03 | GPT Evolution & Alignment | GPT from scratch, 11 papers | GPT papers |
| S04 | BPE & Sampling | Tokenize from scratch, temperature / top-k / top-p | Excel workbooks in the folder |
| S05 | Local LLMs & APIs | Ollama, LM Studio, OpenRouter, Distill | Session PDF |
| S06 | Prompt Optimisation | DSPy, CoT, MIPROv2, GEPA | |
| S07 | LangChain | One API for OpenAI, Claude, Gemini, Ollama | |
| S08 | Recap | Visual pass of S00–S07 | Interactive · Full text |
| S09 | Agentic Coding | /goal vs /loop |
Guides in the folder |
| S10 | RAG + Memory & Chatbots | Chunking → hybrid → RAGAS → chatbot with memory | 12 decks, also next to each notebook below |
| S11 | LangGraph | Graphs, HITL, helpdesk, ReAct→ToT, SQL | 4 decks, also next to each day below |
| S12 | Deep Agents | Chat vs files, AGENT.md, SKILL.md |
Food-delivery deck |
| S13 | Dining Bot capstone | Teach one file + modular package: RAG, read-only SQL, HITL, Weather + Chart MCP, Deep Agents planning | |
| S14 | Bedrock AgentCore & AWS deploy | LangGraph / Strands / CrewAI on a managed Runtime, then Cognito + React + FastAPI + CDK on your own AWS account | |
| S15 | LLM Fine-Tuning | RAG vs fine-tune decision · PEFT · LoRA · quantization · QLoRA · Unsloth lab | Fine-tuning deck |
| S16 | Full-course recap | Interactive pass of S00–S15 (does not replace S08) | Recap deck |
| S17 | Decision Models | RLCD · Jev · 19 use cases · Strands Decider + OpenAI Decisions | RLCD / Jev deck |
| S18 | Final projects | 01 Talking Avatar · 02 Newspaper · 03 Apex Counter · 04 Document desk | Expected avatar demo |
📚 Full syllabus (every session)
Setup lives in each session README. If that weekend has slides, they are linked in the section (and again in the presentation index).
Pre-work — Python, math, neural nets
If S00 looks like a stretch, start here. About three hours of Python, vectors, and how a network learns.
| # | Notebook | Topics | Time |
|---|---|---|---|
| 01 | Python for GenAI | Variables, lists, loops, dicts, f-strings, functions | 60 min |
| 02 | Math intuition | Vectors, dot product, probability, softmax | 60 min |
| 03 | Neural nets | How a model learns, in plain English | 60 min |
Also: prereq/cheatsheet.md — keep it open during S00.
S00 — How Search Engines Work
MISSING after this: TF-IDF misses
"car crash"when you search"automobile accident". That is why S01 exists.
| # | Open | You build | Time |
|---|---|---|---|
| 01 | search_engine.ipynb | Tokenise · stop words · stem · inverted index · TF-IDF rank | 30 min |
| 02 | tfidf_explained.ipynb | Why raw counts fail · TF × IDF scored by hand | 45 min |
Slides: GenAI intro · How search works · Claude Code leak
Browser: How Search Engines Work (~45 min, no API key)
Write-up: How I Taught 100 Students to Build Google’s Core Algorithm in 30 Minutes
No API key. Pure Python.
S01 — Text to Numbers
MISSING after this:
"bank"(river) and"bank"(finance) share one vector. S02 adds context.
| # | Open | You build | Time |
|---|---|---|---|
| 01 | text_to_numbers.ipynb | BoW → TF-IDF → Word2Vec → GloVe → FastText | 60 min |
| 02 | cosine_similarity.ipynb | Why cosine beats Euclidean for meaning | 30 min |
App: CineMatch — FastAPI + React, 5 embedders on 1,000 IMDB movies.
Assignments: Medium article on the 5 methods · Medium article cosine vs Euclidean · product recommender (Amazon descriptions).
Slides: Text to Numbers
Browser: Cosine Similarity & Movie Recommender
Write-up: Words Don’t Have Meaning. Sentences Do.
S02 — Transformer Architecture
MISSING after this: Training from scratch is expensive. S03 is how that architecture became GPT and then ChatGPT.
| Open | You build |
|---|---|
| transformer_from_scratch.ipynb | InputEmbeddings · sinusoidal PE · LayerNorm · residual · FFN · 8-head attention · 6-layer encoder + decoder · EN→IT on opus_books |
Paper: Attention_Is_All_You_Need.pdf
Slides: Transformer architecture
Do these in the browser before the notebook:
| Tutorial | Time | Write-up |
|---|---|---|
| Self-Attention | 30 min | Computed by hand |
| Positional Encoding | 35 min | |
| Multi-Head Attention | 60 min | |
| Transformer code | 60 min |
Assets: SelfAttentionFull.mp4 · attention GIF · architecture spreadsheet.
GPU note: building blocks run on CPU; the training loop wants Colab Pro / H100.
S03 — GPT Evolution & Alignment
M00 (foundations) ends here. S00–S03 take you from raw text to how modern assistants are trained and aligned.
Path: text prediction (GPT-1) → scale (GPT-2/3) → alignment (RLHF → CAI → DPO).
| Track | What you open |
|---|---|
| Overview slides | 14-slide paper deck |
| NB2 — map | TensorFlow minimal GPT (~30 min) |
| NB1 — deep dive | PyTorch Holmes GPT (~2–3 hr) — char / word / BPE, AdamW, attention heatmaps |
| App | holmes_gpt_ui.py — Streamlit generator |
11 papers (PDF + beginner summary notebook each):
| # | Paper | Year | The question it answers |
|---|---|---|---|
| 1 | GPT-1 | 2018 | Does pre-train + fine-tune beat training from scratch? |
| 2 | GPT-2 | 2019 | What if we scale and drop task-specific fine-tuning? |
| 3 | GPT-3 | 2020 | What happens at 175B — few-shot in the prompt? |
| 4 | BERT | 2018 | What if we read both directions? |
| 5 | BART | 2019 | What if we combine BERT + GPT? |
| 6 | InstructGPT / RLHF | 2022 | How does GPT-3 become ChatGPT? |
| 7 | HH-RLHF | 2022 | Helpful and harmless — the Claude research |
| 8 | Constitutional AI | 2022 | Can a written constitution replace human safety labels? |
| 9 | RLAIF | 2023 | Does AI feedback match human feedback at scale? |
| 10 | DPO | 2023 | Can we align without a reward model / PPO? |
| 11 | SELF-REFINE | 2023 | Can a model improve its own outputs? |
Summaries: paper_summaries/. PDFs: papers/.
Browser: BERT for text classification (after paper 4)
S04 — BPE, Temperature, Top-K, Top-P
MISSING from S03: How does the model turn words into IDs? How does it pick the next token?
| # | Open | You implement | Time |
|---|---|---|---|
| Excel | bpe_step_by_step.xlsx |
Watch merge rounds grow a vocab | 15 min |
| Excel | llm_temperature_topp_topk.xlsx |
Sliders on a fixed distribution | 15 min |
| NB1 | BPE Tokenization | build_bpe_vocab() · tokenize_with_bpe() · tiktoken GPT-2 vs GPT-4 |
45 min |
| NB2 | Temperature / Top-K / Top-P | apply_temperature() · filters · Gemini experiments · sample_token() in the correct order |
45 min |
Browser (do these before the Excel / notebooks): Tokens / BPE · Temperature, top-k, top-p · Context window budget
Write-up (BPE): One Word. Two Tokens. Here Is How BPE Builds Them.
Order that matters: temperature → top-K → top-P → sample. Getting this wrong is a common production bug.
S05 — Local LLMs & API Providers
MISSING from S04: One provider’s API is a lock-in. Run a model on your laptop, or switch cloud providers by changing one variable.
| # | Notebook | Where it runs | Time |
|---|---|---|---|
| NB1 | Multi-provider chat() |
Colab or local — OpenAI · Gemini · Anthropic · Ollama · OpenRouter · Databricks | 30 min |
| NB2 | Map-reduce summariser | Split a 50-page doc → map → reduce | 45 min |
| NB3 | Ollama | Laptop only — Phi-3 / Llama 3.2 | 45 min |
| NB4 | OpenRouter | One key, 100+ models, cost compare | 20 min |
| NB5 | LM Studio | Laptop only — OpenAI-compatible :1234 |
30 min |
| NB6 | Databricks serving | Enterprise REST pattern | 15 min |
Demos: apps/multi_provider_race.py · apps/map_reduce_demo.py
Portfolio: Distill — FastAPI + React + Whisper classroom tool (contribute).
Browser: Your first LLM call · Local vs cloud
Slides: S05 session PDF
S06 — Prompt Optimisation (DSPy · MIPROv2 · GEPA)
MISSING from S05: We could call models. Prompts were still handwritten guesses. Treat them as typed, versioned, scored code.
| Day | Optimiser | What it changes | Artifact |
|---|---|---|---|
| S06a | dspy.Signature + ChainOfThought |
Schema → prompt; visible Reasoning: |
cot_zero_shot.json |
| S06b | LabeledFewShot | Random k demos |
cot_few_shot.json |
| S06b | BootstrapFewShot | Keep only traces that pass the metric | cot_boostraped_few_shot.json |
| S06b | BootstrapFewShotWithRandomSearch | Best of N bootstrap runs | cot_bootstraped_rs_few_shot.json |
| S06c | MIPROv2 | Searches the instruction wording + demos | MiproV2Prompt.json |
| S06d | GEPA | Rewrites the instruction from its own errors | generated in-notebook |
Benchmark used throughout: ATIS airline-intent (26 classes).
| File | Use when |
|---|---|
dspy_training.ipynb |
Cloud — all four optimisers |
dspy_training_ollama.ipynb |
Local, no API key |
Browser (before DSPy): Zero-shot / few-shot / CoT · JSON or bust
S07 — LangChain Fundamentals
MISSING from S06: Each notebook talked to one provider with custom glue. LangChain is one interface.
| Notebook | Topics | Time |
|---|---|---|
| langchain_claude_openai_gemini_ollama_stream.ipynb | Unified chat · ChatPromptTemplate · MessagesPlaceholder · InMemoryChatMessageHistory · .stream() · LCEL | pipes |
60 min |
Providers in the same notebook: gpt-4o-mini · Claude Haiku · Gemini Flash-Lite · Ollama llama3.2 / qwen2.5.
Browser: Chatbots forget (why you must send the message list) · First LLM call
S08 — Recap (S00–S07)
Visual pass of the MISSING chain before agentic coding.
S09 — Agentic Coding & Loop Engineering
MISSING from S07: You still typed every line. Spec the goal, verify with tests, loop until green.
| Day | Topic | You learn |
|---|---|---|
| S09a | Agentic coding | Prompting → ReAct → AutoGPT → RALPH → loop · what makes a good /goal · Kiro spec files |
| S09b | Loop engineering | /goal vs /loop · Trigger → Action → Verify → Decide → Stop · Claude Code hooks |
| File | What it is |
|---|---|
AGENTIC_CODING_GUIDE.md |
History, patterns, tooling |
LOOP_ENGINEERING_PLAYBOOK.md |
20+ exercises |
LoopEngineering.md |
Theory |
Browser: ReAct with a calculator — thought → tool → observation → stop.
Demo (external): Bullish Stock Scanner V3. FastAPI + React, 308 tests, built through spec-driven loops.
S10 — RAG + Memory & Chatbots (M07 + M08 + M06)
MISSING from S09: Agents can write software. They still only know training data. RAG grounds answers in your PDFs, policies, and tickets.
Memory & chatbots (M06) live here too: short-term memory, summarisation, long-term
Store, condense-question, streaming, guardrails, and HITL are in S10f + notebooks 13–14.
Start page: 10_RAG/README.md · notebook index: 10_RAG/notebooks/README.md
Browser: Tiny RAG · Chunking · Hybrid + RRF · Citations / refusals · RAG injection · Chat memory · Production challenges
Write-up (Tiny RAG): I Asked ChatGPT About Our Gym’s Refund Policy. It Invented One.
S10a Why RAG
S10b Chunking (LangChain) + same ideas in LlamaIndex
S10c Embeddings → FAISS / Chroma / Pinecone
S10d BM25 → hybrid (RRF) → reranking
S10e RAGAS + DeepEval
S10f Production chatbots = Memory & Chatbots track
S10g Retrieval showdown on one Pinecone index
│
├── 13–14 Production chatbot (+ durable memory) capstone
├── 15 Multimodal RAG extra
├── 16 MCP helpdesk extra · required for S11c
├── RAG Studio FastAPI + React portfolio
└── 9 student group datasets real-company briefs
Core notebooks (required)
| Day | Notebook | Topic | Slides |
|---|---|---|---|
| S10a | 01 — Why RAG | Hallucination vs grounded retrieval | ▶ |
| S10b | 02 — Chunking (LangChain) | 6 chunking strategies | ▶ |
| S10b | 03 — Chunking (LlamaIndex) | Same ideas, second framework | ▶ |
| S10c | 04 — Embeddings | Geometry of meaning | ▶ |
| S10c | 05 — Vector databases | FAISS → Chroma → Pinecone | ▶ |
| Recap of 01–05 | ▶ Revision | ||
| S10d | 06 — Sparse retrieval | BM25 vs dense vs SPLADE | ▶ |
| S10d | 07 — Hybrid search | RRF / weighted fusion | ▶ |
| S10d | 08 — Reranking | Cross-encoder / FlashRank / Cohere | ▶ |
| Pipeline recap | ▶ | ||
| S10e | 09 — RAGAS | Faithfulness, relevancy, context precision / recall | |
| S10e | 10 — DeepEval | CI-native evals, hallucination, G-Eval | |
| S10f | 11 — Production chatbots | Memory · streaming · guardrails · HITL | ▶ |
| S10g | 12 — Retrieval showdown | Dense vs BM25 vs hybrid on one Pinecone index |
Memory & Chatbots — what S10f / 13 / 14 actually teach (M06)
The chatbot module sits next to retrieval on purpose. A production bot is RAG plus memory.
| Topic | Where | What you can do after |
|---|---|---|
Stateless vs thread_id |
NB11 §2–3 | Same id remembers; new id is a new user |
| Short-term memory (checkpointer) | NB11 | InMemorySaver / SQLite — crash-safe turns |
| Token-budget trim (sliding window) | NB11 §5b | Drop oldest turns before the context explodes |
| Summarisation memory | NB11 | Auto-summarise when history crosses a token trigger |
Long-term Store |
NB11 §6 | Preferences that survive across threads |
| Condense-question | NB13 | Rewrite follow-ups (“what about that policy?”) into a standalone query |
| Streaming tokens | NB11 | Token-by-token UI, not a spinner |
| Guardrails | NB11 | Refuse / block before a bad generation |
| Human-in-the-loop | NB11 §9 | Pause a risky tool until a human says yes |
| Observability | NB11 §12 | LangSmith traces |
| Production Streamlit bot | NB13 → production_rag_chatbot/ |
Hybrid retrieve → rerank → generate + citations |
| Same bot + durable memory | NB14 → production_rag_chatbot_memory/ |
Memory that lasts after you close the tab |
| Student labs | 13 STUDENT · 14 STUDENT | Same pipeline, TODOs for you |
S11 reuses condense(), trim_history(), the checkpointer, and Store. We don’t teach them again.
Capstones & extras
| Item | What it is |
|---|---|
| 15 — Multimodal RAG (slides) | Images + text in one index |
| 16 — MCP helpdesk | RAG + SQL tools over MCP. Required before S11 Day 3. |
| RAG Studio (eval slides) | FastAPI + React. Swap retrieval strategies side by side, RAGAS + DeepEval. |
| 9 group datasets | Real-company briefs (below) |
9 student group datasets (cohort project)
Every group ships a cited, refusal-aware support bot and 8 ablation tables (parse → chunk → embed → store → retrieve → fuse → rerank → generate). Spec: REQUIREMENTS_OVERVIEW.md · metrics: EVALUATION_METHODOLOGY.md.
| # | Folder | Bot | Core skill | Data |
|---|---|---|---|---|
| 1 | 01_banking |
Wells Fargo support | Grounded fee/policy Q&A | 3 PDF (60p) + XML |
| 2 | 02_ecommerce |
Amazon seller support | Seller-vs-buyer scope | 3 PDF (56p) + XML |
| 3 | 03_telecom |
Verizon support | Wireless / Fios / international routing | 3 PDF (40p) + XML |
| 4 | 04_legal |
Law-firm contract search | Cross-doc retrieval + client attribution | 5 HTML (~105K words) |
| 5 | 05_healthcare |
NIH-style health info | Must refuse diagnosis | 11k+ XML (download script) |
| 6 | 06_finance_complaints |
Credit-rights helpline | ECOA vs Fair Housing routing | 4 PDF + CSV |
| 7 | 07_airline_travel |
Delta passenger support | Passenger-vs-cargo docs | 2 PDF (45p) + XML |
| 8 | 08_tax_government |
IRS taxpayer help | Structured vs narrative retrieval | 3 PDF (244p) + CSV/XLS |
| 9 | 09_insurance |
State Farm support | State + product-line routing | 5 PDF (343p) + XLSX |
S11 — LangGraph (stateful agents, M10)
MISSING from S10:
ProductionRAGChatbot.chat()is a straight line. It cannot retry retrieval, rewrite a vague question, or pause for a human. LangGraph is that control flow.
Start page: 11_LangGraph/README.md · notebooks: notebooks/README.md
S11a Fundamentals & agents required
S11b Human-in-the-loop required
S11c Multi-agent orchestrator required
├── S11d Reasoning patterns bonus (interview map)
├── S11e SQL agent bonus (Chinook)
├── capstone_agentic_rag/ optional self-correcting RAG
└── medium-article-agent optional FastAPI + React (separate repo)
Clone nursnaaz/medium-article-agent (Python 3.12+, Node 18+). Not bundled in this repo.
| Day | Open | What you do | Time | Slides |
|---|---|---|---|---|
| S11a | 01 — Fundamentals | Draw a graph, wire nodes/edges, build ReAct by hand, then create_agent, checkpointer, stream |
~2 hr | fundamentals |
| S11b | 02 — HITL | interrupt() a risky tool, type yes/no, resume the same thread_id |
~1 hr | HITL |
| S11c | 03 — Orchestrator + app | Supervisor, RAG-as-tool, SQL over MCP, ticket writes pause | ~2 hr | live from the app |
| S11d | 04 — Patterns | Name ReAct, Reflection, Reflexion, REWOO, Tree-of-Thoughts, Self-Discover, and when to use each | ~2 hr | patterns |
| S11e | 05 — SQL agent | Force list-tables → schema → check → run on Chinook | ~1.5 hr | SQL |
API you actually type: StateGraph · MessagesState · ToolNode · tools_condition · Command · interrupt() · MemorySaver · InMemoryStore · create_agent · create_supervisor.
Day 3 graph (the one you run):
top_supervisor
├── knowledge_team → rag_agent (search_knowledge_base) + search_agent (web)
└── ops_team → sql_agent (reads) + ticket_agent (writes → interrupt())
cd 11_LangGraph/multi_agent_orchestrator
python3 -m streamlit run app.py
Try: “What is our refund policy?” · “How many open tickets does Jane Doe have?” · “Add a note that we offered a refund” (then type yes or no).
S12 — LangChain vs LangGraph vs Deep Agents
MISSING from S11: LangChain talks. LangGraph is steps you wrote. Deep Agents is that graph with file tools,
AGENT.md,SKILL.md, your tools, and helpers already attached — so “also add eggs” is not a new Python node.
Start page: 12_deepagents/README.md · notebook · slides
| # | What you run | Proof |
|---|---|---|
| LangChain cell | Shopping list in chat | No files |
| LangGraph cell | write_list → stop |
No add_eggs node |
| Ex 1 | shopping.md then add eggs |
File tools |
| Ex 2 | AGENT.md |
“Gulf Mart” not in the user prompt |
| Ex 3 | SKILL.md |
INV-001 from the how-to |
| Ex 4 | get_store_hours → hours.md |
Your tool + write_file |
| Ex 5 | price-lister helper |
Empty-chat subagent |
API: create_deep_agent · memory= · skills= · tools= · subagents= · write_file (built in).
S13 — Dining Bot (capstone)
MISSING from S12: a product. Dining Bot is one restaurant-manager chat: RAG over policies, read-only SQL over orders, two MCP servers (weather + charts), add menu item only after HITL, and multi-step planning via Deep Agents (
AGENT.md+ skills). The LLM proposes; code validates and executes.
Start page: 13_Project_Implementation/README.md · teach dining_bot.py (one file, SECTION 0→8) · run modular app.py + dining_bot/ · requirement (docx)
cd 13_Project_Implementation
python3.11 -m venv .venv && source .venv/bin/activate # deepagents needs 3.11+
pip install -r requirements.txt
python build_db.py
streamlit run app.py
# optional CLI: python app.py --ask "Show me daily revenue for last week."
S14 — Bedrock AgentCore & Production AWS Deployment
MISSING from S13: Dining Bot runs on your laptop with one shared
.envkey. That is a demo, not a product. S14 is how the same kind of agent gets a managed Runtime, its own identity (Memory / Gateway / Identity), and a real deploy — Cognito login, a CDN URL, a container API, and infrastructure you can tear down and rebuild from code.
Start page: 14_Bedrock_AgentCore/README.md
Six self-contained labs, numbered 01. → 06.. Every Runtime lab starts from an empty AgentCore account — you create your own Memory, Gateway, and Identity. Never paste a classmate’s MEMORY_ID, Gateway credentials, or Runtime ARN.
S14 lab 04 Compare LangGraph vs Strands vs CrewAI, locally, in one notebook ← start here (no AWS)
S14 lab 01 Same ideas on AgentCore, framework = LangGraph (+ Harness tools)
S14 lab 02 Same ideas on AgentCore, framework = Strands (Support Copilot)
S14 lab 03 Same ideas on AgentCore, framework = CrewAI (Competitor Brief)
S14 lab 05 Ship it: Strands agent + Cognito + React + FastAPI + CDK — one staged CDK app
S14 lab 06 Same ship-it stack, taught as 10 cumulative folders instead of stage flags
Recommended order: 04 (compare locally, free) → 01 / 02 / 03 in any order, each is “from scratch” → 05 or 06 (needs lab 02’s Runtime ARN first — pick the staged CDK app or the 10 folders, or do both).
Labs 01–03 — one agent, three frameworks, same AgentCore arc
| Lab | Framework | Flagship demo | You build (in order) |
|---|---|---|---|
01.langraph-agentcore-bedrock |
LangGraph | Research agent + Streamlit (+ managed Harness / Code Interpreter) | Local env → Memory → Gateway → Identity → Runtime → 7 demos |
02.strands-agentcore-bedrock |
Strands | Support Copilot + Streamlit | Local env → Memory → Gateway → Identity → Runtime → 5 demos |
03.crewai-agentcore-bedrock |
CrewAI | Competitor Brief crew (Researcher → Analyst → Writer) + Streamlit | Local env → Memory → Gateway → Identity → Runtime → 5 demos |
Each of these three is genuinely self-contained — you can do just one if that’s the framework you care about. The shape repeats on purpose: Memory (recall across turns) → Gateway (MCP tools behind Cognito M2M auth) → Identity (OAuth provider) → Runtime (agentcore deploy), so the second and third lab teach faster than the first.
Regions (the #1 support question in this session):
| Resource | Region | Why |
|---|---|---|
| Memory / Runtime / Identity | us-east-1 |
Memory ids and Identity providers are region-scoped; Runtimes must match |
| Gateway + Cognito (M2M) | us-west-2 |
Created here by each lab’s scripts/create_mcp_gateway.py |
Always pass --env AWS_REGION=us-east-1 on agentcore deploy — the Runtime does not read your local .env.
Lab 04 — compare the three frameworks locally (no AWS required)
04.framework-power-agents/ — one notebook, powerful_agents_comparison.ipynb, builds the same capable agent three ways (tools, RAG, optional MCP/Gateway, optional Memory) so you see the architectural difference before paying for AWS:
| Framework | Shape | Best for |
|---|---|---|
| LangGraph | Graph / create_agent ReAct loop |
Explicit control flow, tool nodes |
| Strands | Single Agent + tools |
Fast, minimal — a clean tool list |
| CrewAI | Multi-agent crew (roles + tasks) | Researcher → Analyst → Writer style briefs |
cd 14_Bedrock_AgentCore/04.framework-power-agents
uv sync --python 3.11
cp .env.example .env # set OPENAI_API_KEY
source .venv/bin/activate
jupyter notebook powerful_agents_comparison.ipynb
Labs 05 & 06 — ship the full stack on your own AWS account
Both labs deploy the same production stack — they’re two teaching paths to one destination, not two different apps. Pick one, or do both.
05.agentcore-production-deploy/ — takes the Strands Support Copilot from lab 02 and puts a real product in front of it: Cognito username/password login → CloudFront (one HTTPS URL) → S3 (React chat UI) + App Runner (FastAPI) → IAM-invoked AgentCore Runtime. No AWS keys ever reach the browser.
Browser → Cognito login → ID token (JWT)
↓
CloudFront (one HTTPS URL)
├─ /* , /config.json → S3 (React login + chat)
└─ /api/* , /health → App Runner (FastAPI)
│ verifies JWT, then uses an IAM role — no keys — to
▼ call bedrock-agentcore:InvokeAgentRuntime
AgentCore Runtime (Strands Support Copilot, from lab 02)
| Path | What it is | Best for |
|---|---|---|
06.progressive-deploy/ ★ |
Sibling lab — 10 cumulative folders (01_empty_cdk → 10_agentcore_chat); each is a complete, runnable snapshot. Deploy folder N, open folder N+1 to see the delta, repeat. |
Seeing each AWS layer appear one at a time |
05.agentcore-production-deploy/CLASSROOM_10_CDK_DEPLOYS.md |
The same 10 stages, but as one cdk/ app driven by -c stage=1..10 flags |
Once you understand the folders, or if you prefer fewer directories |
Both walk the same 10 checkpoints: empty stack → Cognito pool → SPA app client → demo user → private S3 → CloudFront → React login (chat locked) → FastAPI /health → JWT-locked /api/me → full AgentCore chat.
First CDK deploy is usually 10–20 minutes (one-time account bootstrap). App Runner is the main always-on cost — lab 05’s Cleanup section tears it down; cdk destroy does not delete the AgentCore Runtime/Memory/Gateway/Guardrail from lab 02, so clean those up separately when you’re done.
What we learned building this session: the multi-framework labs (01–03) share almost all of their setup — Memory, Gateway, and Identity are identical concepts across LangGraph, Strands, and CrewAI, only the agent code differs. So labs 05/06 deliberately reuse lab 02’s flagship agent rather than building a fourth one — the point of S14 is deployment shape, not a new agent. Lab 06 exists as its own folder (not buried inside lab 05) because “one big CDK diff” hides which resource unlocked which capability; ten small, runnable, standalone snapshots make that visible.
S15 — LLM Fine-Tuning (PEFT · LoRA · QLoRA)
MISSING from S14: the agent is in the cloud, but it still talks like a generic model. Fine-tuning changes behavior (tone, format, domain phrasing). RAG still owns facts that change and need citations. This session teaches the decision, then the math that makes LoRA / QLoRA practical on one GPU.
Start page: 15_LLM_Fine_Tuning/README.md
| Open | What it is |
|---|---|
| Classroom deck | RAG vs fine-tuning · PEFT · LoRA (ΔW = BA) · quantization (why then how) · QLoRA |
unsloth_finetuning.ipynb |
Hands-on Unsloth fine-tuning lab (GPU recommended) |
| Need | Prefer |
|---|---|
| Fresh facts / citations / policies that change | RAG |
| Tone, format, slang, domain behavior | Fine-tune (LoRA / QLoRA) |
| Both | Hybrid |
S17 — Decision Models (RLCD · Jev)
MISSING from S15 / S16: a fine-tuned LLM still writes text, and its confidence is still something you cannot act on. Decision models return a typed pick plus a calibrated probability. You automate the sure ones and send the rest to a person.
Start page: 17_Decision_Models/README.md
| Open | What it is |
|---|---|
| Classroom deck | Calibration · Brier score · RLHF vs RLVR vs RLCD · parallel decisions · threshold gating · Jev vs Strands Decider 2B vs OpenAI Decisions |
Jev/use_cases/ |
19 runnable labs from the Jev use-cases guide (Easy → Advanced) |
comparison/ |
Same 88 decisions on Jev, local Strands Decider 2B, and OpenAI Decisions |
Copy 17_Decision_Models/Jev/.env.example to Jev/.env and set JEV_KEY. The comparison also needs OPENAI_API_KEY in 17_Decision_Models/.env.
S18 — Final projects
MISSING from S17: a decision model can tell you which call is safe. It does not modernize the .NET Framework desk the company still runs.
Start page: 18_Final_Project/README.md
| Open | What it is |
|---|---|
| 01 AI Talking Avatar | Airport kiosk: listen, retrieve from the NIA corpus, speak, Ditto talking head. Voice is Nova Sonic or Wispr + Kokoro. Expected demo |
| 02 Newspaper Digitizer | A fictional 1954 page in English and Tamil. PaddleOCR boxes, then a local decision model groups each article. No vision model. |
| 03 Apex Counter | ASP.NET Web Forms on .NET Framework 4.0, ported with AWS Transform to Blazor Server on .NET 8. Same SQL Server tables. Windows + Visual Studio. |
| 04 Intelligent Document Desk | English uses Textract boxes. Tamil and Arabic use PaddleOCR boxes plus a Bedrock vision model. Click a value and the box lands on the ink. |
Apex Counter ships the legacy Web Forms app. Students convert a copy with AWS Transform, then run the ground-truth, evaluate, and repair prompts in that project’s README.
🏗️ Projects you can ship
| Project | Session | Stack | What it is |
|---|---|---|---|
| 01 AI Talking Avatar | S18 | Sonic or Wispr+Kokoro, ChromaDB, Ditto, FastAPI | Airport guide that listens, retrieves, speaks, and lip-syncs a photo |
| 02 Newspaper Digitizer | S18 | PaddleOCR, Strands Decider 2B, Streamlit | Group a 1954 newspaper page into articles. Local decision model. English and Tamil. |
| 03 Apex Counter | S18 | ASP.NET Web Forms on .NET Framework 4.0 → Blazor Server on .NET 8, SQL Server | Legacy parts desk. AWS Transform does the port. Students make the Blazor app match. Windows only. |
| 04 Intelligent Document Desk | S18 | Textract, PaddleOCR, Bedrock vision, FastAPI | Click a field on an English, Tamil, or Arabic page and the box lands on the ink. |
| Strands Support Copilot on AWS | S14 | Strands, Bedrock AgentCore, Cognito, React, FastAPI, CDK | Full-stack cloud deploy: JWT-gated chat UI on CloudFront, App Runner API, IAM-invoked agent Runtime — no keys in the browser |
| Dining Bot | S13 | LangGraph, Deep Agents, RAG, SQLite, MCP, HITL | Teach dining_bot.py; run modular app.py + dining_bot/ package + sample DB |
| Self-Correcting Agentic RAG | S11 extra | LangGraph, RAGAS, Streamlit | Grade → rewrite → groundedness loop → escalate |
| Medium Article Agent | S11 extra | LangGraph, FastAPI, React | Ingest PDF/PPTX/HTML → draft → 6 reviewers → HITL → Markdown. Separate repo — not in this clone. |
| RAG Studio | S10 | FastAPI, React, RAGAS, DeepEval | Swap retrieval strategies and compare scores. Eval slides |
| Production RAG chatbot | S10 | Streamlit, hybrid + rerank | Cited answers over a knowledge base |
| RAG chatbot + memory | S10 / M06 | Streamlit, checkpointer / Store | Multi-turn support bot that remembers |
| MCP helpdesk server | S10 extra | MCP, SQL, RAG | Tools the S11 orchestrator actually calls |
| Distill | S05 | FastAPI, React, Whisper | Classroom assessment. Contribute |
| Provider race + map-reduce | S05 | Streamlit | Same prompt to OpenAI, Gemini, Anthropic, Ollama and OpenRouter side by side, plus a long-document summariser |
| CineMatch | S01 | FastAPI, React | 5 embedders, same 1,000 movies |
| Holmes GPT | S03 | PyTorch, Streamlit | A GPT you trained yourself |
| Bullish Stock Scanner V3 | S09 | FastAPI, React, 308 tests | Spec-driven loop engineering, outside this repo |
What they look like
Live captures of the apps in this repo (same style as the Medium article agent README). Click a screenshot to open that project.
Dining Bot — RAG + SQL + HITL + MCP + Deep Agents planning for a restaurant manager.
Helpdesk Orchestrator — supervisor routes RAG, web, SQL, and ticket writes that pause for you.
Self-Correcting Agentic RAG — grade, rewrite, RAGAS, escalate.
Medium Article Agent — 23-node editorial graph (separate repo).
RAG Studio — ingest, swap strategies, chat, evaluate.
Production RAG chatbot — hybrid retrieval + rerank + cited answers.
RAG chatbot + memory — same engine, durable conversation memory.
Distill — transcript in, concept map + adaptive quiz out.
CineMatch — five embedders on the same 1,000 movies.
Holmes GPT — a GPT you trained yourself, streaming one token at a time.
🎮 Classroom presentations
GitHub’s file view shows HTML source, not slides. Use the links below, or the full index.
S00–S11 browser labs (no API key) live on nursnaaz.github.io. Same pairing as that site’s README. Medium write-ups are listed only when the article is live.
| Session | Lab | Medium |
|---|---|---|
| S00 | How search engines work | TF-IDF / 100 students |
| S01 | Cosine similarity & movie recommender | Words don’t have meaning |
| S02 | Self-attention | Computed by hand |
| S02 | Positional encoding | |
| S02 | Multi-head attention | |
| S02 | Transformer code | |
| S03 | BERT classification | |
| S04 | Tokens / BPE | One word, two tokens |
| S04 | Sampling | |
| S04 | Context window | |
| S05 | First LLM call | |
| S05 | Local vs cloud | |
| S06 | Zero-shot / few-shot / CoT | |
| S06 | JSON or bust | |
| S07 | Chatbots forget | |
| S09 / S11 | ReAct, one tool | |
| S10 | Tiny RAG | The 30-day lie |
| S10 | Chunking | |
| S10 | Hybrid + RRF | |
| S10 | Citations | |
| S10 | RAG injection | |
| S10 | Production challenges | |
| S10f | Chat memory | |
| S11 | HITL | |
| S11 | MCP | |
| S11 | Securing agents |
| Session | Presentation |
|---|---|
| S00 | GenAI intro (PDF) |
| S00 | How search engines work (PDF) |
| S00 | Claude Code leak (PDF) |
| S01 | Text to Numbers (PDF) |
| S02 | Transformer architecture (PDF) |
| S03 | GPT papers (14 slides) |
| S05 | Local LLMs & APIs (PDF) |
| S08 | Recap, interactive |
| S08 | Recap, full text |
| S10a | Why RAG |
| S10b | Chunking (LangChain) |
| S10b | Chunking (LlamaIndex) |
| S10c | Embeddings |
| S10c | Vector databases |
| S10c | Revision 01–05 |
| S10d | Why BM25 |
| S10d | Hybrid search |
| S10d | Reranking |
| S10d | Full pipeline recap |
| S10f | Production chatbots / memory |
| S10 extra | Multimodal RAG |
| S10 extra | RAG Studio evaluation |
| S11a | LangGraph fundamentals |
| S11b | Human-in-the-loop |
| S11d | Reasoning patterns |
| S11e | SQL agent |
| S12 | Why Deep Agents |
| S15 | Fine-tuning · LoRA · QLoRA |
| Full course | S00–S15 interactive recap (does not replace S08) |
| S17 | RLCD · the training behind Jev |
S04, S06, S07, S09, S10e, and S10g are notebook- or guide-led. S11c is the Streamlit orchestrator. S13 is the Dining Bot. S14 is lab-README-led (no browser tutorial). S15 has the fine-tuning deck + Unsloth notebook. Use 16_Full_Course_Recap/ for an end-of-arc pass through S00–S15. S17 has the decision-models deck.
🛠️ Tech stack (when each tool first appears)
| Purpose | Tools | First used |
|---|---|---|
| Language / notebooks | Python 3.11+ · Jupyter / Colab | Pre-work |
| Classical search | TF-IDF · inverted index | S00 |
| Embeddings | BoW · TF-IDF · Word2Vec · GloVe · FastText · sentence-transformers | S01, S10c |
| Deep learning | PyTorch · TensorFlow/Keras | S02–S03 |
| Tokenisation / sampling | BPE from scratch · tiktoken · temperature / top-k / top-p | S04 |
| Cloud LLMs | OpenAI · Anthropic · Gemini | S04–S07 |
| Local / multi-model | Ollama · LM Studio · OpenRouter · Databricks | S05 |
| Prompt compilers | DSPy (LabeledFewShot · Bootstrap · MIPROv2 · GEPA) | S06 |
| Orchestration | LangChain LCEL · create_agent |
S07, S10f |
| Vector stores | FAISS · Chroma · Pinecone | S10c |
| Sparse / hybrid | BM25 · SPLADE · RRF | S10d |
| Rerank | Cross-encoder · FlashRank · Cohere | S10d |
| Eval | RAGAS · DeepEval | S10e |
| Memory | Checkpointer · token trim · summarisation · Store · condense-question |
S10f (M06) |
| Guardrails | Input/output screens, groundedness refusal, healthcare diagnosis refusal | NB11, healthcare brief |
| Agents / graphs | LangGraph · MCP · create_supervisor · Deep Agents |
NB16, S11, S12 |
| LlamaIndex | Chunking (same ideas as LangChain NB02) | NB03 |
| UI / deploy | Streamlit · FastAPI · React · Docker Compose | S01+ · Medium article agent |
| Agent frameworks (cloud) | Strands · CrewAI (LangGraph again, on a managed Runtime) | S14 |
| Managed agent hosting | Amazon Bedrock AgentCore — Runtime, Memory, Gateway, Identity | S14 |
| Cloud identity & hosting | Cognito · App Runner · CloudFront · S3 · IAM | S14 |
| Infra as code | AWS CDK (Python) | S14 lab 05 / lab 06 |
| Fine-tuning | PEFT · LoRA · QLoRA · Unsloth · quantization (INT8 / NF4) | S15 |
| Decision models | Jev (TypeSafe) · Strands Decider 2B · OpenAI Decisions API | S17 |
🧭 Where the 23-module syllabus stands
| Status | Modules |
|---|---|
| ✅ Shipped in this repo | M00–M12 · M15 · M16 · M18 · M19 · M20 (sessions S00–S15) |
| ✅ M06 Memory & Chatbots | Also done in S10 (notebooks 11, 13, 14) |
| ✅ M09 LangChain Agents | Also done in S11a (ToolNode, create_agent, ReAct) |
| ✅ M11 CrewAI | Shipped in S14 lab 03 (Runtime) and lab 04 (local comparison) |
| ✅ M19 Fine-tuning (LoRA / QLoRA) | Shipped in S15 (deck + Unsloth notebook) |
| 🔜 Still ahead | Dedicated document/code modules · deeper LLMOps · business capstone polish |
| Module | Topic | Covered in | Presentation | Status |
|---|---|---|---|---|
| M00 | Foundations: Search → Text → Transformers → GPT | S00–S03 | S00 PDFs · S01 · S02 · S03 GPT papers | ✅ |
| M01 | Tokenization & sampling | S04 | — | ✅ |
| M02 | Local LLMs & multi-model APIs | S05 — NB1 (OpenAI, Gemini, Anthropic, Ollama, OpenRouter, Databricks), NB4 OpenRouter, race app | S05 PDF | ✅ |
| M03 | Prompt engineering + LangChain | S06a/b + S07 | — | ✅ |
| M04 | MIPROv2 & GEPA | S06c/d | — | ✅ |
| M05 | Agentic coding & loop engineering | S09 | — | ✅ |
| M06 | Memory & chatbots | Also done in S10f, NB11, NB13, NB14 | Production chatbots | ✅ in S10 |
| M07 | RAG basics | S10a–c | Why RAG · chunking · LlamaIndex · embeddings · vector DBs | ✅ |
| M08 | Production RAG | S10d–g + extras | BM25 · hybrid · rerank · pipeline · multimodal | ✅ |
| M09 | LangChain agents | Also done in S11a (ToolNode, create_agent, ReAct by hand) |
Fundamentals | ✅ in S11 |
| M10 | LangGraph | S11a–e | Fundamentals · HITL · patterns · SQL | ✅ |
| M11 | CrewAI | S14 lab 03 (on AgentCore Runtime) + lab 04 (local, side-by-side with LangGraph/Strands) | ✅ | |
| M12 | MCP | NB16 · MCP helpdesk server · S11c orchestrator (SQL + RAG tools over MCP) | ✅ | |
| M13 | Document intelligence | S10 ingestion is the start | 🔜 | |
| M14 | Code intelligence | 🔜 | ||
| M15 | Multimodal | NB15 | Multimodal RAG | ✅ |
| M16 | FastAPI + Docker | CineMatch · Distill · RAG Studio · Medium article agent (Dockerfile + Compose) |
✅ | |
| M17 | LLMOps & evaluation | S10e RAGAS/DeepEval, LangSmith in S10f | 🔜 | |
| M18 | Guardrails & safety | NB11 · production chatbot · healthcare brief (must refuse diagnosis) | Production chatbots | ✅ |
| M19 | Fine-tuning (LoRA / QLoRA) | S15 deck + Unsloth notebook (S03 DPO paper is alignment theory) | Fine-tuning deck | ✅ |
| M20 | LlamaIndex | NB03 | LlamaIndex chunking | ✅ |
| M21–M22 | Domain + business capstone | Dining Bot is the build; 9 RAG group briefs were the rehearsal | 🚧 S13 |
S14 goes beyond the original 23 modules. Bedrock AgentCore hosting, Cognito authentication, and CDK infrastructure-as-code were not in the M00–M22 plan — they came out of a straightforward question after S13: the agent works, now how do I actually ship it? Treat S14 as the course’s first cloud-deployment module, layered on top of the syllabus rather than replacing a slot in it. S15 fills M19 (fine-tuning) that the earlier map still listed as ahead.
🤝 Contributing
Cohort questions go to WhatsApp, not Discord. For typos, broken links, or notebook bugs, see CONTRIBUTING.md.
📄 License
Source code and course materials in this repository are released under the MIT License.
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add nursnaaz/zero-to-genai-engineer