80 lines
2.2 KiB
Markdown
80 lines
2.2 KiB
Markdown
# Les 15: RAG + Embeddings — Praat met je documenten
|
|
|
|
> ✅ **Deze les is volledig uitgewerkt**
|
|
|
|
## Lesmateriaal
|
|
|
|
- [Slide Overzicht](../Les15-RAG-Embeddings/Les15-Slide-Overzicht.md)
|
|
- [Docenttekst](../Les15-RAG-Embeddings/Les15-Docenttekst.md)
|
|
- [Lesstof](../Les15-RAG-Embeddings/Les15-Lesstof.md)
|
|
- [Lesopdracht](../Les15-RAG-Embeddings/Les15-Lesopdracht.md)
|
|
- [Huiswerk](../Les15-RAG-Embeddings/Les15-Huiswerk.md)
|
|
|
|
---
|
|
|
|
## Deel
|
|
**Deel 3 — AI Development** (Les 11-16)
|
|
|
|
## Beschrijving
|
|
Hoe laat je een LLM antwoorden op basis van documenten die hij nooit heeft gezien? Antwoord: Retrieval-Augmented Generation (RAG). We bouwen een PDF Q&A-app from scratch met embeddings, vector search (pgvector) en context-injectie.
|
|
|
|
---
|
|
|
|
## Te Behandelen
|
|
|
|
### Theorie
|
|
- Het probleem: LLM kent jouw documenten niet
|
|
- Twee oplossingen: alles meesturen vs. RAG
|
|
- Wat zijn embeddings? (vectoren, semantische gelijkenis)
|
|
- pgvector in Supabase: tabel-setup + index
|
|
- De RAG-loop: chunk → embed → store → query → retrieve → answer
|
|
- Limieten en valkuilen (chunking, recall vs. precision)
|
|
|
|
### Live demo's
|
|
1. Nieuwe Next.js-app + Supabase met pgvector
|
|
2. PDF parsen + chunking strategie
|
|
3. Embeddings genereren via OpenAI `text-embedding-3-small`
|
|
4. Vector-search route + top-K retrieval
|
|
5. Chat-interface met context-injectie
|
|
|
|
---
|
|
|
|
## Tools
|
|
- Vercel AI SDK v6
|
|
- Supabase + pgvector extension
|
|
- OpenAI embeddings API
|
|
- pdf-parse / unpdf voor PDF-extractie
|
|
|
|
---
|
|
|
|
## Lesopdracht (in-class, 60 min)
|
|
|
|
Studenten kijken klassikaal mee. In-class oefening:
|
|
- Upload een eigen PDF in de demo-app
|
|
- Stel 5 vragen — beoordeel de antwoorden
|
|
- Probeer een vraag die NIET in de PDF staat: wat gebeurt er?
|
|
|
|
**Inleveren:** Screenshot van Q&A-sessie + reflectie 1 alinea.
|
|
|
|
---
|
|
|
|
## Huiswerk (take-home)
|
|
|
|
Bouw een eigen RAG-app:
|
|
- Eigen dataset (handleidingen, notities, eigen blog)
|
|
- Werkende vector-search met pgvector
|
|
- Chat-UI met source-attribution (welke chunks gebruikt?)
|
|
- Deploy naar Vercel
|
|
|
|
**Inleveren:** GitHub + Vercel URL.
|
|
|
|
---
|
|
|
|
## Leerdoelen
|
|
Na deze les kan de student:
|
|
- Het RAG-pattern uitleggen aan een collega
|
|
- pgvector configureren in Supabase
|
|
- PDF-content chunken en embedden
|
|
- Een werkende vector-search query schrijven
|
|
- Bepalen wanneer RAG vs. alles-meesturen vs. fine-tuning past
|