fix: lessons
This commit is contained in:
@@ -1,130 +1,79 @@
|
||||
# Les 15: Eindproject Werkdag 1
|
||||
# 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)
|
||||
|
||||
---
|
||||
|
||||
## Hoofdstuk
|
||||
**Deel 4: Advanced AI & Deployment** (Les 13-18)
|
||||
## Deel
|
||||
**Deel 3 — AI Development** (Les 11-16)
|
||||
|
||||
## Beschrijving
|
||||
Eerste intensieve werkdag aan je eindproject. Focus op core features bouwen, Q&A sessions, individuele hulp, en probleemoplossing. Docent beschikbaar voor guidance en klassikale sparring.
|
||||
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 (~45 min guidance + 120 min work)
|
||||
## Te Behandelen
|
||||
|
||||
- Q&A session: wat loop je tegen aan?
|
||||
- Cursor tips & tricks review
|
||||
- Debugging strategies en common patterns
|
||||
- Performance optimization basics
|
||||
- Deployment troubleshooting preview
|
||||
- Hands-on assistance beschikbaar
|
||||
- Code review feedback
|
||||
- Feature planning discussion
|
||||
### 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)
|
||||
|
||||
---
|
||||
|
||||
## Doel van deze Werkdag
|
||||
|
||||
- Core features van je eindproject afmaken
|
||||
- Architecture validatie (is je setup goed?)
|
||||
- Database integratie testen
|
||||
- Auth flows uitwerken
|
||||
- First AI feature implementeren
|
||||
- Testing en bug fixes
|
||||
|
||||
---
|
||||
|
||||
### Checklist voor deze Sessie
|
||||
|
||||
**Code Quality:**
|
||||
- [ ] TypeScript geen errors
|
||||
- [ ] No console.logs in production code
|
||||
- [ ] Proper error handling
|
||||
- [ ] Component props typed
|
||||
|
||||
**Features:**
|
||||
- [ ] Core feature 1 werkend
|
||||
- [ ] Core feature 2 werkend
|
||||
- [ ] Data persistence (Supabase)
|
||||
- [ ] Loading states visible
|
||||
- [ ] Error states handled
|
||||
|
||||
**Setup:**
|
||||
- [ ] Project structure clean
|
||||
- [ ] .cursorrules up-to-date
|
||||
- [ ] Environment variables configured
|
||||
- [ ] Git history clean
|
||||
### 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
|
||||
- Cursor
|
||||
- Chrome DevTools
|
||||
- Supabase Dashboard
|
||||
- GitHub
|
||||
- Vercel (optional preview)
|
||||
- Vercel AI SDK v6
|
||||
- Supabase + pgvector extension
|
||||
- OpenAI embeddings API
|
||||
- pdf-parse / unpdf voor PDF-extractie
|
||||
|
||||
---
|
||||
|
||||
## Lesopdracht (4 uur, hands-on werk)
|
||||
## Lesopdracht (in-class, 60 min)
|
||||
|
||||
### Intensive Development Session
|
||||
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?
|
||||
|
||||
**Hou je voortgang bij:**
|
||||
|
||||
**Eerste uur (0-60 min):**
|
||||
- [ ] Maak prioriteiten list van features
|
||||
- [ ] Fix top 3 bugs van vorige sessies
|
||||
- [ ] Test alles lokaal
|
||||
- [ ] Ask docent for guidance if stuck
|
||||
|
||||
**Twee uur (60-120 min):**
|
||||
- [ ] Implementeer core feature 1 (CRUD)
|
||||
- [ ] Implementeer core feature 2
|
||||
- [ ] Add loading/error states
|
||||
- [ ] Styling pass 1
|
||||
|
||||
**Drie uur (120-180 min):**
|
||||
- [ ] Implementeer AI feature (tool calling)
|
||||
- [ ] Test end-to-end flows
|
||||
- [ ] Fix bugs found
|
||||
- [ ] Performance check
|
||||
|
||||
**Vier uur (180-240 min):**
|
||||
- [ ] Polish UI
|
||||
- [ ] Code cleanup
|
||||
- [ ] Document decisions
|
||||
- [ ] Commit and push
|
||||
|
||||
### Deliverable
|
||||
- Werkende core features
|
||||
- Updated PROMPT-LOG.md (add entries)
|
||||
- Updated AI-DECISIONS.md
|
||||
- GitHub commits with progress
|
||||
- Screenshot of working features
|
||||
**Inleveren:** Screenshot van Q&A-sessie + reflectie 1 alinea.
|
||||
|
||||
---
|
||||
|
||||
## Huiswerk
|
||||
## Huiswerk (take-home)
|
||||
|
||||
Continue building your project for next session.
|
||||
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
|
||||
|
||||
**Checklist:**
|
||||
- [ ] Core features complete
|
||||
- [ ] All changes pushed to GitHub
|
||||
- [ ] PROMPT-LOG.md updated with prompts used
|
||||
- [ ] AI-DECISIONS.md updated with choices made
|
||||
- [ ] Ready for next workday session
|
||||
**Inleveren:** GitHub + Vercel URL.
|
||||
|
||||
---
|
||||
|
||||
## Leerdoelen
|
||||
|
||||
Na deze les kan de student:
|
||||
- Zelfstandig problemen identificeren en fixen
|
||||
- Cursor effectief gebruiken voor rapid development
|
||||
- Architectuur decisions valideren en aanpassen
|
||||
- Debugging strategieën toepassen
|
||||
- Features end-to-end implementeren
|
||||
- Development workflows versnellen
|
||||
- Documentatie up-to-date houden
|
||||
- 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
|
||||
|
||||
Reference in New Issue
Block a user