Files
novi-lessons/Les11-AI-SDK/Les11-Huiswerk.md
2026-05-19 18:50:11 +02:00

6.1 KiB

Les 11 — Huiswerk

Seed-script aanpassen + uitbreiden + reflecteren

Vak: AI-Assisted Development Opleiding: NOVI Hogeschool Utrecht Deadline: Voor de volgende les (Les 12 — Tool Calling) Inleveren: GitHub repo + AI-CHAT.md in root


Doel

Bouwt voort op de lesopdracht (eigen thema-app). Hier:

  • A. Pas het seed-script aan voor jouw eigen thema (mag AI bij helpen)
  • B. Voeg een extra veld toe dat een nieuwe vraag mogelijk maakt
  • C. Schrijf een reflectie over wat werkt en wat niet

Niet klaar met de lesopdracht? Eerst die afmaken — daarna komt dit. De huiswerkopdracht heeft de lesopdracht-app nodig om op te bouwen.


Onderdeel A — Seed-script voor jouw thema (verplicht)

Het Polderfest seed-script is je voorbeeld. Pas het aan voor jouw eigen thema.

Stappen

  1. Open seed-polderfest.ts als referentie
  2. Pas aan voor jouw thema:
    • Domein-arrays (in plaats van adjectives + nouns → wat past bij jouw thema?)
    • Veld-namen + types
    • Bio/beschrijving-fragmenten (de samengestelde tekst-generatie)
  3. Run je seed-script tegen je eigen Supabase
  4. Verifieer 100+ records in Table Editor

Pro tip: AI als seed-script writer

Open OpenCode (of Cursor) en typ:

Hier is het Polderfest seed-script. Pas het aan voor [mijn thema]. Mijn schema is: [paste schema] Genereer 200 records met realistisch-ogende variatie.

AI doet dit in 1-2 minuten. Daarna jij review — controle.

Eisen

  • Werkende seed-script in scripts/seed-[thema].ts
  • Minimaal 200 records in Supabase (was 100 voor lesopdracht — nu meer)
  • Procedureel gegenereerd (niet handmatig — gebruik combinaties)
  • In je README: korte uitleg hoe je 't gegenereerd hebt

Onderdeel B — Extra veld + nieuwe vraag (verplicht)

Voeg minstens 1 extra veld toe aan je schema. Iets dat een nieuwe interessante vraag mogelijk maakt.

Voorbeelden

Bestaand veld Extra veld Nieuwe vraag mogelijk
Restaurant — cuisine dietary_options: string[] "Welke veganistische opties zijn er?"
Scriptie — year keywords: string[] "Vat scripties over AI samen"
Festival-band — tier collaborations: string[] "Welke acts hebben samengewerkt met X?"
Museumstuk — period acquisition_story: string "Welke kunstwerken zijn op een veiling gekocht?"

Stappen

  1. Update je schema.sql met het extra veld
  2. Run de SQL in Supabase (kun je ALTER TABLE gebruiken — niet alles opnieuw)
  3. Update je seed-script om het nieuwe veld te vullen
  4. Re-seed je tabel (eerst wis bestaande records: delete from items;)
  5. Test in chat: stel een vraag die alleen kan dankzij het nieuwe veld

Eisen

  • Nieuw veld toegevoegd aan schema
  • Seed-script gevuld voor nieuwe veld
  • 1 vraag aan chat die specifiek dit veld gebruikt — werkt
  • Screenshot van die vraag + AI antwoord in AI-CHAT.md

Onderdeel C — AI-CHAT.md reflectie (verplicht)

Schrijf een markdown-bestand AI-CHAT.md in je repo-root met:

Sectie 1: Mijn thema

  • Wat is het thema?
  • Waarom kan een gewone LLM deze vragen niet beantwoorden zonder jouw data?
  • Welke velden heb je gekozen en waarom?
  • Welk extra veld heb je toegevoegd (onderdeel B)?

Sectie 2: 3 leuke vragen die werken

Voor elke vraag:

  • De vraag zelf
  • Het antwoord van de AI (screenshot of plak-tekst)
  • Waarom dit een goede demo is

Sectie 3: 1 vraag waar AI moeite mee had

  • Welke vraag was het?
  • Wat ging er mis (vaag antwoord, hallucinatie, foute filter)?
  • Hoe heb je je system prompt aangepast om dit op te lossen?
  • Werkt de vraag nu wel?

Vorm

  • Max 600 woorden in totaal
  • Concrete voorbeelden (geen vage reflectie)
  • Mag wat informeel — geen scriptie-toon nodig

Bonus (optioneel, niet verplicht)

Iets extra's? Mag, geen extra punten maar wel leerzaam:

  • Deploy op Vercel + production URL in je README
  • Loading skeleton in de chat UI (terwijl AI antwoord aan het streamen is)
  • Vergelijking gpt-4o-mini vs gpt-4o — beschrijf het verschil in antwoorden
  • System prompt variaties — drie prompts proberen, screenshot per variant
  • Themed UI — Tailwind aanpassen zodat 't past bij thema (kleuren, fonts)

Inleveren

  1. GitHub repo URL in Brightspace
  2. AI-CHAT.md in repo-root
  3. Seed-script in scripts/seed-[thema].ts
  4. Updated schema in schema.sql (met extra veld)
  5. Screenshots ingevoegd in AI-CHAT.md

Optioneel: Vercel deploy URL als bonus.


Beoordeling

Criterium Punten
A — Seed-script werkt + procedureel + 200+ records 3
B — Extra veld + werkende nieuwe vraag 2
C — AI-CHAT.md aanwezig met 3 secties 3
Chat werkt end-to-end (geen broken pages) 1
Reflectie sectie C is concreet (geen fluff) 1
Totaal 10

Voldoende = 6+. Bonus telt mee bij twijfelgevallen.


Tijd-indicatie

Onderdeel Tijd
A — Seed-script aanpassen (met AI hulp) 30-45 min
B — Schema uitbreiden + nieuwe veld + vraag testen 30 min
C — AI-CHAT.md schrijven met screenshots 30-45 min
Totaal ~1,5 - 2 uur

Veelvoorkomende valkuilen

  • Thema dat LLM al kent — Yelp-clone, Spotify-data. Werkt niet voor demo van data-power.
  • Te weinig records — 200+ vereist, anders is variatie te klein
  • Vage system prompt — "Help bij vragen" werkt slecht. Wees specifiek.
  • Geen reflectie op slechte vragen — sectie C wordt vaak vergeten, terwijl daar je leercurve zit
  • AI verzint feiten — system prompt versterken: "Verzin NIETS. Gebruik alleen onze data."

Tips

  • Schrijf je AI-CHAT.md gaandeweg — niet aan einde. Sla goede prompts/screenshots op zodra ze werken.
  • Maak de prompt-iteratie expliciet — sectie C wordt mooier als je echt 3-4 prompt-versies probeert.
  • Niet bang voor AI in je workflow — laat OpenCode het seed-script schrijven. Tijdwinst is enorm.

Succes! Volgende les pakken we Tool Calling — dan kun je dezelfde demo schaalbaar maken naar 50.000 records.