Record it from here.
The deck is the whole instrument. Slides, live playgrounds and the terminal output are all on screen — you only need a second window for your notes.
Essentials, talk only
32 min · 32 slides · nothing to run
The whole argument and all eight demos, with the output already on screen and the prose written tight. Nothing to set up, and nothing that can fail on camera.
Or pick another edition
Two questions: how long, and do you run the code live? Every combination is a complete lesson — the slides and the output are identical. Talk only means the output is already on screen and you explain it; work-along means you switch to a terminal and run it.
| Edition | Talk only | Work-along | What it carries |
|---|---|---|---|
| Essentials 32 slides |
~32 min talk only |
~49 min work-along |
The whole arc, tightened. Both pipelines, what an embedding is, the build, and the silent failure — all eight demos. Slides only, no interactive widgets. |
| Short 40 slides |
~37 min talk only |
~56 min work-along |
Everything in the essentials, plus the gotchas, the API key, the practical rules, and two of the interactive playgrounds. |
| Full 55 slides |
~75 min talk only |
~108 min work-along |
Everything: reference tables, the loader gotchas, the re-run trap, troubleshooting, the drills, and all five playgrounds. |
Setup
- Open the deck and press S for the speaker window. Allow the popup the first time, and drag it to your second monitor. Do this before going fullscreen — opening a window from a fullscreen tab can drop you back out of it.
- Click back into the deck and press F for fullscreen.
- Record the deck window only, not the speaker window.
- Going on camera for the introduction? The opening slide keeps its right-hand third and its whole lower band clear, so a camera window sits there without covering anything, and it is the only slide written to be spoken to a camera — about 130 seconds. Close the window as you advance to slide 2; everything after it is voice over slides.
- One monitor? Skip the speaker window and press T instead — the same narration, in a drawer under the slide. Close it before you start recording and read from the lesson page on a phone or tablet.
- Work-along editions only: run
./run.sh checkfirst — it makes a real API call and catches a dead key before you are on camera. Rehearse once and the embedding cache means the take cannot fail on network.
Both dividers drag. One sets how much room the notes get; the other sets how the two slide previews share their half. Grab the small handle on either edge. Each layout remembers both of its own positions, and double-clicking a handle resets just that one.
Keys
| → ← | next / previous slide |
| S | speaker window |
| F | fullscreen |
| O | slide overview — good for jumping |
| B | blank the screen |
| T | narration drawer (for learners, not for recording) |
Need a handout? Add
?print-pdf to the deck's address and print to PDF — one page per slide,
narration included.
Every cue, in order
Where to switch to the terminal, and where to pick up the mouse. Generated from the deck, so it stays in step. These are the work-along editions — a talk edition has nothing to run, and drops the setup slide, so its slide numbers run one lower from the start.
Essentials · 32 slides
| Slide | Title | What happens |
|---|---|---|
| 2 | Two windows, eight demos | ./run.sh check |
| 6 | Models do not read words | python 01_tokens.py |
| 12 | This is not an LLM | python 02_embedding_shape.py |
| 14 | Does that actually hold? | python 03_similar_meaning.py |
| 19 | Load the files | python 04_load.py |
| 21 | Chunk them | python 05_chunk.py |
| 24 | Embed and store — one call does both | python 06_embed_store.py |
| 26 | Ask it something | python 07_query.py "Who founded SpaceX?" |
| 30 | Same store. Same question. Nothing crashes. | python 08_model_mismatch.py |
Short · 40 slides
| Slide | Title | What happens |
|---|---|---|
| 2 | Two windows, eight demos | ./run.sh check |
| 7 | Models do not read words | python 01_tokens.py |
| 14 | This is not an LLM | python 02_embedding_shape.py |
| 16 | Does that actually hold? | python 03_similar_meaning.py |
| 23 | Load the files | python 04_load.py |
| 25 | Chunk them | python 05_chunk.py |
| 28 | Try it: watch the chunks re-cut | interactive — drive it with the mouse |
| 29 | Embed and store — one call does both | python 06_embed_store.py |
| 32 | Ask it something | python 07_query.py "Who founded SpaceX?" |
| 36 | Same store. Same question. Nothing crashes. | python 08_model_mismatch.py |
| 37 | Try it: flip the model, break the system | interactive — drive it with the mouse |
Full · 55 slides
| Slide | Title | What happens |
|---|---|---|
| 3 | Two windows, eight demos | ./run.sh check |
| 8 | Models do not read words | python 01_tokens.py |
| 11 | Try it: when do you actually need RAG? | interactive — drive it with the mouse |
| 16 | This is not an LLM | python 02_embedding_shape.py |
| 18 | Does that actually hold? | python 03_similar_meaning.py |
| 19 | Try it: the neighbourhood map | interactive — drive it with the mouse |
| 31 | Five articles | python3 tools/fetch_docs.py |
| 33 | Load the files | python 04_load.py |
| 36 | Chunk them | python 05_chunk.py |
| 39 | Try it: watch the chunks re-cut | interactive — drive it with the mouse |
| 40 | Embed and store — one call does both | python 06_embed_store.py |
| 43 | Ask it something | python 07_query.py "Who founded SpaceX?" |
| 45 | Try it: ask, and watch the prompt build | interactive — drive it with the mouse |
| 46 | Run it twice, pay twice | python 06_embed_store.py --append |
| 49 | Same store. Same question. Nothing crashes. | python 08_model_mismatch.py |
| 50 | Try it: flip the model, break the system | interactive — drive it with the mouse |