This repository contains the presentation materials for the PySprings "DSPy Mastery Series," a 12-month structured exploration of the DSPy framework.
We're launching a structured 12-month exploration of DSPy, the framework that applies familiar Python patterns to AI systems. Instead of manual prompt engineering, DSPy enables declarative programming where you specify what you want and the system automatically optimizes how to achieve it.
This curriculum is being developed collaboratively—your feedback, questions, and real-world applications will shape the content as we pioneer this learning path together.
The series runs on the 2nd Tuesday of each month.
- Session 0: Introduction - AI Development the Python Way
- Session 1: LM Setup - Gateway to AI Services
- Session 2: Data Collection - Building Training Foundations
- Session 3: Signatures - Declaring What You Want
- Session 4: Adapters - The Translation Layer
- Session 5: Basic Modules - Working AI Programs
- Session 6: Metrics - Measuring Success
- Session 7: Optimization - The DSPy Superpower
- Session 8: Advanced Modules - Sophisticated Patterns
- Session 9: Assertions - Reliable AI Systems
- Session 10: Trackers - Production Observability
- Session 11: Retrospective - Mastery Achieved
In addition to the monthly sessions, we have in-depth case studies that demonstrate DSPy concepts applied to real-world projects:
- Sline: A shell command assistant with DSPy-powered prompt optimization. This case study covers signatures, custom adapters, metrics, benchmarking, and MIPROv2 optimization.
Each session's materials are located in a corresponding directory. The main
presentation file for each session is presentation.md. Here's the directory
structure:
.
├── Makefile
├── README.md
├── sessions/
│ ├── session-0/
│ │ ├── presentation.md
│ │ └── code/
│ ├── session-1/
│ │ ├── presentation.md
│ │ └── code/
│ ...
│ └── session-11/
│ ├── presentation.md
│ └── code/
└── case-studies/
└── sline/
├── TOUR.md
└── code/
Build all presentations and case studies to HTML:
makeOutput is written to docs/.
To view the slides from another machine on the local network, start a live-reloading HTTP server:
make serveThis builds everything (if needed), binds to 0.0.0.0:8000, and watches the
presentation sources. Edits to sessions/*/presentation.md,
case-studies/*/TOUR.md, assets/css/*.css, assets/images/*.tex, or the
Makefile trigger an incremental rebuild and any connected browsers refresh
automatically.
Connect from another machine at http://<host>:8000/. Override the bind
address or port with:
make serve HOST=127.0.0.1 PORT=9000Requires livereload in the project virtualenv (uv pip install livereload).