1 · LLM app foundations
What an LLM is from an app developer's seat — tokens, context windows, and how sampling turns probabilities into text.
Build with LLMs — embeddings, RAG, agents, evaluation.
The engineering layer on top of large language models: tokens and sampling, embeddings and semantic search, Retrieval-Augmented Generation (RAG), prompt engineering, tool-using agents, vector databases, when to fine-tune vs retrieve vs prompt, and how to evaluate and guard an LLM app. Live LLM/API calls can't run in the browser, so every concept is taught with a self-contained from-scratch implementation you run in Pyodide, with production code (OpenAI / LangChain) shown read-along.
What an LLM is from an app developer's seat — tokens, context windows, and how sampling turns probabilities into text.
Turn text into vectors, measure meaning with cosine similarity, and build a tiny semantic search index from scratch.
Give an LLM your own knowledge: chunk documents, retrieve the relevant pieces, and assemble a grounded prompt — a full toy RAG pipeline.
Few-shot examples, templates, and getting reliable structured (JSON) output you can parse and trust.
The reason→act→observe loop, giving a model tools to call, and the ReAct pattern — build a mini agent that does real work.
What a vector DB does, metadata filtering, and the approximate-nearest-neighbor indexes (IVF, HNSW) that make retrieval fast at scale.
The decision every LLM project faces — when to prompt, when to retrieve, when to fine-tune — plus how training data is built and what LoRA changes.
Measure faithfulness and relevance, catch hallucinations and unsafe output with guardrails, then tie it all together into a complete mini RAG-agent.