Skip to content

Commit 67928a0

Browse files
README: all 14 modules; CHANGELOG
1 parent 231f243 commit 67928a0

2 files changed

Lines changed: 22 additions & 11 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## 2026-10-27
4+
5+
- Modules 03 to 13: structured output, chat memory, advisors, tool calling, embeddings, RAG,
6+
MCP, agent patterns, evaluation, production and the capstone
7+
- The fake model in the tests resets its recorded prompts on every `reply(...)`
8+
39
## 2026-10-26
410

511
- Modules 00 First Chat, 01 ChatClient in Depth and 02 Prompt Templates

‎README.md‎

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,24 @@ explains the idea, a `TASKS.md` with what to build, and tests that turn green wh
1414
| 00 | [First Chat](00-first-chat) | `ChatClient`, DeepSeek config, tokens | No |
1515
| 01 | [ChatClient in Depth](01-chat-client) | Message roles, options, streaming, no memory | No |
1616
| 02 | [Prompt Templates](02-prompt-templates) | `.st` templates, prompt stuffing, few-shot | No |
17-
| 03 | Structured Output | `.entity(...)`, records, lists, validation | Coming soon |
18-
| 04 | Chat Memory | `MessageChatMemoryAdvisor`, JDBC memory | Coming soon |
19-
| 05 | Advisors | Custom advisors, logging, guardrails | Coming soon |
20-
| 06 | Tool Calling | `@Tool`, calling your own services | Coming soon |
21-
| 07 | Embeddings | Vectors, cosine similarity, pgvector | Coming soon |
22-
| 08 | RAG | Document ETL, `QuestionAnswerAdvisor` | Coming soon |
23-
| 09 | MCP | Build and use an MCP server | Coming soon |
24-
| 10 | Agent Patterns | Chain, routing, orchestrator, evaluator | Coming soon |
25-
| 11 | Evaluation | Testing non-deterministic output | Coming soon |
26-
| 12 | Production | Observability, cost, retries, safety | Coming soon |
27-
| 13 | Capstone | Put it all together, no instructions | Coming soon |
17+
| 03 | [Structured Output](03-structured-output) | `.entity(...)`, lists, retries, validating model output | No |
18+
| 04 | [Chat Memory](04-chat-memory) | `MessageChatMemoryAdvisor`, windows, memory in Postgres | Yes |
19+
| 05 | [Advisors](05-advisors) | Custom advisors, token tracking, guardrails | Yes |
20+
| 06 | [Tool Calling](06-tool-calling) | `@Tool`, the tool loop, `ToolContext`, authorization | Yes |
21+
| 07 | [Embeddings](07-embeddings) | Vectors, cosine similarity, local ONNX, pgvector | Yes |
22+
| 08 | [RAG](08-rag) | ETL, `QuestionAnswerAdvisor`, modular RAG, sources | Yes |
23+
| 09 | [MCP](09-mcp) | MCP server with tools and resources, MCP client | Yes |
24+
| 10 | [Agent Patterns](10-agent-patterns) | Chain, routing, parallel, orchestrator, evaluator | Yes |
25+
| 11 | [Evaluation](11-evaluation) | Golden datasets, retrieval metrics, LLM judge | Yes |
26+
| 12 | [Production](12-production) | Spring Security, resilience, rate limits, caching, metrics | Yes |
27+
| 13 | [Capstone: Gift Finder](13-capstone) | A feature brief and acceptance tests, your design | Yes |
2828

2929
## Stack
3030

3131
- Java 25, Spring Boot 4.1, Spring AI 2.0
3232
- [DeepSeek](https://platform.deepseek.com) for chat
3333
- Local ONNX embeddings and Postgres with pgvector (from module 07)
34+
- The MCP Java SDK (module 09), Spring Security and Actuator (module 12)
3435
- Docker Compose for the modules that need a database (from module 04)
3536

3637
## Get started
@@ -128,6 +129,10 @@ Open `00-first-chat` in your IDE (open the module folder, not the repo root) and
128129
The task tests use a **fake model**: they're instant, free, and work offline. The `live`
129130
tests call DeepSeek for real and cost a fraction of a cent.
130131

132+
From module 04 on, **Docker must be running**: the app starts Postgres with Docker Compose, and
133+
the tests start their own with Testcontainers. Module 07 also downloads a small embedding model
134+
(about 90 MB) the first time.
135+
131136
Each module starts where the previous one ended, so you can jump into any module
132137
even if you skipped one.
133138

0 commit comments

Comments
 (0)