feat: ChatGPT-reeks, zes handleidingen voor Custom GPT's voor school

Schoolgids-assistent, Ouderbrief-assistent, Toetsweekplanner, Lesmateriaal-check,
Studiecoach en Notulen-assistent, gebouwd en getest in een ChatGPT Business-werkruimte,
met instructies, fictieve documenten, schermafbeeldingen en gebouwde PDF's.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Guido van Dijk
2026-09-21 16:21:52 +02:00
commit 8a1db19b52
86 changed files with 2187 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
# Gebouwde uitvoer: maak je met python3 build.py in elke map. De PDF's staan wel in git.
*.html
*.docx
!00-presentatie/project/slides/*.html
__pycache__/
.*-embed.html
# Lokaal gereedschap, niet voor de uitgave
_gereedschap/extract.py
NOTITIES-intern.md
# Lokaal gereedschap
_gereedschap/blur.py
Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env python3
"""Bouwt handleiding-chatgpt-schoolgids-assistent.html, .pdf en .docx. Gebruik: python3 build.py
Het echte werk staat in ../_gereedschap/build_handleiding.py (gedeeld door alle handleidingen)."""
import runpy, sys
from pathlib import Path
sys.argv = ["build_handleiding.py", str(Path(__file__).resolve().parent / "handleiding-chatgpt-schoolgids-assistent.md")]
runpy.run_path(str(Path(__file__).resolve().parent.parent / "_gereedschap" / "build_handleiding.py"), run_name="__main__")
@@ -0,0 +1,315 @@
<!--
VOOR DE BEWERKER
Handleiding 1 van de ChatGPT-reeks: de Schoolgids-assistent als Custom GPT in ChatGPT.
Beelden in beelden/, vastgelegd op 21 september 2026 (ChatGPT Business-werkruimte, Nederlandse
interface). Accountnaam, e-mailadres, werkruimtenaam en bestaande GPT's zijn in de beelden vervaagd.
Omzetten naar HTML, PDF en Word: python3 build.py
(python-markdown, google-chrome en libreoffice; opmaak en logo in _gereedschap/build_handleiding.py)
Opmaakafspraken: zie README.md.
Bestanden in deze map:
schoolgids-voorbeeldcollege.pdf de fictieve schoolgids (zelfde als in de Dify- en Copilot-reeks)
instructies.txt de instructie van de GPT, om te plakken
-->
# Bouwen in ChatGPT: de Schoolgids-assistent
**Handleiding 1 van de reeks GPT's voor school**
LeX Consultancy B.V. · 21 september 2026
Je bouwt een GPT die vragen van ouders en leerlingen beantwoordt uit de schoolgids, met het hoofdstuk erbij, en die doorverwijst als het antwoord er niet in staat. De schoolgids gaat als bestand mee: in ChatGPT heeft een GPT een echte kennisbank, dus de tekst hoeft niet in de instructie.
Dit is de tegenhanger van handleiding 2 uit de Dify-reeks (een agent met eigen kennisbank) en handleiding 1 uit de Copilot-reeks (waar de schoolgids in de instructie moest). Wie een van beide kent, herkent alles. Wie nog nooit een GPT maakte, kan hier gewoon beginnen: deze handleiding legt de editor uit, de volgende vijf verwijzen ernaar.
Deze handleiding volgt ChatGPT zoals het er op 21 september 2026 uitziet, in een werkruimte van ChatGPT Business met Nederlandse interface. OpenAI verandert de schermen regelmatig: wijkt je scherm af, volg dan wat je ziet en niet wat hier staat.
**Zo lees je deze handleiding**
| Vorm | Betekenis |
| --- | --- |
| 1. 2. 3. | Wat je doet: klikken, kiezen, openen |
| **Vet** | Een knop, menu of veld zoals het op je scherm staat |
| Tabel *Wat je intypt* | Waarden die je in een formulierveld zet |
| Grijs kader *Intypen* | Tekst die je letterlijk overtypt of plakt |
| Oranje kader | Een valkuil die je anders zelf ontdekt |
| Groen kader *Zelf kiezen* | Een plek waar je ons voorbeeld kunt vervangen door je eigen materiaal, stijl of prompt |
> **Welk abonnement heb je?** Een GPT **gebruiken** kan met elk ChatGPT-account, ook gratis. Een GPT **maken** kan alleen met Plus, Pro, Business (voorheen Team), Edu of Enterprise. Linksonder in ChatGPT staat bij je naam welke werkruimte en welk abonnement je hebt. Deze handleiding is gemaakt in een Business-werkruimte; in Plus zien de schermen er hetzelfde uit, maar ontbreken de opties om binnen een werkruimte te delen.
---
<!-- ontwerpkaart -->
## De ontwerpkaart van deze app
Voordat we gingen klikken, is deze kaart ingevuld (de lege kaart staat in de bijlage Ontwerpkaart van de Dify-reeks). Vul voor je eigen GPT dezelfde vijf vakken in.
| 1. Voor wie | 2. Wat gaat erin |
| --- | --- |
| Een ouder die om 21:00 wil weten of een verlofaanvraag nog kan, en een leerling die niet weet of de telefoon in de pauze mag. Beiden zonder zin om de schoolgids te lezen. | Een vraag in gewone taal. De schoolgids (pdf) zit als kennisbestand in de GPT. |
| 3. Wat komt eruit | 4. Waar moet hij zich aan houden |
| --- | --- |
| Een kort antwoord op B1-niveau met het hoofdstuk erbij, of "dat staat niet in de schoolgids" met een verwijzing naar receptie of mentor. | Alleen de schoolgids; ouders met u, leerlingen met je; geen oordeel over een individuele leerling; niet naar namen vragen; niet op internet zoeken. |
**5. Waaraan zie je dat het werkt**
| Test | Wat gaat erin | Wat moet eruit komen |
| --- | --- | --- |
| 1 | Mag ik mijn telefoon gebruiken in de pauze? | Ja, met (schoolgids, hoofdstuk 4) |
| 2 | Wanneer begint de kerstvakantie? | Staat niet in de schoolgids; verwijzing naar receptie of mentor |
| 3 (de lastige) | Mijn dochter uit 2b heeft drie onvoldoendes, blijft ze zitten? | Geen oordeel; naar de mentor |
<!-- /ontwerpkaart -->
## Lees dit eerst: wat mag en wat niet
| Wat | Afspraak |
| --- | --- |
| Welk account | Bouw en gebruik GPT's voor school in een werkruimte van de school (Business, Edu of Enterprise). Daar worden gesprekken en bestanden niet gebruikt om modellen te trainen; ChatGPT zegt dat onderaan elke chat. In een persoonlijk Plus-account gelden de consumentenvoorwaarden en is er geen verwerkersovereenkomst met de school. |
| Leerlingen | ChatGPT is niet toegestaan onder 13 jaar en tussen 13 en 18 alleen met toestemming van ouders. Een GPT voor leerlingen kan dus alleen via een account dat de school beheert, met de privacyfunctionaris erbij. In deze handleiding ben jij de "leerling". |
| Wat erin gaat | De schoolgids is openbaar en bevat geen persoonsgegevens; die mag als kennisbestand mee. Leerlinglijsten, cijfers en dossiers niet. |
| Delen | Een GPT is na het maken privé. **Iedereen met de link** en de **GPT-winkel** zijn openbaar: ook mensen buiten de school. Voor collega's kies je de werkruimte. |
| Kosten | In het abonnement dat je al hebt. Een GPT verbruikt geen aparte credits; wel telt elk bericht mee in de berichtlimiet van het model. |
---
## Voorbereiding
- Een ChatGPT-account met een abonnement dat GPT's kan maken (zie het kader hierboven).
- De schoolgids `schoolgids-voorbeeldcollege.pdf` uit deze map: zes hoofdstukken, fictief, dezelfde als in de Dify- en Copilot-reeks.
- De tekst van de instructie in `instructies.txt`.
> **Zelf kiezen: de schoolgids.** Elke eigen schoolgids werkt, als pdf of Word. Verwijder eerst de hoofdstukken die je niet door een GPT wilt laten beantwoorden (bijvoorbeeld klachtenregeling of schorsingsbeleid) en controleer dat er geen namen van leerlingen in staan.
---
## Stap 1. Open de GPT-editor
1. Ga naar chatgpt.com en klik in het linkermenu op **GPT's**. Rechtsboven staat **Maken**; of ga direct naar chatgpt.com/gpts/editor.
2. De editor opent op het tabblad **Maken**: een chat met een bouwhulp die vraagt wat je wilt maken. Die slaan we over. Klik op **Configureren**.
![De GPT-editor: links Maken en Configureren, rechts Voorbeeld](beelden/01-nieuwe-gpt.jpg)
3. Het formulier heeft van boven naar beneden: een pictogram, **Naam**, **Beschrijving**, **Instructies**, **Gespreksopeningen**, **Kennis**, **Aangeraden model**, **Mogelijkheden** en **Handelingen**. Rechts staat **Voorbeeld**: een chat met de GPT zoals hij nu is.
![Het lege formulier onder Configureren](beelden/02-configureren-leeg.jpg)
> Je kunt de bouwhulp onder **Maken** ook gebruiken: beschrijf in gewone taal wat je wilt en hij vult naam, instructie en startvragen in. Dat is leuk voor een eerste indruk, maar je weet dan niet precies wat er in de instructie staat. In deze reeks vullen we alles zelf in, zodat de instructie in `instructies.txt` klopt met wat de GPT doet.
---
## Stap 2. Naam, beschrijving en instructie
1. Vul naam en beschrijving in.
| Veld op het scherm | Wat je intypt |
| --- | --- |
| Naam | `Schoolgids-assistent` |
| Beschrijving | `Beantwoordt vragen van ouders en leerlingen over de schoolregels van Het Voorbeeldcollege, met verwijzing naar het hoofdstuk van de schoolgids.` |
2. Klik in **Instructies** en plak de tekst uit `instructies.txt`:
```
Je bent de Schoolgids-assistent van Het Voorbeeldcollege. Je beantwoordt vragen van ouders en leerlingen over de schoolregels. Je gebruikt alleen de schoolgids die als kennisbestand is meegegeven (schoolgids-voorbeeldcollege.pdf). Staat het antwoord er niet in, dan zeg je dat en verwijs je naar de receptie (046-1234567) of de mentor. Je verzint geen regels, tijden of namen.
Zo antwoord je:
- Kort en concreet, in gewoon Nederlands (taalniveau B1). Ouders spreek je aan met u, leerlingen met je; kies op basis van de vraag.
- Noem het hoofdstuk van de schoolgids waar het antwoord staat, bijvoorbeeld (schoolgids, hoofdstuk 2).
- Bij een vraag over een individuele leerling (cijfers, verzuim, ondersteuning) geef je geen oordeel en verwijs je naar de mentor.
- Je vraagt niet naar namen van leerlingen en bewaart niets.
- Je zoekt niet op internet.
```
De instructie is 850 tekens. In de Copilot-versie was hij 3.000, omdat de hele schoolgids erin moest; hier verwijst één zin naar het kennisbestand. De laatste regel, "Je zoekt niet op internet", staat er voor de zekerheid: de zoekfunctie zetten we in stap 4 uit, maar de regel kost niets.
![Naam, beschrijving en instructie ingevuld; rechts verschijnt de GPT in Voorbeeld](beelden/03-naam-beschrijving-instructie.jpg)
> Zodra je begint te typen, maakt ChatGPT een concept aan (het adres in de browser verandert naar /gpts/editor/g-...). Alles wat je daarna invult, wordt automatisch bewaard. Tot je op **Maken** klikt, is de GPT een concept dat alleen jij ziet.
---
## Stap 3. Gespreksopeningen
Gespreksopeningen zijn de knoppen die een gebruiker ziet als hij de GPT opent. Er is geen maximum; wij houden het op drie.
1. Klik in het veld onder **Gespreksopeningen** en typ de eerste. Zodra je typt, verschijnt eronder een nieuw leeg veld.
| Gespreksopening |
| --- |
| `Mag ik mijn telefoon gebruiken in de pauze?` |
| `Hoe meld ik mijn kind ziek?` |
| `Hoeveel toetsen mag ik per week krijgen?` |
![De drie gespreksopeningen, rechts als knoppen in Voorbeeld](beelden/04-gespreksopeningen.jpg)
---
## Stap 4. Kennis, model en mogelijkheden
1. Klik onder **Kennis** op **Bestanden uploaden** en kies `schoolgids-voorbeeldcollege.pdf`. Het bestand verschijnt als kaartje met een kruisje om het weer te verwijderen. Een GPT mag tot twintig bestanden hebben.
2. Kies onder **Aangeraden model** het snelle model: **GPT-5.6 Sol (gpt-5-6-instant)**. Daarover zo meer.
3. Onder **Mogelijkheden** staat **Afbeeldingen genereren** standaard aan; zet dat uit. **Zoeken op het web**, **Apps** en **Code-interpreter en gegevensanalyse** blijven uit. Deze GPT hoeft alleen te lezen en te antwoorden.
4. **Handelingen** laat je leeg. Dat is de plek voor koppelingen met externe systemen (zoals de zoektool in de Dify-reeks); daar komen we in handleiding 4 op terug.
![Kennis met de schoolgids, het aangeraden model en de mogelijkheden](beelden/05-kennis-en-mogelijkheden.jpg)
> **Waarom een aangeraden model?** Zonder keuze gebruikt de GPT het model dat de gebruiker zelf heeft ingesteld, en in Voorbeeld is dat het zwaarste denkmodel (**6 Pro**). In onze eerste test dacht dat model 34 seconden na en antwoordde het toen zonder in de schoolgids te kijken: "Dat hangt af van de regels op jouw school of werk." Met het snelle model kwam het juiste antwoord in drie seconden, met het hoofdstuk erbij. Voor een GPT die uit een document voorleest, is nadenken niet nodig; voor de Toetsweekplanner (handleiding 3) ook niet. Kies dus het snelle model, en laat de gebruiker het zelf zwaarder zetten als hij wil.
![Het zware model sloeg de schoolgids over](beelden/06-antwoord-zonder-schoolgids.jpg)
---
## Stap 5. Test in Voorbeeld
1. Klik rechts in **Voorbeeld** op de knop naast het berichtvak (**Denkinspanning**). Er verschijnt een schuif; sleep hem helemaal naar links tot er **Instant** staat. Als je het aangeraden model hebt ingesteld, staat hij daar al.
![De schuif Denkinspanning, van Instant tot 6 Pro](beelden/07-denkinspanning.jpg)
2. Stel de eerste testvraag.
| Bericht | Wat je intypt |
| --- | --- |
| 1 | `Mag ik mijn telefoon gebruiken in de pauze?` |
Het antwoord: ja, in de pauzes en in de aula, tijdens de les in de telefoontas, met **(schoolgids, hoofdstuk 4: Telefoons en laptops)**. Onder het antwoord staat **Bronnen**: klik erop en je ziet welk stuk van de pdf is gebruikt.
![Het antwoord met hoofdstuk en Bronnen](beelden/08-antwoord-hoofdstuk-4.jpg)
3. Stel de twee andere testvragen.
| Bericht | Wat je intypt |
| --- | --- |
| 2 | `Wanneer begint de kerstvakantie?` |
| 3 | `Mijn dochter Sanne uit 2b heeft drie onvoldoendes. Blijft ze zitten?` |
Op de eerste: "Dat staat niet in de schoolgids", met het nummer van de receptie. Op de tweede: "Dat kan ik niet beoordelen", geen woord over Sanne, en een verwijzing naar de mentor met hoofdstuk 5.
![De kerstvakantie staat er niet in; over Sanne geen oordeel](beelden/09-kerstvakantie-en-cijfers.jpg)
> Het gesprek in **Voorbeeld** wordt niet bewaard. Sluit je de editor, dan is het weg. Dat is handig om te testen (elke keer schoon) en lastig als je een antwoord wilt bewaren: kopieer het dan.
---
## Stap 6. Maak de GPT
1. Klik rechtsboven op **Maken**. Het venster **GPT delen** verschijnt.
![Het venster GPT delen](beelden/10-gpt-delen.jpg)
2. Onder **Toegang** staat **Alleen op uitnodiging**. Klik erop om de keuzes te zien: privé (alleen op uitnodiging), binnen de werkruimte (iedereen in de werkruimte met de link, of zichtbaar voor de hele werkruimte), en openbaar (iedereen met de link, of de GPT-winkel). Laat het op **Alleen op uitnodiging** staan.
![De keuzes onder Toegang](beelden/11-toegang-keuzes.jpg)
3. Klik op **Bijwerken**. Na een paar seconden: **GPT bijgewerkt**, met **Link kopiëren** en **GPT weergeven**. Boven in de editor staat nu **Live · Alleen ik**, en de knop heet voortaan **Bijwerken**.
![De GPT is live](beelden/12-gpt-bijgewerkt.jpg)
4. Klik op **GPT weergeven**. De GPT opent in de gewone chat, met de drie gespreksopeningen. In het linkermenu staat hij onder **GPT's**.
![De GPT in de gewone chat](beelden/13-chat-met-zijbalk.jpg)
5. Klik op **Hoe meld ik mijn kind ziek?** Het antwoord komt in een paar seconden, met u-vorm en hoofdstuk 2.
![Ziek melden, uit hoofdstuk 2](beelden/15-ziek-melden.jpg)
> Wil je schermafbeeldingen maken voor collega's, klap dan het linkermenu dicht met het pictogram naast **ChatGPT** linksboven. Anders staan je andere GPT's en projecten in beeld.
![Dezelfde chat zonder linkermenu](beelden/14-chat-zonder-zijbalk.jpg)
---
## Stap 7. Delen met collega's
1. Open de GPT in de editor (via **GPT's**, dan het potlood) en klik op **Delen**.
2. Typ onder **Mensen uit je werkruimte toevoegen** de naam van een collega, of kies onder **Toegang** voor de hele werkruimte.
3. Klik op **Bijwerken** en daarna op **Link kopiëren**. Die link stuur je rond.
| Keuze | Wie kan de GPT gebruiken | Wanneer |
| --- | --- | --- |
| Alleen op uitnodiging | Jij en wie je bij naam toevoegt | Testen, een klein team |
| Iedereen bij [werkruimte] met de link | Iedereen met een account in de werkruimte die de link heeft | Een sectie, een team |
| [Werkruimte] | Iedereen in de werkruimte, ook zichtbaar in de lijst | De hele school |
| Iedereen met de link | Iedereen op internet met de link, ook zonder werkruimte | Ouders (zie kader) |
| GPT-winkel | Iedereen op internet, vindbaar | Niet voor een schoolgids |
> **Ouders zonder ChatGPT-account** kunnen een GPT via **Iedereen met de link** gebruiken met een gratis account. Dat is de enige manier om buiten de werkruimte te delen, en het betekent dat de GPT openbaar is: iedereen met de link, niet alleen jouw ouders. Voor een schoolgids-assistent is dat te overwegen (de schoolgids is toch openbaar), voor de andere GPT's in deze reeks niet.
Wijzig je later de instructie of het bestand, klik dan opnieuw op **Bijwerken**: collega's krijgen de nieuwe versie meteen.
---
## Controleren of het gelukt is
- De GPT staat onder **GPT's** in het linkermenu en opent met drie gespreksopeningen
- Elk antwoord noemt een hoofdstuk en heeft **Bronnen** eronder
- Op een vraag buiten de schoolgids komt "dat staat niet in de schoolgids" met het nummer van de receptie
- Op een vraag over een leerling komt geen oordeel, wel de mentor
- Onder **GPT's**, **Gemaakt door mij** staat **Alleen ik** naast de naam
![Mijn GPT's, met de zes GPT's uit deze reeks](beelden/16-mijn-gpts.jpg)
## Als het misgaat
| Wat je ziet | Wat er aan de hand is |
| --- | --- |
| Het antwoord gaat niet over de schoolgids ("dat hangt af van je school") | Het zware model slaat het kennisbestand over. Stel het aangeraden model in (stap 4) of zet Denkinspanning op Instant (stap 5). Of het bestand is nog niet verwerkt: wacht een halve minuut na het uploaden |
| Geen **Bronnen** onder het antwoord | De GPT heeft het bestand niet gebruikt; zie hierboven. Controleer ook of het bestand nog onder Kennis staat |
| Naam of beschrijving is leeg na het uploaden | ChatGPT maakte het concept aan terwijl je nog typte, en de velden zijn teruggezet. Vul ze opnieuw in; de instructie is meestal wel bewaard. Handleiding 3 heeft een vaste volgorde die dit voorkomt |
| **Maken** doet niets | De GPT wordt nog opgeslagen (een draaiend rondje in de knop). Wacht even |
| De GPT antwoordt in het Engels | De vraag was in het Engels, of het model kiest de taal van de bouwhulp. Voeg toe: "Alles in het Nederlands" |
| Collega ziet de GPT niet | Toegang staat op Alleen op uitnodiging en de collega is niet toegevoegd, of hij zit in een andere werkruimte |
| Er komt een afbeelding in het antwoord | **Afbeeldingen genereren** staat aan; zet uit |
---
## ChatGPT naast Dify en Copilot
| | Dify (handleiding 2) | Copilot Agent Builder (handleiding 1) | ChatGPT GPT |
| --- | --- | --- | --- |
| Schoolgids meegeven | Kennisbank, met instelbare chunks | In de instructie (gratis laag) | Bestand onder Kennis, tot 20 bestanden |
| Bron in het antwoord | Citaat met bestandsnaam | Alleen wat de instructie zegt | Knop Bronnen onder elk antwoord |
| Model | Zelf kiezen, eigen sleutel | Vast | Aangeraden model uit een lijst; gebruiker mag afwijken |
| Wie mag bouwen | Iedereen met een Dify-account | Iedereen met een schoolaccount | Alleen betaalde abonnementen |
| Wie mag gebruiken | Via een link, ook zonder account | Alleen binnen het tenant | Werkruimte, of openbaar via link |
| Gesprekken teruglezen | Logs | Tellingen | Niets |
| Kosten | Credits of eigen sleutel | In de licentie | In het abonnement |
De GPT is van de drie het makkelijkst te bouwen en heeft de beste kennisbank. Het verschil zit in de toegang: in Copilot kan elke collega bouwen, in ChatGPT alleen wie een betaald abonnement heeft, en leerlingen komen er alleen in via een account dat de school beheert.
---
## Maak hem van jou
| Aanpassing | Waar | Moeilijkheid | Wat je ervoor terugkrijgt |
| --- | --- | --- | --- |
| Je eigen schoolgids | Kennis | makkelijk | Een assistent die klopt voor jouw school |
| Toon en aanspreekvorm | Stap 2, "Zo antwoord je" | makkelijk | Een assistent die klinkt als je school |
| Andere verwijzing dan de receptie | Stap 2, eerste alinea | makkelijk | Ouders komen bij de juiste persoon uit |
| Meer documenten (jaarplanning, verzuimprotocol) | Kennis | makkelijk | Meer vragen beantwoord; noem de bestanden in de instructie |
| Meertalig | Stap 2 | makkelijk | Voeg toe: "Antwoord in de taal van de vraag" |
| Een eigen pictogram | De cirkel boven Naam | makkelijk | Herkenbaar in de lijst; upload een png of laat ChatGPT er een maken |
| Openbaar voor ouders | Stap 7, Iedereen met de link | gemiddeld | Ouders zonder account kunnen erbij; de GPT is dan voor iedereen zichtbaar |
| Doorsturen van een vraag naar de receptie | Handelingen | moeilijk | Daarvoor is een API nodig; zie handleiding 4 |
**Drie opdrachten**
1. **Vind de grens.** Stel tien vragen die net wel en net niet in de schoolgids staan. Bij welke gaat het mis? Pas de instructie aan en test opnieuw.
2. **Model vergelijken.** Zet Denkinspanning op 6 Pro en stel dezelfde drie testvragen. Wat verandert er, en wat kost het aan tijd?
3. **Lees de Bronnen.** Klik bij vijf antwoorden op Bronnen. Komt het antwoord uit de juiste passage? Dat is wat een collega doet die de GPT controleert voordat hij naar ouders gaat.
**Checklist voordat je eigen materiaal gebruikt**
- [ ] De GPT staat in een werkruimte van de school, niet in een persoonlijk account
- [ ] Het kennisbestand bevat geen persoonsgegevens
- [ ] Het aangeraden model staat ingesteld en Zoeken op het web staat uit
- [ ] De drie tests uit de ontwerpkaart zijn gedaan en de antwoorden zijn nagelezen
- [ ] Toegang staat op wat je bedoelt (werkruimte of openbaar) en je weet het verschil
- [ ] Er is een eigenaar die de schoolgids elk schooljaar vervangt en op Bijwerken klikt
---
## En verder
In handleiding 2 bouw je de Ouderbrief-assistent: dezelfde stappen, een schrijfwijzer als kennisbestand, en een GPT die eerst vragen stelt voordat hij herschrijft.
+8
View File
@@ -0,0 +1,8 @@
Je bent de Schoolgids-assistent van Het Voorbeeldcollege. Je beantwoordt vragen van ouders en leerlingen over de schoolregels. Je gebruikt alleen de schoolgids die als kennisbestand is meegegeven (schoolgids-voorbeeldcollege.pdf). Staat het antwoord er niet in, dan zeg je dat en verwijs je naar de receptie (046-1234567) of de mentor. Je verzint geen regels, tijden of namen.
Zo antwoord je:
- Kort en concreet, in gewoon Nederlands (taalniveau B1). Ouders spreek je aan met u, leerlingen met je; kies op basis van de vraag.
- Noem het hoofdstuk van de schoolgids waar het antwoord staat, bijvoorbeeld (schoolgids, hoofdstuk 2).
- Bij een vraag over een individuele leerling (cijfers, verzuim, ondersteuning) geef je geen oordeel en verwijs je naar de mentor.
- Je vraagt niet naar namen van leerlingen en bewaart niets.
- Je zoekt niet op internet.
Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env python3
"""Bouwt handleiding-chatgpt-ouderbrief-assistent.html, .pdf en .docx. Gebruik: python3 build.py
Het echte werk staat in ../_gereedschap/build_handleiding.py (gedeeld door alle handleidingen)."""
import runpy, sys
from pathlib import Path
sys.argv = ["build_handleiding.py", str(Path(__file__).resolve().parent / "handleiding-chatgpt-ouderbrief-assistent.md")]
runpy.run_path(str(Path(__file__).resolve().parent.parent / "_gereedschap" / "build_handleiding.py"), run_name="__main__")
@@ -0,0 +1,232 @@
<!--
VOOR DE BEWERKER
Handleiding 2 van de ChatGPT-reeks: de Ouderbrief-assistent als Custom GPT.
Beelden in beelden/, vastgelegd op 21 september 2026 (ChatGPT Business-werkruimte, Nederlandse
interface). Accountgegevens in de beelden vervaagd.
Omzetten naar HTML, PDF en Word: python3 build.py
Bestanden in deze map:
schrijfwijzer-voorbeeldcollege.pdf de fictieve schrijfwijzer (zelfde als in de Dify- en Copilot-reeks)
instructies.txt de instructie van de GPT, om te plakken
-->
# Bouwen in ChatGPT: de Ouderbrief-assistent
**Handleiding 2 van de reeks GPT's voor school**
LeX Consultancy B.V. · 21 september 2026
Je bouwt een GPT die een wollige conceptbrief herschrijft volgens de schrijfwijzer van de school: B1, u en je, een vaste opbouw, en een lijstje van wat er is veranderd. Op verzoek maakt hij van dezelfde brief een bericht voor de ouderapp, de website of sociale media. De schrijfwijzer gaat als bestand mee.
Dit is de tegenhanger van handleiding 3 uit de Dify-reeks en handleiding 2 uit de Copilot-reeks. De stappen in de editor ken je uit handleiding 1; hier staan ze kort.
Deze handleiding volgt ChatGPT zoals het er op 21 september 2026 uitziet, in een werkruimte van ChatGPT Business. Wijkt je scherm af, volg dan wat je ziet.
**Zo lees je deze handleiding**
| Vorm | Betekenis |
| --- | --- |
| 1. 2. 3. | Wat je doet: klikken, kiezen, openen |
| **Vet** | Een knop, menu of veld zoals het op je scherm staat |
| Tabel *Wat je intypt* | Waarden die je in een formulierveld zet |
| Grijs kader *Intypen* | Tekst die je letterlijk overtypt of plakt |
| Oranje kader | Een valkuil die je anders zelf ontdekt |
| Groen kader *Zelf kiezen* | Een plek waar je ons voorbeeld kunt vervangen door je eigen materiaal, stijl of prompt |
---
<!-- ontwerpkaart -->
## De ontwerpkaart van deze app
| 1. Voor wie | 2. Wat gaat erin |
| --- | --- |
| Een mentor die om 22:00 nog een brief over de ouderavond moet sturen en een teamleider die elke brief van collega's naleest op "middels" en "z.s.m.". | Een conceptbrief of een paar losse zinnen, geplakt in de chat. De schrijfwijzer (pdf) als kennisbestand. |
| 3. Wat komt eruit | 4. Waar moet hij zich aan houden |
| --- | --- |
| Een herschreven brief met onderwerpregel, [INVULLEN] op de plekken die ontbreken, en onder "Wat ik heb veranderd" maximaal vijf punten met de regel erbij. Of een versie voor ouderapp, website of sociale media. | De schrijfwijzer; eerst vragen als niet duidelijk is voor wie de brief is of wat de ouder moet doen; niets verzinnen; kort, zonder inleiding of compliment. |
**5. Waaraan zie je dat het werkt**
| Test | Wat gaat erin | Wat moet eruit komen |
| --- | --- | --- |
| 1 | De wollige brief over de ouderavond, zonder klas | De vraag voor welke klas de brief is, voordat er iets wordt herschreven |
| 2 | Antwoord: 3 havo en 3 vwo, datum onbekend | De brief met onderwerpregel, [INVULLEN] bij de datum en de ondertekening, en vijf veranderingen |
| 3 | Dezelfde brief voor de ouderapp | Maximaal 80 woorden, een boodschap, een datum, een actie |
<!-- /ontwerpkaart -->
## Lees dit eerst: wat mag en wat niet
| Wat | Afspraak |
| --- | --- |
| Wat erin gaat | Conceptbrieven aan groepen ouders. Geen brieven over een individuele leerling met naam, cijfers of verzuim; dat gaat in een persoonlijk gesprek (schrijfwijzer, hoofdstuk 5) en hoort niet in een chat. |
| Waar het blijft | Wat je plakt, staat in de gespreksgeschiedenis van je account. In een werkruimte van de school wordt het niet gebruikt voor training. Verwijder gesprekken met concepten die niet bewaard hoeven te blijven. |
| Wie kijkt na | De GPT herschrijft, de mens verstuurt. Brieven aan een hele afdeling gaan volgens de schrijfwijzer langs het team communicatie; dat verandert niet omdat een GPT ze heeft nagekeken. |
---
## Voorbereiding
- Handleiding 1 gedaan.
- De schrijfwijzer `schrijfwijzer-voorbeeldcollege.pdf` uit deze map: zeven hoofdstukken, fictief.
- De tekst van de instructie in `instructies.txt`.
> **Zelf kiezen: de schrijfwijzer.** Heeft je school een huisstijl- of schrijfwijzer, gebruik die. Heb je die niet, dan is de fictieve schrijfwijzer een bruikbaar begin: pas hoofdstuk 2 (te vermijden woorden) en hoofdstuk 7 (contact) aan en je hebt er een.
---
## Stap 1. Maak de GPT
1. Ga naar chatgpt.com/gpts/editor en klik op **Configureren**.
2. Vul naam en beschrijving in.
| Veld op het scherm | Wat je intypt |
| --- | --- |
| Naam | `Ouderbrief-assistent` |
| Beschrijving | `Herschrijft een conceptbrief aan ouders volgens de schrijfwijzer van Het Voorbeeldcollege en maakt er berichten voor ouderapp, website en sociale media van.` |
3. Plak de instructie uit `instructies.txt`:
```
Je bent de Ouderbrief-assistent van Het Voorbeeldcollege. Docenten, mentoren en teamleiders plakken een conceptbrief of een paar losse zinnen, en jij maakt er een brief van die ouders in een keer begrijpen. Je werkt volgens de schrijfwijzer die als kennisbestand is meegegeven (schrijfwijzer-voorbeeldcollege.pdf); lees die bij elke opdracht.
Werkwijze:
1. Pas de schrijfwijzer toe: taalniveau B1, u en je, te vermijden woorden, de opbouw van een ouderbrief en de lengte per kanaal.
2. Als niet duidelijk is voor wie de brief is (welke klas of afdeling) of wat de ouder moet doen, vraag dat dan eerst; ga niet gokken.
3. Geef eerst de herschreven brief, met onderwerpregel, en daarna onder het kopje "Wat ik heb veranderd" een lijstje van maximaal vijf punten, elk met de regel uit de schrijfwijzer die erbij hoort.
4. Verzin geen data, namen of afspraken die niet in de aangeleverde tekst staan. Ontbreekt iets wat een ouder moet weten, zet dan [INVULLEN] op die plek.
5. Vraagt iemand om een bericht voor de website, de ouderapp of sociale media, houd je dan aan de lengte en de regels van dat kanaal uit hoofdstuk 4.
6. Wees kort. Geen inleiding, geen compliment, geen afsluiting van jouw kant.
```
"Lees die bij elke opdracht" staat er met reden: een GPT raadpleegt zijn kennisbestanden alleen als hij denkt dat het nodig is. Bij een herschrijfopdracht is dat niet vanzelfsprekend; met deze zin doet hij het wel.
4. Vul de gespreksopeningen in.
| Gespreksopening |
| --- |
| `Herschrijf deze brief: ` |
| `Maak van deze brief een bericht voor de ouderapp: ` |
| `Welke regels staan er in de schrijfwijzer?` |
De eerste twee eindigen op een dubbele punt met een spatie: wie erop klikt, plakt zijn brief erachter.
5. Upload onder **Kennis** de schrijfwijzer, kies onder **Aangeraden model** het snelle model (**GPT-5.6 Sol (gpt-5-6-instant)**) en zet **Afbeeldingen genereren** uit. De andere mogelijkheden blijven uit.
![Kennis, aangeraden model en mogelijkheden](beelden/01-kennis-model-mogelijkheden.jpg)
---
## Stap 2. Test met een wollige brief
1. Klik in **Voorbeeld** op **Herschrijf deze brief:** en plak de brief erachter. Verstuur.
```
Geachte ouder(s)/verzorger(s), Middels dit schrijven willen wij u informeren omtrent de ouderavond die in het kader van de studiekeuze zal plaatsvinden op donderdag 8 oktober a.s. om 19.30 uur in de aula. Tijdens deze avond zal door de decaan een toelichting worden gegeven op het keuzeproces. U wordt verzocht uw aanwezigheid z.s.m. door te geven d.m.v. het ouderportaal. Met vriendelijke groet, de directie
```
De GPT herschrijft nog niets. Hij stelt twee vragen: voor welke klas of afdeling is de ouderavond, en wat is de uiterste datum om aanwezigheid door te geven. Dat is punt 2 van de werkwijze, en hij verwijst zelf naar de schrijfwijzer ("dat moet in de eerste alinea staan").
![De GPT vraagt eerst voor wie de brief is](beelden/02-vraag-eerst.jpg)
2. Geef antwoord, met een gat erin.
| Bericht | Wat je intypt |
| --- | --- |
| 2 | `Voor klas 3 havo en 3 vwo. De uiterste datum weet ik nog niet.` |
Nu komt de brief: onderwerpregel "Ouderavond klas 3 op 8 oktober", drie korte alinea's, **[INVULLEN]** bij de datum en **[INVULLEN: naam]** en **[INVULLEN: functie]** in de ondertekening. De GPT verzon geen datum en geen naam.
![De herschreven brief met INVULLEN op de open plekken](beelden/03-herschreven-brief.jpg)
Onder **Wat ik heb veranderd** staan vijf punten, elk met de regel: kortere zinnen (B1), "middels" en "omtrent" weg, "z.s.m." vervangen door een datum, de klas in de eerste alinea, en een ondertekening met naam en functie in plaats van "de directie".
![Wat ik heb veranderd, met per punt de regel uit de schrijfwijzer](beelden/04-wat-ik-heb-veranderd.jpg)
3. Vraag een ander kanaal.
| Bericht | Wat je intypt |
| --- | --- |
| 3 | `Maak van dezelfde brief een bericht voor de ouderapp.` |
Een kop, twee zinnen, de actie met [INVULLEN], en opnieuw "Wat ik heb veranderd": ingekort tot onder 80 woorden, een boodschap, een datum, een actie, geen inleiding. Precies hoofdstuk 4.
![Het bericht voor de ouderapp](beelden/05-ouderapp.jpg)
> In de Copilot-versie duurde het herschrijven ruim een minuut en kwam de tekst regel voor regel. Hier staat het antwoord er in een paar seconden. Dat is het snelle model; met **6 Pro** duurt het langer en wordt de brief niet beter.
---
## Stap 3. Maak de GPT
1. Klik op **Maken**, laat **Alleen op uitnodiging** staan en klik op **Bijwerken**.
![GPT delen; de toegang blijft privé](beelden/06-gpt-delen.jpg)
2. Delen met het team communicatie of de mentoren: handleiding 1, stap 7.
---
## Controleren of het gelukt is
- Bij een brief zonder doelgroep vraagt de GPT eerst voor wie hij is
- De herschreven brief heeft een onderwerpregel van maximaal acht woorden
- Ontbrekende gegevens staan als [INVULLEN], niet verzonnen
- Onder "Wat ik heb veranderd" staan maximaal vijf punten met een regel
- Het ouderapp-bericht blijft onder 80 woorden
## Als het misgaat
| Wat je ziet | Wat er aan de hand is |
| --- | --- |
| De GPT herschrijft meteen, zonder te vragen | Punt 2 ontbreekt, of je noemde de klas al in je bericht |
| Er staat een datum die je niet gaf | Punt 4 ontbreekt. Controleer elke brief op verzonnen data; dit is de fout die je het minst snel ziet |
| De brief is langer dan een A4 | Voeg toe: "maximaal 250 woorden" |
| "Wat ik heb veranderd" noemt geen regels | De GPT las de schrijfwijzer niet. Staat "lees die bij elke opdracht" in de instructie en staat het bestand onder Kennis? |
| Een inleiding of compliment ("Wat een goede brief!") | Punt 6 ontbreekt |
| Het bericht voor sociale media heeft meer dan drie hashtags | Hoofdstuk 4 zegt drie; het model telt slordig. Zeg het erbij in de vraag |
---
## ChatGPT naast Dify en Copilot
| | Dify (handleiding 3) | Copilot Agent Builder (handleiding 2) | ChatGPT GPT |
| --- | --- | --- | --- |
| Schrijfwijzer | Kennisbank | In de instructie | Bestand onder Kennis |
| Twee apps (brief en nieuws) | Twee aparte apps | Een agent, kanaal in de vraag | Een GPT, kanaal in de vraag |
| Snelheid | Seconden | Ruim een minuut | Seconden |
| Bewaren van concepten | Logs bij de bouwer | In de chat van de gebruiker | In de chat van de gebruiker |
---
## Maak hem van jou
| Aanpassing | Waar | Moeilijkheid | Wat je ervoor terugkrijgt |
| --- | --- | --- | --- |
| Eigen schrijfwijzer | Kennis | makkelijk | Brieven in de stijl van jouw school |
| Vaste ondertekening per gebruiker | Stap 1, punt 3 | makkelijk | Geen [INVULLEN] meer bij naam en functie; zet erbij: "vraag eerst naam en functie" |
| Andere kanalen (nieuwsbrief, Teams-bericht) | Schrijfwijzer hoofdstuk 4 en punt 5 | makkelijk | Meer kanalen uit een concept |
| Twee talen | Stap 1, nieuwe regel | gemiddeld | Een Engelse versie voor ouders die geen Nederlands lezen; laat de GPT eerst de Nederlandse maken |
| Brieven als Word-bestand | Code-interpreter aan, nieuwe regel | gemiddeld | Een bestand om in het ouderportaal te zetten |
| Toets op de schrijfwijzer zonder herschrijven | Nieuwe gespreksopening: "Controleer deze brief: " | gemiddeld | Alleen het lijstje, voor wie zelf wil schrijven |
**Drie opdrachten**
1. **Jouw brief.** Neem een echte brief van vorig jaar (zonder namen) en laat hem herschrijven. Vergelijk: wat zou je overnemen, wat niet, en waarom?
2. **Vang de verzinsels.** Plak een brief waar bewust dingen in ontbreken (geen datum, geen plek, geen contact). Controleer of elk gat een [INVULLEN] krijgt en niets wordt ingevuld.
3. **Test hoofdstuk 5.** Plak een brief die een leerling bij naam en klas noemt. Wat doet de GPT? De schrijfwijzer verbiedt dat; staat daar iets over in de instructie?
**Checklist voordat je eigen materiaal gebruikt**
- [ ] De schrijfwijzer is van de school en is de versie die het team communicatie gebruikt
- [ ] Je plakt geen brieven over individuele leerlingen
- [ ] Je hebt getest of ontbrekende gegevens als [INVULLEN] verschijnen
- [ ] De regel "brieven aan een afdeling gaan langs communicatie" geldt nog steeds, ook met de GPT
- [ ] Er is een eigenaar die de schrijfwijzer bijwerkt en op Bijwerken klikt
---
## En verder
Handleiding 3 bouwt de Toetsweekplanner: een GPT die vragen stelt, rekent en een Excel-bestand maakt. Daarvoor zet je voor het eerst de code-interpreter aan.
+9
View File
@@ -0,0 +1,9 @@
Je bent de Ouderbrief-assistent van Het Voorbeeldcollege. Docenten, mentoren en teamleiders plakken een conceptbrief of een paar losse zinnen, en jij maakt er een brief van die ouders in een keer begrijpen. Je werkt volgens de schrijfwijzer die als kennisbestand is meegegeven (schrijfwijzer-voorbeeldcollege.pdf); lees die bij elke opdracht.
Werkwijze:
1. Pas de schrijfwijzer toe: taalniveau B1, u en je, te vermijden woorden, de opbouw van een ouderbrief en de lengte per kanaal.
2. Als niet duidelijk is voor wie de brief is (welke klas of afdeling) of wat de ouder moet doen, vraag dat dan eerst; ga niet gokken.
3. Geef eerst de herschreven brief, met onderwerpregel, en daarna onder het kopje "Wat ik heb veranderd" een lijstje van maximaal vijf punten, elk met de regel uit de schrijfwijzer die erbij hoort.
4. Verzin geen data, namen of afspraken die niet in de aangeleverde tekst staan. Ontbreekt iets wat een ouder moet weten, zet dan [INVULLEN] op die plek.
5. Vraagt iemand om een bericht voor de website, de ouderapp of sociale media, houd je dan aan de lengte en de regels van dat kanaal uit hoofdstuk 4.
6. Wees kort. Geen inleiding, geen compliment, geen afsluiting van jouw kant.
Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env python3
"""Bouwt handleiding-chatgpt-toetsweekplanner.html, .pdf en .docx. Gebruik: python3 build.py
Het echte werk staat in ../_gereedschap/build_handleiding.py (gedeeld door alle handleidingen)."""
import runpy, sys
from pathlib import Path
sys.argv = ["build_handleiding.py", str(Path(__file__).resolve().parent / "handleiding-chatgpt-toetsweekplanner.md")]
runpy.run_path(str(Path(__file__).resolve().parent.parent / "_gereedschap" / "build_handleiding.py"), run_name="__main__")
@@ -0,0 +1,273 @@
<!--
VOOR DE BEWERKER
Handleiding 3 van de ChatGPT-reeks: de Toetsweekplanner als Custom GPT.
Beelden in beelden/, vastgelegd op 21 september 2026 (ChatGPT Business-werkruimte, Nederlandse
interface).
Omzetten naar HTML, PDF en Word: python3 build.py
Bestanden in deze map:
toetsrooster-voorbeeld.csv het fictieve toetsrooster (zelfde als in de Dify- en Copilot-reeks)
instructies.txt de instructie van de GPT, om te plakken
-->
# Bouwen in ChatGPT: de Toetsweekplanner
**Handleiding 3 van de reeks GPT's voor school**
LeX Consultancy B.V. · 21 september 2026
Je bouwt een GPT die met een leerling een studieplan voor de toetsweek maakt. De GPT kent het toetsrooster (als CSV-bestand onder Kennis), vraagt wanneer de leerling kan leren en hoe moeilijk de vakken zijn, en levert een plan in de chat plus een Excel-bestand om te downloaden. Voor dat bestand zet je de **code-interpreter** aan: de GPT schrijft en draait dan zelf een klein programma.
Dit is de tegenhanger van handleiding 4 uit de Dify-reeks en handleiding 3 uit de Copilot-reeks. Twee dingen zijn hier makkelijker dan in Copilot: de GPT weet welke dag het is, en het rooster kan als bestand mee in plaats van als tekst in de instructie.
Deze handleiding volgt ChatGPT zoals het er op 21 september 2026 uitziet, in een werkruimte van ChatGPT Business. Wijkt je scherm af, volg dan wat je ziet.
**Zo lees je deze handleiding**
| Vorm | Betekenis |
| --- | --- |
| 1. 2. 3. | Wat je doet: klikken, kiezen, openen |
| **Vet** | Een knop, menu of veld zoals het op je scherm staat |
| Tabel *Wat je intypt* | Waarden die je in een formulierveld zet |
| Grijs kader *Intypen* | Tekst die je letterlijk overtypt of plakt |
| Oranje kader | Een valkuil die je anders zelf ontdekt |
| Groen kader *Zelf kiezen* | Een plek waar je ons voorbeeld kunt vervangen door je eigen materiaal, stijl of prompt |
---
<!-- ontwerpkaart -->
## De ontwerpkaart van deze app
| 1. Voor wie | 2. Wat gaat erin |
| --- | --- |
| Een leerling uit klas 2, drie weken voor de toetsweek, die niet weet waar te beginnen. Heeft het rooster, een telefoon en anderhalf uur per avond. | Het toetsrooster (CSV onder Kennis), de momenten waarop de leerling kan leren, en per vak makkelijk/gemiddeld/moeilijk. De GPT vraagt ze een voor een. |
| 3. Wat komt eruit | 4. Waar moet hij zich aan houden |
| --- | --- |
| Een plan per dag in de chat (blok, vak, tijd, stof) en een bestand studieplan.xlsx om te downloaden. Afsluiting met de vraag of er iets moet schuiven. | Vijf planregels (moeilijke vakken dubbel, elk vak twee keer, blokken van 25-45 minuten met pauze, avond voor de toets alleen herhalen, niets buiten de opgegeven momenten); geen cijfers of oordelen; geen naam vragen. |
**5. Waaraan zie je dat het werkt**
| Test | Wat gaat erin | Wat moet eruit komen |
| --- | --- | --- |
| 1 | Leermomenten en moeilijkheid | Een plan dat de momenten respecteert, plus een Excel-bestand |
| 2 | Lees het plan na op de vijf regels | Geen nieuwe stof op de avond voor een toets; elk vak twee keer |
| 3 (de lastige) | "Ga ik mijn wiskundetoets halen?" | Geen voorspelling; terug naar het plan |
<!-- /ontwerpkaart -->
## Lees dit eerst: wat mag en wat niet
| Wat | Afspraak |
| --- | --- |
| Echte leerlingen | Alleen via accounts die de school beheert (Edu of Enterprise), met toestemming van ouders onder de 18 en met de privacyfunctionaris erbij. Een leerling vertelt de GPT wanneer hij thuis is; dat hoort niet in een persoonlijk account. In deze handleiding ben jij de "leerling". |
| Wat de GPT zegt | Geen cijfers, oordelen of voorspellingen over toetsen. Dat staat in de instructie en blijft erin. |
| Bestanden | Het Excel-bestand is een download uit de chat, niet opgeslagen op een schijf. Wie het wil bewaren, slaat het zelf op. |
| Voor wie | Als de planner ooit voor leerlingen gaat: voor alle leerlingen, niet alleen voor leerlingen met een ondersteuningsbehoefte. |
---
## Voorbereiding
- Handleiding 1 gedaan.
- Het toetsrooster `toetsrooster-voorbeeld.csv` uit deze map: zes toetsen van maandag 12 tot en met vrijdag 16 oktober 2026, met de kolommen dag, datum, vak, tijd, duur en toetsstof.
- De tekst van de instructie in `instructies.txt`.
> **Zelf kiezen: het rooster.** Zet het echte toetsrooster van een klas in dezelfde CSV-vorm, of als Excel; beide werken onder Kennis. Zonder leerlinggegevens, want het is een rooster, geen klassenlijst.
---
## Stap 1. Eerst bestand en model, dan de tekst
Deze keer vullen we het formulier in een andere volgorde in, en dat is met opzet.
> Bij onze eerste poging typten we naam, beschrijving en instructie, en uploadden daarna het rooster. Op dat moment maakte ChatGPT het concept aan en zette het de tekstvelden terug op leeg: alleen het bestand en het model bleven staan. Vul daarom eerst de dingen in die het concept aanmaken (bestand, model, vinkjes) en dan pas de tekst.
![Na de upload waren naam en beschrijving leeg](beelden/01-formulier-gewist.jpg)
1. Ga naar chatgpt.com/gpts/editor en klik op **Configureren**.
2. Kies onder **Aangeraden model** het snelle model: **GPT-5.6 Sol (gpt-5-6-instant)**. Wacht tot het adres in de browser verandert naar /gpts/editor/g-...: het concept bestaat nu.
3. Klik onder **Kennis** op **Bestanden uploaden** en kies `toetsrooster-voorbeeld.csv`. Het verschijnt als **Spreadsheet**.
4. Zet onder **Mogelijkheden** **Afbeeldingen genereren** uit en **Code-interpreter en gegevensanalyse** aan. Zonder dat laatste kan de GPT geen Excel maken; hij beschrijft het plan dan alleen.
5. Nu de tekst.
| Veld op het scherm | Wat je intypt |
| --- | --- |
| Naam | `Toetsweekplanner` |
| Beschrijving | `Maakt met een leerling een persoonlijk studieplan voor de toetsweek: verdeelt de toetsstof over de beschikbare momenten en levert het plan als Excel-bestand.` |
6. Plak de instructie uit `instructies.txt`:
```
Je bent de Toetsweekplanner voor leerlingen in de onderbouw van het voortgezet onderwijs. Je helpt een leerling een persoonlijk studieplan te maken voor de toetsweek. Je spreekt de leerling aan met je, in korte zinnen en gewoon Nederlands.
Wat je nodig hebt van de leerling:
1. Het toetsrooster. Het rooster van deze toetsweek staat in het kennisbestand toetsrooster-voorbeeld.csv; vat het kort samen. Geeft de leerling een ander rooster, gebruik dan dat.
2. De momenten waarop de leerling kan leren, per dag, vanaf vandaag tot de laatste toets.
3. Per vak hoe moeilijk de leerling het vindt: makkelijk, gemiddeld of moeilijk.
Stel deze vragen een voor een, niet allemaal tegelijk. Ga pas plannen als je alle drie hebt.
Planregels:
- Moeilijke vakken krijgen ongeveer twee keer zoveel tijd als makkelijke vakken.
- Elk vak komt minstens twee keer terug, met minimaal een dag ertussen; de laatste keer is de dag voor de toets.
- Een leerblok duurt 25 tot 45 minuten, met daarna 10 minuten pauze. Nooit meer dan drie blokken achter elkaar.
- De avond voor een toets alleen herhalen, geen nieuwe stof.
- Plan niets op momenten die de leerling niet heeft opgegeven.
Wat je oplevert:
- Een overzicht in de chat: per dag de blokken met vak, tijd en wat er precies geleerd wordt (welke hoofdstukken of paragrafen).
- Een Excel-bestand studieplan.xlsx met per rij: dag, datum, begintijd, eindtijd, vak, stof. Maak dat bestand echt aan met de code-interpreter en geef het als download.
- Sluit af met een vraag of de leerling iets wil verschuiven.
Je geeft geen cijfers, oordelen of voorspellingen over hoe de toetsen zullen gaan. Je vraagt niet naar de naam van de leerling en bewaart niets.
```
Vergeleken met de Copilot-versie ontbreekt de zin "Vraag ook welke datum het vandaag is": een GPT weet de datum. En het rooster staat niet in de tekst maar in het bestand.
7. Vul de gespreksopeningen in.
| Gespreksopening |
| --- |
| `Hoi, ik wil een studieplan voor de toetsweek.` |
| `Welke toetsen heb ik in de toetsweek en wat is de stof?` |
| `Ik wil een blok verschuiven in mijn plan.` |
![De ingevulde GPT](beelden/02-configureren-ingevuld.jpg)
---
## Stap 2. Test als leerling
1. Klik in **Voorbeeld** op **Hoi, ik wil een studieplan voor de toetsweek.**
De GPT vraagt of je het voorbeeldrooster wilt gebruiken of een eigen rooster hebt. Dat is een kleine afwijking van de instructie (die zegt: vat het rooster samen), maar geen foute.
![Het eerste antwoord: welk rooster](beelden/03-eerste-antwoord.jpg)
| Bericht | Wat je intypt |
| --- | --- |
| 2 | `Het voorbeeldrooster.` |
Nu vat de GPT het rooster samen (zes toetsen, per dag) en stelt de tweede vraag: wanneer kun je leren, "vanaf vandaag, 21 september". Hij weet de datum.
![Het rooster samengevat en de vraag naar leermomenten](beelden/04-rooster-samengevat.jpg)
2. Geef je leermomenten en daarna de moeilijkheid.
| Bericht | Wat je intypt |
| --- | --- |
| 3 | `Ik kan leren van woensdag 7 tot en met donderdag 15 oktober, elke dag van 16:00 tot 18:00. Zaterdag 10 oktober niet. Zondag 11 oktober van 10:00 tot 12:00 en van 15:00 tot 17:00.` |
| 4 | `Nederlands makkelijk, wiskunde moeilijk, Engels makkelijk, geschiedenis gemiddeld, biologie gemiddeld, Frans moeilijk.` |
Binnen een halve minuut staat er een tabel: per dag de blokken met tijd, vak en stof, en de zin dat zaterdag vrij blijft en de avond voor een toets alleen herhalen is.
![Het begin van het plan](beelden/05-plan-begin.jpg)
Onderaan: **Download studieplan.xlsx**, de vraag of je iets wilt verschuiven, en een kaartje **studieplan.xlsx, Spreadsheet**. Klik erop en het bestand wordt gedownload.
![Het einde van het plan met de download](beelden/06-plan-einde-download.jpg)
> In Copilot duurde hetzelfde plan ruim vijf minuten en kwam het regel voor regel. Hier is het in een halve minuut klaar, inclusief het bestand. Het verschil is het model en de omgeving; de instructie is vrijwel dezelfde.
---
## Stap 3. Controleer het plan aan de regels
Lees het plan tegen de vijf regels. In onze test klopte het: Nederlands en wiskunde komen op zondag 11 oktober voor het laatst terug als "alleen herhalen", een dag voor de toets; Engels op maandag 12; wiskunde en Frans krijgen de meeste blokken; geen blok buiten de opgegeven tijden. In de Copilot-test stond er wel een fout in (nieuwe stof Engels op de avond voor de toets). Dat verschil zegt niets over morgen: een ander gesprek kan een andere fout opleveren.
Doe daarom altijd de controle, en leg wat je vindt aan de GPT voor:
| Bericht | Wat je intypt |
| --- | --- |
| 5 | `Klopt je plan met de regel dat de avond voor een toets alleen herhalen is? Loop alle vakken na.` |
> **Zelf kiezen: laat de GPT zichzelf controleren.** Voeg aan "Wat je oplevert" toe: "Loop het plan voordat je het geeft na op alle vijf de planregels en verbeter het waar het niet klopt." Test opnieuw en vergelijk.
---
## Stap 4. De lastige test
| Bericht | Wat je intypt |
| --- | --- |
| 6 | `Ga ik mijn wiskundetoets halen?` |
"Dat kan ik niet voorspellen", en een verwijzing naar de extra aandacht voor wiskunde in het plan, met een tip om zelf een paar opgaven te maken. Geen kans, geen cijfer.
![Geen voorspelling](beelden/07-geen-voorspelling.jpg)
---
## Stap 5. Maak de GPT
Klik op **Maken**, laat **Alleen op uitnodiging** staan en klik op **Bijwerken**. Voor deze GPT geldt de tabel aan het begin: alleen met leerlingen als de school dat heeft ingericht.
---
## Controleren of het gelukt is
- De GPT vat het rooster samen en stelt daarna zijn vragen een voor een
- Hij weet welke dag het is zonder dat je het zegt
- Er staat een download studieplan.xlsx in het antwoord en het bestand opent in Excel
- Het plan gebruikt alleen de opgegeven momenten (kijk zelf na)
- Op een vraag naar een cijfer of kans komt geen voorspelling
## Als het misgaat
| Wat je ziet | Wat er aan de hand is |
| --- | --- |
| Naam en beschrijving zijn leeg na het uploaden | De volgorde uit stap 1: eerst model en bestand, dan tekst |
| Geen Excel-bestand, alleen een beschrijving | **Code-interpreter en gegevensanalyse** staat uit, of de zin "Maak dat bestand echt aan met de code-interpreter" ontbreekt |
| De GPT kent het rooster niet | Het bestand staat niet onder Kennis, of het zware model slaat het over; stel het aangeraden model in |
| De GPT stelt alle vragen tegelijk | "Stel deze vragen een voor een" ontbreekt |
| Het plan zet blokken op momenten die je niet gaf | De GPT interpreteert. Leg het voor (stap 3) en overweeg de zelfcontrole |
| Het bestand heeft andere kolommen | Zeg de kolommen in je vraag nog een keer; de instructie is een richtlijn, geen sjabloon |
| De GPT noemt een cijfer of een kans | De laatste alinea van de instructie ontbreekt |
---
## ChatGPT naast Dify en Copilot
| | Dify Agent Console (handleiding 4) | Copilot Agent Builder (handleiding 3) | ChatGPT GPT |
| --- | --- | --- | --- |
| Rooster meegeven | Bestand onder FILES | In de instructie (gratis laag) | CSV of Excel onder Kennis |
| Datum weten | Tool CurrentTime | Niet; de leerling geeft de datum | Vanzelf |
| Bestanden maken | Sandbox met Python, script leesbaar | CodeInterpreter, script onzichtbaar, op OneDrive | Code-interpreter, script op te vragen, download uit de chat |
| Duur van een plan | Minuten | Ruim vijf minuten | Een halve minuut |
| Model | Zelf kiezen, eigen sleutel | Vast | Aangeraden model, gebruiker mag afwijken |
Wil je zien wat de GPT precies heeft geprogrammeerd, vraag dan "Laat de code zien waarmee je het bestand maakte." Dat is de tegenhanger van het script in de Dify-sandbox.
---
## Maak hem van jou
| Aanpassing | Waar | Moeilijkheid | Wat je ervoor terugkrijgt |
| --- | --- | --- | --- |
| Het echte rooster van een klas | Kennis | makkelijk | Een planner die klaar is voor de komende toetsweek |
| Je eigen planregels | Instructie, kop Planregels | makkelijk | Een plan dat past bij de studielessen die je al geeft |
| Een Word-overzicht in plaats van Excel | "Wat je oplevert" | makkelijk | Een printbaar plan |
| Zelfcontrole op de regels | "Wat je oplevert" (groene kader stap 3) | gemiddeld | Minder fouten om zelf te vinden |
| Een agendabestand (.ics) | "Wat je oplevert" | gemiddeld | De code-interpreter kan het; vraag om studieplan.ics met per blok een afspraak |
| Meerdere roosters (per klas) | Kennis, meerdere bestanden; instructie: "vraag eerst welke klas" | gemiddeld | Een planner voor de hele onderbouw |
**Drie opdrachten**
1. **Jouw regels.** Vraag twee mentoren welke drie planregels zij hun leerlingen meegeven. Zet die in de instructie en voer hetzelfde testgesprek. Welk plan zou een leerling echt volgen?
2. **Vind de fout.** Loop het plan regel voor regel na. Schrijf op wat niet klopt en leg het de GPT voor, zoals in stap 3. Doe het drie keer met dezelfde invoer: krijg je drie keer hetzelfde plan?
3. **Van Excel naar agenda.** Vraag om een .ics-bestand en importeer het in je agenda. Klopt het? Dat is iets wat Copilot niet kon en ChatGPT wel.
**Checklist voordat je eigen materiaal gebruikt**
- [ ] Het rooster bevat geen namen of klassenlijsten
- [ ] De regel "geen cijfers, oordelen of voorspellingen" staat erin en je hebt hem getest
- [ ] Code-interpreter staat aan en het aangeraden model staat ingesteld
- [ ] Iemand heeft een handvol plannen aan de regels getoetst voordat leerlingen de GPT krijgen
- [ ] Bij leerlingen: de school beheert de accounts, ouders zijn geïnformeerd en de privacyfunctionaris weet ervan
- [ ] Er is een eigenaar die het rooster elke toetsweek vervangt en op Bijwerken klikt
---
## En verder
Handleiding 4 gaat over lesmateriaal: een GPT die een lesbrief beoordeelt en er een toegankelijke versie van maakt als Word-bestand. Het materiaal komt niet onder Kennis maar per gesprek mee.
+22
View File
@@ -0,0 +1,22 @@
Je bent de Toetsweekplanner voor leerlingen in de onderbouw van het voortgezet onderwijs. Je helpt een leerling een persoonlijk studieplan te maken voor de toetsweek. Je spreekt de leerling aan met je, in korte zinnen en gewoon Nederlands.
Wat je nodig hebt van de leerling:
1. Het toetsrooster. Het rooster van deze toetsweek staat in het kennisbestand toetsrooster-voorbeeld.csv; vat het kort samen. Geeft de leerling een ander rooster, gebruik dan dat.
2. De momenten waarop de leerling kan leren, per dag, vanaf vandaag tot de laatste toets.
3. Per vak hoe moeilijk de leerling het vindt: makkelijk, gemiddeld of moeilijk.
Stel deze vragen een voor een, niet allemaal tegelijk. Ga pas plannen als je alle drie hebt.
Planregels:
- Moeilijke vakken krijgen ongeveer twee keer zoveel tijd als makkelijke vakken.
- Elk vak komt minstens twee keer terug, met minimaal een dag ertussen; de laatste keer is de dag voor de toets.
- Een leerblok duurt 25 tot 45 minuten, met daarna 10 minuten pauze. Nooit meer dan drie blokken achter elkaar.
- De avond voor een toets alleen herhalen, geen nieuwe stof.
- Plan niets op momenten die de leerling niet heeft opgegeven.
Wat je oplevert:
- Een overzicht in de chat: per dag de blokken met vak, tijd en wat er precies geleerd wordt (welke hoofdstukken of paragrafen).
- Een Excel-bestand studieplan.xlsx met per rij: dag, datum, begintijd, eindtijd, vak, stof. Maak dat bestand echt aan met de code-interpreter en geef het als download.
- Sluit af met een vraag of de leerling iets wil verschuiven.
Je geeft geen cijfers, oordelen of voorspellingen over hoe de toetsen zullen gaan. Je vraagt niet naar de naam van de leerling en bewaart niets.
@@ -0,0 +1,7 @@
dag,datum,vak,tijd,duur_minuten,toetsstof
maandag,2026-10-12,Nederlands,09:00,60,Leesvaardigheid hoofdstuk 3 en 4; spelling werkwoorden (d/t)
maandag,2026-10-12,wiskunde,10:45,45,Hoofdstuk 2 (vergelijkingen) en 3 (procenten)
dinsdag,2026-10-13,Engels,09:00,45,Unit 3 en 4: woordenlijst, present simple en present continuous
woensdag,2026-10-14,geschiedenis,09:00,45,Hoofdstuk 5: de Republiek in de Gouden Eeuw (paragraaf 1 t/m 4)
donderdag,2026-10-15,biologie,10:45,45,Thema 2: cellen en organen (basisstof 1 t/m 5)
vrijdag,2026-10-16,Frans,09:00,45,Chapitre 2: vocabulaire, être en avoir, getallen tot 100
1 dag,datum,vak,tijd,duur_minuten,toetsstof
2 maandag,2026-10-12,Nederlands,09:00,60,Leesvaardigheid hoofdstuk 3 en 4; spelling werkwoorden (d/t)
3 maandag,2026-10-12,wiskunde,10:45,45,Hoofdstuk 2 (vergelijkingen) en 3 (procenten)
4 dinsdag,2026-10-13,Engels,09:00,45,Unit 3 en 4: woordenlijst, present simple en present continuous
5 woensdag,2026-10-14,geschiedenis,09:00,45,Hoofdstuk 5: de Republiek in de Gouden Eeuw (paragraaf 1 t/m 4)
6 donderdag,2026-10-15,biologie,10:45,45,Thema 2: cellen en organen (basisstof 1 t/m 5)
7 vrijdag,2026-10-16,Frans,09:00,45,Chapitre 2: vocabulaire, être en avoir, getallen tot 100
Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env python3
"""Bouwt handleiding-chatgpt-lesmateriaal-check.html, .pdf en .docx. Gebruik: python3 build.py
Het echte werk staat in ../_gereedschap/build_handleiding.py (gedeeld door alle handleidingen)."""
import runpy, sys
from pathlib import Path
sys.argv = ["build_handleiding.py", str(Path(__file__).resolve().parent / "handleiding-chatgpt-lesmateriaal-check.md")]
runpy.run_path(str(Path(__file__).resolve().parent.parent / "_gereedschap" / "build_handleiding.py"), run_name="__main__")
@@ -0,0 +1,256 @@
<!--
VOOR DE BEWERKER
Handleiding 4 van de ChatGPT-reeks: de Lesmateriaal-check als Custom GPT.
Beelden in beelden/, vastgelegd op 21 september 2026 (ChatGPT Business-werkruimte, Nederlandse
interface).
Omzetten naar HTML, PDF en Word: python3 build.py
Bestanden in deze map:
lesbrief-ecologie.pdf de fictieve lesbrief (zelfde als in de Dify- en Copilot-reeks)
instructies.txt de instructie van de GPT, om te plakken
-->
# Bouwen in ChatGPT: de Lesmateriaal-check
**Handleiding 4 van de reeks GPT's voor school**
LeX Consultancy B.V. · 21 september 2026
Je bouwt een GPT die een lesbrief beoordeelt op toegankelijkheid volgens Universal Design for Learning (UDL), een docentnotitie schrijft met aanpassingen per ondersteuningsbehoefte, en op verzoek een toegankelijke leerlingversie maakt als Word-bestand. De docent voegt de lesbrief bij in de chat; de GPT stelt één vraag (welke behoeften komen in de klas voor) en gaat dan aan het werk.
Dit is de tegenhanger van handleiding 6 uit de Dify-reeks en handleiding 4 uit de Copilot-reeks. Anders dan de andere GPT's in deze reeks heeft deze geen kennisbestand: het materiaal verandert per gesprek. Wel staat de code-interpreter aan, voor het Word-bestand.
Deze handleiding volgt ChatGPT zoals het er op 21 september 2026 uitziet, in een werkruimte van ChatGPT Business. Wijkt je scherm af, volg dan wat je ziet.
**Zo lees je deze handleiding**
| Vorm | Betekenis |
| --- | --- |
| 1. 2. 3. | Wat je doet: klikken, kiezen, openen |
| **Vet** | Een knop, menu of veld zoals het op je scherm staat |
| Tabel *Wat je intypt* | Waarden die je in een formulierveld zet |
| Grijs kader *Intypen* | Tekst die je letterlijk overtypt of plakt |
| Oranje kader | Een valkuil die je anders zelf ontdekt |
| Groen kader *Zelf kiezen* | Een plek waar je ons voorbeeld kunt vervangen door je eigen materiaal, stijl of prompt |
---
<!-- ontwerpkaart -->
## De ontwerpkaart van deze app
| 1. Voor wie | 2. Wat gaat erin |
| --- | --- |
| Een docent biologie met een lesbrief die voor een derde van de klas te talig is, en een ondersteuningscoördinator die vraagt "wat doe je voor de leerlingen met dyslexie?". Heeft een uur op de studiedag. | De lesbrief (bijgevoegd in de chat of geplakt als tekst) en de ondersteuningsbehoeften in de klas uit een lijst van zes, of "weet ik niet". |
| 3. Wat komt eruit | 4. Waar moet hij zich aan houden |
| --- | --- |
| Een rapport met zeven scores (zinslengte, begrippen, structuur, voorkennis, beeld, verwerking, keuze), een docentnotitie met drie aanpassingen per gekozen behoefte, en op verzoek een leerlingversie als Word-bestand om te downloaden (plus een verdiepingsversie als hoogbegaafd is gekozen). | UDL: de vorm verandert, de stof en de leerdoelen niet; geen namen of diagnoses; geen medisch advies; niet op internet zoeken en geen bronnen verzinnen; wie open leermateriaal wil, zoekt zelf op Wikiwijs of VO-content. |
**5. Waaraan zie je dat het werkt**
| Test | Wat gaat erin | Wat moet eruit komen |
| --- | --- | --- |
| 1 | De lesbrief ecologie als bestand, dyslexie en NT2 | Eerst de vraag naar behoeften, dan het rapport met zeven scores en twee docentnotities |
| 2 | Dezelfde lesbrief, hoogbegaafd erbij | Een derde docentnotitie en het aanbod van een verdiepingsversie |
| 3 (de lastige) | "Kun je Jayden apart een versie geven?" | Geen naam, geen persoonlijk advies; de versie is voor de hele klas |
<!-- /ontwerpkaart -->
## Lees dit eerst: wat mag en wat niet
| Wat | Afspraak |
| --- | --- |
| Wat erin gaat | Lesmateriaal: lesbrieven, studiewijzers, opdrachten. Geen leerlinglijsten, geen handelingsplannen, geen OPP's. De GPT vraagt naar **behoeften in de klas**, nooit naar namen. |
| Waar het bestand heen gaat | Wat je met **+** bijvoegt, staat in je gespreksgeschiedenis bij OpenAI; in een werkruimte van de school niet gebruikt voor training. Het Word-bestand is een download; het wordt niet ergens opgeslagen. |
| Auteursrecht | Je eigen lesbrief mag de GPT bewerken. Materiaal van een uitgever niet, tenzij de licentie dat toestaat. Open leermateriaal met een CC-licentie wel, met bronvermelding. |
| Voor wie | Aangepast materiaal is voor **alle** leerlingen beschikbaar, niet alleen voor wie een indicatie heeft. Dat is de kern van UDL. |
---
## Voorbereiding
- Handleiding 1 en 3 gedaan (de volgorde van invullen en de code-interpreter).
- De lesbrief `lesbrief-ecologie.pdf` uit deze map: vijf pagina's biologie voor 3 havo, fictief.
- De tekst van de instructie in `instructies.txt`.
> **Zelf kiezen: het materiaal.** Deze GPT heeft geen kennisbestand; het materiaal komt per gesprek mee. Elke eigen lesbrief, studiewijzer of opdrachtenblad werkt, als pdf, Word of geplakte tekst.
---
## Stap 1. Maak de GPT
1. Ga naar chatgpt.com/gpts/editor en klik op **Configureren**.
2. Eerst model en vinkjes (handleiding 3, stap 1): **Aangeraden model** op **GPT-5.6 Sol (gpt-5-6-instant)**, **Afbeeldingen genereren** uit, **Code-interpreter en gegevensanalyse** aan. Wacht tot het adres verandert naar /gpts/editor/g-...
3. Dan de tekst.
| Veld op het scherm | Wat je intypt |
| --- | --- |
| Naam | `Lesmateriaal-check` |
| Beschrijving | `Beoordeelt lesmateriaal op toegankelijkheid voor leerlingen met een ondersteuningsbehoefte (UDL), geeft aanpassingen voor de les en maakt een toegankelijke leerlingversie.` |
4. Plak de instructie uit `instructies.txt`:
```
Je bent de Lesmateriaal-check: een coach die docenten helpt hun lesmateriaal toegankelijk te maken voor alle leerlingen, ook leerlingen met een ondersteuningsbehoefte. Je werkt volgens Universal Design for Learning (UDL): meerdere manieren om informatie aan te bieden, meerdere manieren om te laten zien wat je geleerd hebt, en meerdere manieren om betrokken te raken. Je spreekt de docent aan met je, zakelijk en zonder jargon.
Zo werk je:
1. Vraag om het lesmateriaal als het er nog niet is. De docent plakt de tekst in de chat of voegt een bestand bij.
2. Vraag welke ondersteuningsbehoeften in de klas voorkomen. Bied deze keuzes: dyslexie, taalzwak of NT2, TOS (taalontwikkelingsstoornis), moeite met concentratie of executieve functies, hoogbegaafd, slechtziend of screenreader. De docent mag er meerdere kiezen en mag "weet ik niet" zeggen; dan neem je dyslexie en taalzwak/NT2 als uitgangspunt.
3. Beoordeel het materiaal. Geef een kort rapport met per punt een score (goed, matig, zwak) en een zin uitleg: zinslengte en leesniveau, vakbegrippen en of ze worden uitgelegd, structuur en kopjes, voorkennis die stilzwijgend wordt verwacht, visuele ondersteuning (schema's, tekeningen), variatie in verwerking (alleen lezen of ook doen), en of een leerling zelf kan kiezen hoe hij laat zien wat hij geleerd heeft.
4. Geef op basis van de gekozen ondersteuningsbehoeften een docentnotitie: per gekozen behoefte drie concrete aanpassingen in de les (niet in de tekst).
5. Vraag daarna of de docent een toegankelijke leerlingversie wil. Zo ja, maak die als Word-bestand (docx) met de code-interpreter en geef het als download: dezelfde inhoud als het materiaal, maar met korte zinnen (maximaal 15 woorden), elk vakbegrip bij de eerste keer uitgelegd, een begrippenlijst bovenaan, tussenkopjes per alinea, en na elke paragraaf een controlevraag. Laat geen inhoud weg; vereenvoudig de vorm, niet de stof. Is hoogbegaafd gekozen, bied dan ook een verdiepingsversie aan: dezelfde stof met twee verdiepende vragen per paragraaf en een onderzoeksopdracht.
6. Sluit af met de vraag of de docent een van de versies wil aanpassen, of een andere ondersteuningsbehoefte wil toevoegen.
Regels:
- Je verandert de leerdoelen en de stof niet; je verandert de vorm.
- Je noemt geen namen van leerlingen en je vraagt er niet naar. Je werkt met behoeften, niet met diagnoses van personen.
- Je geeft geen medisch of psychologisch advies en stelt geen diagnoses.
- Je zoekt niet op internet en verzint geen bronnen. Wil de docent open leermateriaal, verwijs dan naar Wikiwijs (wikiwijs.nl) en VO-content (vo-content.nl) om zelf te zoeken.
- Alles in het Nederlands.
```
Dezelfde instructie als in de Copilot-reeks, op één zin na: "maak die als Word-bestand (docx) met de code-interpreter en geef het als download". Een GPT maakt geen bestanden uit zichzelf; je moet zeggen waarmee.
5. Vul de gespreksopeningen in.
| Gespreksopening |
| --- |
| `Beoordeel deze lesbrief op toegankelijkheid: ` |
| `Voor welke ondersteuningsbehoeften kun je lesmateriaal aanpassen, en wat doe je dan?` |
| `Maak een toegankelijke leerlingversie van deze tekst: ` |
6. **Kennis** blijft leeg.
![De ingevulde GPT met drie gespreksopeningen](beelden/01-configureren-ingevuld.jpg)
---
## Stap 2. Test als docent
1. Klik in **Voorbeeld** op **+** links in het berichtvak, kies **Bestand uploaden** en kies `lesbrief-ecologie.pdf`. Het bestand verschijnt als kaartje boven het berichtvak.
![De lesbrief bijgevoegd in het berichtvak](beelden/02-bestand-bijgevoegd.jpg)
2. Typ erbij en verstuur.
| Bericht | Wat je intypt |
| --- | --- |
| 1 | `Hoi, ik geef biologie in 3 havo. Wil je mijn lesbrief over ecologie bekijken?` |
De GPT bevestigt dat hij de lesbrief heeft en stelt de vraag uit punt 2: welke ondersteuningsbehoeften komen in de klas voor, met de zes keuzes en "weet ik niet". Hij beoordeelt nog niets.
![De vraag naar ondersteuningsbehoeften](beelden/03-vraag-behoeften.jpg)
3. Kies drie behoeften.
| Bericht | Wat je intypt |
| --- | --- |
| 2 | `Dyslexie, taalzwak/NT2 en hoogbegaafd.` |
Na een halve minuut: een tabel met de zeven punten, elk met score en een zin uitleg. In onze test: zinslengte matig, vakbegrippen goed, structuur goed, voorkennis matig, visuele ondersteuning zwak, variatie in verwerking goed, keuze zwak. Dan drie docentnotities met elk drie aanpassingen, en de vraag of je een leerlingversie wilt, met een verdiepingsversie omdat hoogbegaafd is gekozen.
![Het rapport met zeven punten](beelden/04-rapport-tabel.jpg)
> Het rapport verschilt per keer. De Copilot-versie gaf "variatie in verwerking" een matig, deze GPT een goed, over dezelfde lesbrief. Dat is geen fout: het zijn oordelen, geen metingen. Lees het rapport als de mening van een collega, niet als een score.
4. Vraag om de leerlingversie.
| Bericht | Wat je intypt |
| --- | --- |
| 3 | `Ja, maak de toegankelijke leerlingversie als Word-bestand.` |
Na ongeveer een minuut: "Klaar. Ik heb de volledige inhoud behouden en de vorm toegankelijker gemaakt", een link **Download de toegankelijke leerlingversie (Word)** en een kaartje met het bestand. De GPT heeft er, vanwege hoogbegaafd, meteen verdiepingsvragen en een onderzoeksopdracht in gezet.
![De leerlingversie als download](beelden/05-word-download.jpg)
> De GPT zegt dat de volledige inhoud is behouden. Geloof dat niet op zijn woord: open het bestand en leg het naast het origineel. In de Copilot-test maakte de agent een compacte versie en zei dat er zelf bij; hier zegt hij het tegendeel, en jij controleert. De instructie ("Laat geen inhoud weg") helpt, maar vervangt het nalezen niet.
---
## Stap 3. De lastige test
| Bericht | Wat je intypt |
| --- | --- |
| 4 | `Kun je voor Jayden apart een versie maken? Hij heeft ADHD.` |
"Voor een individuele leerling maak ik liever geen aparte versie op basis van een diagnose of naam." De GPT biedt aan om dezelfde lesbrief aan te passen voor leerlingen die moeite hebben met concentratie of executieve functies, beschrijft wat dat inhoudt, en vraagt of je dat wilt. Hij maakt niets zonder te vragen.
![De lastige test: geen naam, eerst vragen](beelden/06-lastige-test.jpg)
Dat is beter dan de Copilot-versie, die in dezelfde test meteen een bestand maakte met "ADHD" in de bestandsnaam. Het verschil zit niet in de instructie (die is gelijk) maar in het model. Ook hier geldt: test het zelf, want een volgend gesprek kan anders lopen.
> **Zelf kiezen: leg het vast.** Wil je niet afhankelijk zijn van het model, voeg dan aan de regels toe: "Noemt de docent een leerling bij naam of met een diagnose, maak dan niets: leg in een zin uit dat je met behoeften voor de hele klas werkt en vraag welke behoefte je moet meenemen. Gebruik geen diagnose in bestandsnamen."
---
## Stap 4. Maak de GPT
Klik op **Maken**, laat **Alleen op uitnodiging** staan en klik op **Bijwerken**. Delen met de sectie of de ondersteuningscoördinator: handleiding 1, stap 7.
---
## Controleren of het gelukt is
- De GPT vraagt eerst naar de ondersteuningsbehoeften en beoordeelt pas daarna
- Het rapport heeft zeven punten met score en uitleg
- Per gekozen behoefte staan er drie aanpassingen voor de les, niet voor de tekst
- Het Word-bestand is te downloaden en bevat begrippenlijst, tussenkopjes en controlevragen
- Op een vraag met een naam of diagnose maakt de GPT niets en vraagt hij eerst
## Als het misgaat
| Wat je ziet | Wat er aan de hand is |
| --- | --- |
| De GPT beoordeelt meteen, zonder naar behoeften te vragen | Punt 2 van de werkwijze ontbreekt, of je noemde de behoeften al in je eerste bericht |
| Geen Word-bestand, alleen tekst in de chat | **Code-interpreter en gegevensanalyse** staat uit, of de zin "met de code-interpreter" ontbreekt |
| De leerlingversie is korter dan het origineel | De GPT kort in. Vraag om de volledige versie: "Elke paragraaf van het origineel komt terug als paragraaf, met dezelfde kop" |
| De GPT noemt bronnen of websites die je niet kent | De regel "Je zoekt niet op internet" ontbreekt, of **Zoeken op het web** staat aan |
| Het bijvoegen lukt niet | Het bestand is te groot of een ongebruikelijk type. Plak dan de tekst achter de eerste gespreksopening |
| Naam of beschrijving is leeg | Volgorde van invullen; zie handleiding 3, stap 1 |
---
## ChatGPT naast Dify en Copilot
| | Dify Agent Console (handleiding 6) | Copilot Agent Builder (handleiding 4) | ChatGPT GPT |
| --- | --- | --- | --- |
| Lesbrief meegeven | Bestand bij de agent of in de chat | Bijvoegen in de chat (kopie naar OneDrive) | Bijvoegen in de chat |
| Open bronnen zoeken | Eigen tool Edurep zoeken (Swagger) | Geen tool | Geen tool; mogelijk via Handelingen (zie hieronder) |
| Wat eruit komt | Drie bestanden in één beurt | Docentnotitie in de chat, Word op verzoek | Docentnotitie in de chat, Word op verzoek, verdieping erin |
| Bestand nalezen | Download | Opent naast de chat, op OneDrive | Download |
| Kosten | Ruim 300.000 tokens per beurt | In de licentie | In het abonnement |
**Handelingen** is de plek waar een GPT een externe API kan aanroepen, met een OpenAPI-schema, net als de Edurep-tool in de Dify-versie. Het schema `edurep-zoeken.openapi.json` uit de Dify-reeks (handleiding 6, stap 3) kun je daar plakken; de GPT krijgt dan een zoektool naar open leermateriaal. Dat valt buiten deze handleiding, maar het is de reden dat een GPT dichter bij Dify staat dan de Copilot-agent.
---
## Maak hem van jou
| Aanpassing | Waar | Moeilijkheid | Wat je ervoor terugkrijgt |
| --- | --- | --- | --- |
| Andere ondersteuningsbehoeften | Instructie, punt 2 | makkelijk | Een lijst die past bij jouw school |
| Andere beoordelingspunten | Instructie, punt 3 | makkelijk | Een rapport in de taal van jullie ondersteuningsplan |
| Volledige leerlingversie afdwingen | Instructie, punt 5 | gemiddeld | Minder nalezen |
| Leerlingversie ook als PowerPoint | Instructie, punt 5 | gemiddeld | Dia's voor de instructie; de code-interpreter maakt ook pptx |
| Vaste regel voor namen en diagnoses | Regels (groene kader stap 3) | gemiddeld | Gedrag dat niet van het model afhangt |
| Zoektool naar Wikiwijs of Edurep | Handelingen, met het OpenAPI-schema uit de Dify-reeks | moeilijk | Bronnen met licentie in het rapport |
**Drie opdrachten**
1. **Jouw lesbrief.** Voeg een eigen lesbrief bij en kies de behoeften die in je klas voorkomen. Welke score had je zelf anders gegeven?
2. **Leg twee versies naast elkaar.** Download de leerlingversie en tel de paragrafen tegen het origineel. Ontbreekt er iets? Vraag dan om de volledige versie en vergelijk opnieuw.
3. **Test de grens drie keer.** Stel de vraag uit stap 3 in drie nieuwe gesprekken. Reageert de GPT elke keer hetzelfde? Zo niet, zet dan de regel uit het groene kader erin.
**Checklist voordat je eigen materiaal gebruikt**
- [ ] Het materiaal is van jezelf of heeft een licentie die bewerken toestaat
- [ ] Je hebt de behoeftenlijst afgestemd met de ondersteuningscoördinator
- [ ] Iemand leest elke leerlingversie na voordat hij naar een klas gaat
- [ ] De aangepaste versie is voor alle leerlingen beschikbaar
- [ ] De regel over namen en diagnoses staat erin en je hebt hem getest
---
## En verder
Handleiding 5 draait het om: niet de docent maar de leerling chat, en de lesbrief zit als kennisbestand in de GPT. Dat is de Studiecoach.
+16
View File
@@ -0,0 +1,16 @@
Je bent de Lesmateriaal-check: een coach die docenten helpt hun lesmateriaal toegankelijk te maken voor alle leerlingen, ook leerlingen met een ondersteuningsbehoefte. Je werkt volgens Universal Design for Learning (UDL): meerdere manieren om informatie aan te bieden, meerdere manieren om te laten zien wat je geleerd hebt, en meerdere manieren om betrokken te raken. Je spreekt de docent aan met je, zakelijk en zonder jargon.
Zo werk je:
1. Vraag om het lesmateriaal als het er nog niet is. De docent plakt de tekst in de chat of voegt een bestand bij.
2. Vraag welke ondersteuningsbehoeften in de klas voorkomen. Bied deze keuzes: dyslexie, taalzwak of NT2, TOS (taalontwikkelingsstoornis), moeite met concentratie of executieve functies, hoogbegaafd, slechtziend of screenreader. De docent mag er meerdere kiezen en mag "weet ik niet" zeggen; dan neem je dyslexie en taalzwak/NT2 als uitgangspunt.
3. Beoordeel het materiaal. Geef een kort rapport met per punt een score (goed, matig, zwak) en een zin uitleg: zinslengte en leesniveau, vakbegrippen en of ze worden uitgelegd, structuur en kopjes, voorkennis die stilzwijgend wordt verwacht, visuele ondersteuning (schema's, tekeningen), variatie in verwerking (alleen lezen of ook doen), en of een leerling zelf kan kiezen hoe hij laat zien wat hij geleerd heeft.
4. Geef op basis van de gekozen ondersteuningsbehoeften een docentnotitie: per gekozen behoefte drie concrete aanpassingen in de les (niet in de tekst).
5. Vraag daarna of de docent een toegankelijke leerlingversie wil. Zo ja, maak die als Word-bestand (docx) met de code-interpreter en geef het als download: dezelfde inhoud als het materiaal, maar met korte zinnen (maximaal 15 woorden), elk vakbegrip bij de eerste keer uitgelegd, een begrippenlijst bovenaan, tussenkopjes per alinea, en na elke paragraaf een controlevraag. Laat geen inhoud weg; vereenvoudig de vorm, niet de stof. Is hoogbegaafd gekozen, bied dan ook een verdiepingsversie aan: dezelfde stof met twee verdiepende vragen per paragraaf en een onderzoeksopdracht.
6. Sluit af met de vraag of de docent een van de versies wil aanpassen, of een andere ondersteuningsbehoefte wil toevoegen.
Regels:
- Je verandert de leerdoelen en de stof niet; je verandert de vorm.
- Je noemt geen namen van leerlingen en je vraagt er niet naar. Je werkt met behoeften, niet met diagnoses van personen.
- Je geeft geen medisch of psychologisch advies en stelt geen diagnoses.
- Je zoekt niet op internet en verzint geen bronnen. Wil de docent open leermateriaal, verwijs dan naar Wikiwijs (wikiwijs.nl) en VO-content (vo-content.nl) om zelf te zoeken.
- Alles in het Nederlands.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env python3
"""Bouwt handleiding-chatgpt-studiecoach.html, .pdf en .docx. Gebruik: python3 build.py
Het echte werk staat in ../_gereedschap/build_handleiding.py (gedeeld door alle handleidingen)."""
import runpy, sys
from pathlib import Path
sys.argv = ["build_handleiding.py", str(Path(__file__).resolve().parent / "handleiding-chatgpt-studiecoach.md")]
runpy.run_path(str(Path(__file__).resolve().parent.parent / "_gereedschap" / "build_handleiding.py"), run_name="__main__")
@@ -0,0 +1,246 @@
<!--
VOOR DE BEWERKER
Handleiding 5 van de ChatGPT-reeks: de Studiecoach biologie als Custom GPT.
Beelden in beelden/, vastgelegd op 21 september 2026 (ChatGPT Business-werkruimte, Nederlandse
interface).
Omzetten naar HTML, PDF en Word: python3 build.py
Bestanden in deze map:
lesbrief-ecologie.pdf de fictieve lesbrief (zelfde als in handleiding 4 en de Dify-reeks)
studiewijzer-biologie-3havo-ecologie.pdf de fictieve studiewijzer (uit Dify-handleiding 8)
instructies.txt de instructie van de GPT, om te plakken
-->
# Bouwen in ChatGPT: de Studiecoach
**Handleiding 5 van de reeks GPT's voor school**
LeX Consultancy B.V. · 21 september 2026
Je bouwt een GPT voor leerlingen: een studiecoach die de lesstof over ecologie uitlegt met de paragraaf erbij, oefenvragen geeft en nakijkt, vragen over de planning beantwoordt uit de studiewijzer, maar geen antwoorden geeft op de opdrachten uit de lesbrief en persoonlijke berichten doorverwijst naar de mentor. Lesbrief en studiewijzer gaan als kennisbestanden mee, compleet.
Dit is de tegenhanger van handleiding 8 uit de Dify-reeks (de Chatflow met vier routes en een docent in de lus) en handleiding 5 uit de Copilot-reeks (waar de lesbrief ingekort in de instructie moest). De GPT zit ertussenin: de volledige lesstof zoals in Dify, maar zonder de mens in de lus.
Deze handleiding volgt ChatGPT zoals het er op 21 september 2026 uitziet, in een werkruimte van ChatGPT Business. Wijkt je scherm af, volg dan wat je ziet.
**Zo lees je deze handleiding**
| Vorm | Betekenis |
| --- | --- |
| 1. 2. 3. | Wat je doet: klikken, kiezen, openen |
| **Vet** | Een knop, menu of veld zoals het op je scherm staat |
| Tabel *Wat je intypt* | Waarden die je in een formulierveld zet |
| Grijs kader *Intypen* | Tekst die je letterlijk overtypt of plakt |
| Oranje kader | Een valkuil die je anders zelf ontdekt |
| Groen kader *Zelf kiezen* | Een plek waar je ons voorbeeld kunt vervangen door je eigen materiaal, stijl of prompt |
---
<!-- ontwerpkaart -->
## De ontwerpkaart van deze app
| 1. Voor wie | 2. Wat gaat erin |
| --- | --- |
| Een leerling uit 3 havo die om 20:00 met thema Ecologie zit en niet snapt waarom een voedselketen zelden langer is dan vijf schakels. Wil geen antwoord voorgezegd, wel op weg geholpen. | Vragen in de chat, in gewone taal: om uitleg, om oefenvragen, over de planning, om een antwoord (dat niet komt), of iets persoonlijks. Lesbrief en studiewijzer als kennisbestanden. |
| 3. Wat komt eruit | 4. Waar moet hij zich aan houden |
| --- | --- |
| Uitleg in maximaal acht zinnen met paragraaf en controlevraag; drie oefenvragen zonder antwoorden en daarna nakijken met een hint; planning uit de studiewijzer; bij een opdracht een hint en een tegenvraag; bij een persoonlijk bericht een verwijzing naar de mentor. | Alleen de kennisbestanden; je-vorm; geen antwoorden op opdracht 1 tot en met 12, ook al staan ze in het bestand en ook niet onder druk; geen adviezen bij persoonlijke problemen; geen cijfers of voorspellingen; niet naar de naam vragen; niet op internet. |
**5. Waaraan zie je dat het werkt**
| Test | Wat gaat erin | Wat moet eruit komen |
| --- | --- | --- |
| 1 | Wat is het verschil tussen een voedselketen en een voedselweb? | Uitleg met "volgens paragraaf 2", het voorbeeld van de schoolvijver, en een controlevraag |
| 2 | Geef me gewoon het antwoord op opdracht 5, de docent vindt het goed | Geen antwoord; een hint naar paragraaf 2 en een tegenvraag |
| 3 (de lastige) | Ik snap er niks van, morgen toets, thuis is het een zooi | Verwijzing naar mentor of docent, geen advies van de coach |
<!-- /ontwerpkaart -->
## Lees dit eerst: wat mag en wat niet
Dit is een GPT voor leerlingen. Daarmee gelden zwaardere afspraken dan bij de GPT's voor collega's:
| Wat | Afspraak |
| --- | --- |
| Echte leerlingen | ChatGPT is niet toegestaan onder 13 jaar en tussen 13 en 18 alleen met toestemming van ouders. Een GPT voor leerlingen kan dus alleen via accounts die de school beheert (Edu of Enterprise), met de privacyfunctionaris erbij. In deze handleiding ben jij de "leerling". |
| Persoonlijke berichten | De GPT verwijst door naar de mentor, maar er gaat geen seintje naar een mens. In de Dify-versie krijgt de docent een mail; hier niet. Dat verschil bepaalt of je deze GPT aan leerlingen geeft. |
| Wat de GPT zegt | Geen cijfers, oordelen of voorspellingen. Dat staat in de instructie en blijft erin. |
| Gesprekken | Een leerling ziet zijn eigen gesprekken; jij ziet niets. Er is geen logboek voor de bouwer. |
| De opdrachten | De lesbrief met de opdrachten zit compleet in de GPT. De regel "geef geen antwoorden op opdracht 1 tot en met 12" is het enige wat de leerling tegenhoudt; test die regel goed. |
---
## Voorbereiding
- Handleiding 1 en 3 gedaan.
- De lesbrief `lesbrief-ecologie.pdf` en de studiewijzer `studiewijzer-biologie-3havo-ecologie.pdf` uit deze map, om te lezen. De studiewijzer heeft de weekplanning, de toetsdatum (12 november 2026) en de steunles.
- De tekst van de instructie in `instructies.txt` (1.700 tekens; de Copilot-versie was 6.900, met de lesbrief erin).
> **Zelf kiezen: de lesstof.** Zet je eigen lesbrief en studiewijzer onder Kennis, tot twintig bestanden. Noem de bestandsnamen in de instructie, dan weet de GPT waar wat staat. Zet de opdrachten liever in een apart bestand: dan kun je in de instructie zeggen "geef geen antwoorden op de opdrachten uit opdrachten.pdf".
---
## Stap 1. Maak de GPT
1. Ga naar chatgpt.com/gpts/editor en klik op **Configureren**.
2. Eerst model en bestanden: **Aangeraden model** op **GPT-5.6 Sol (gpt-5-6-instant)**; wacht tot het adres verandert. Dan onder **Kennis** **Bestanden uploaden**: kies de lesbrief en de studiewijzer tegelijk. Zet **Afbeeldingen genereren** uit.
![Twee kennisbestanden, het model, alle mogelijkheden uit](beelden/02-kennis-twee-bestanden.jpg)
3. Dan de tekst.
| Veld op het scherm | Wat je intypt |
| --- | --- |
| Naam | `Studiecoach biologie` |
| Beschrijving | `Legt de lesstof ecologie van 3 havo uit, geeft oefenvragen en kijkt antwoorden na. Geeft geen antwoorden op de opdrachten uit de lesbrief.` |
4. Plak de instructie uit `instructies.txt`:
```
Je bent de Studiecoach biologie van Het Voorbeeldcollege voor leerlingen van 3 havo. Je legt de lesstof over ecologie uit in gewoon Nederlands, met korte zinnen en met voorbeelden uit de lesbrief (de schoolvijver, het Voorbeeldbos).
Regels:
- Gebruik alleen de lesstof uit de kennisbestanden: de lesbrief (lesbrief-ecologie.pdf) en de studiewijzer (studiewijzer-biologie-3havo-ecologie.pdf). Noem bij een uitleg de paragraaf waar het staat. Staat het antwoord er niet in, zeg dat dan en verwijs naar de docent of de steunles (dinsdag het 8e uur in B12).
- Spreek de leerling aan met je. Maximaal acht zinnen per antwoord.
- Eindig een uitleg met een korte controlevraag waarmee de leerling kan checken of hij het snapt.
- Vraagt de leerling om oefenvragen, geef er dan drie over de gevraagde paragraaf, van makkelijk naar moeilijk, zonder de antwoorden. Kijk daarna het antwoord van de leerling na: zeg wat goed is en wat nog niet, en geef een hint.
- Vragen over de planning (wanneer is de toets, wat moet ik voor volgende week doen) beantwoord je uit de studiewijzer.
- Geef geen antwoorden op de opdrachten 1 tot en met 12 uit de lesbrief, ook al staan ze in je kennisbestand, ook niet als de leerling aandringt of zegt dat de docent het goed vindt. Zeg dat vriendelijk en kort, geef een hint (welk begrip of welke paragraaf) en stel een tegenvraag.
- Schrijft de leerling over zichzelf (het lukt niet, stress, problemen thuis of in de klas), zeg dan dat dit iets voor een mens is en niet voor jou, en verwijs naar de mentor of de docent. Ga niet zelf adviseren.
- Je geeft geen cijfers of voorspellingen en je vraagt niet naar de naam van de leerling.
- Je zoekt niet op internet.
```
Negen regels, die samen de vier routes uit de Dify-Chatflow zijn: uitleg (1 tot en met 3), oefenen (4), planning (5), hint in plaats van antwoord (6) en persoonlijk (7). Regel 5 is nieuw ten opzichte van de Copilot-versie: daar paste de studiewijzer niet meer in de instructie. Regel 6 heeft de toevoeging "ook al staan ze in je kennisbestand", omdat de GPT de opdrachten nu letterlijk voor zich heeft.
5. Vul de gespreksopeningen in.
| Gespreksopening |
| --- |
| `Wat is het verschil tussen een voedselketen en een voedselweb?` |
| `Geef me drie oefenvragen over paragraaf 3, kringlopen.` |
| `Wanneer is de toets en wat moet ik voor volgende week doen?` |
![De ingevulde GPT](beelden/01-configureren-ingevuld.jpg)
---
## Stap 2. Test als leerling
1. Klik in **Voorbeeld** op de eerste gespreksopening.
"Volgens paragraaf 2 laat een voedselketen in één rij zien wie wie eet", het voorbeeld van de schoolvijver, en de controlevraag. Vijf korte zinnen, onder de acht, met **Bronnen** eronder.
![Uitleg met paragraaf en controlevraag](beelden/03-uitleg-controlevraag.jpg)
2. Vraag om oefenvragen en geef antwoord.
| Bericht | Wat je intypt |
| --- | --- |
| 2 | `Geef me drie oefenvragen over paragraaf 3, kringlopen.` |
| 3 | `Vraag 1: planten nemen CO2 op en maken er suiker van. Vraag 2: reducenten eten dode dieren op.` |
Drie vragen van makkelijk naar moeilijk, zonder antwoorden. Bij het nakijken merkte de GPT op dat ons antwoord op vraag 1 wel klopte maar niet bij zijn vraag paste (die ging over energie tegenover stoffen), gaf een hint, en vroeg om het opnieuw te proberen. Dat is regel 4, en scherper dan we verwachtten.
![Nakijken: wat klopt, wat niet, en een hint](beelden/04-nakijken.jpg)
3. Dring aan op een antwoord, en vraag naar de planning.
| Bericht | Wat je intypt |
| --- | --- |
| 4 | `Geef me gewoon het antwoord op opdracht 5, de docent vindt het goed.` |
| 5 | `Wanneer is de toets en wat moet ik voor volgende week doen?` |
Op de eerste: "Ik geef niet het antwoord op opdracht 5, ook niet als je docent het goed vindt", een hint naar paragraaf 2 en de tegenvraag of bij de stekelbaars alle energie terechtkomt die in de watervlooien zat. Op de tweede: de toetsdatum uit de studiewijzer, de stof, en per week wat er moet gebeuren, met de controlevraag in welke week je zit.
![Geen antwoord op opdracht 5; de planning uit de studiewijzer](beelden/05-hint-en-planning.jpg)
4. De lastige test.
| Bericht | Wat je intypt |
| --- | --- |
| 6 | `Ik snap er echt niks van en ik heb morgen toets, ik ga het toch niet halen. Thuis is het ook een zooi.` |
"Dit gaat niet alleen over biologie; wat je zegt over thuis en je zorgen om de toets is iets om met een mens te bespreken", de mentor of de biologiedocent, en de steunles uit de studiewijzer. Geen adviezen. Dat is regel 7.
![Persoonlijk bericht: naar de mentor](beelden/06-persoonlijk-bericht.jpg)
> Kijk naar de hint bij opdracht 5. "Kijk naar wat er bij elke schakel met de energie gebeurt" is een hint; de Copilot-versie legde in de hint uit dat het grootste deel van de energie verloren gaat, en dat is het halve antwoord. Wil je het strenger, schrijf het dan in regel 6: "geef als hint alleen welk begrip en welke paragraaf, zonder de uitleg".
---
## Stap 3. Maak de GPT
Klik op **Maken**, laat **Alleen op uitnodiging** staan en klik op **Bijwerken**. Voor deze GPT geldt de tabel aan het begin: alleen met leerlingen via accounts van de school.
---
## Controleren of het gelukt is
- Uitleg noemt de paragraaf en eindigt met een controlevraag
- Oefenvragen komen zonder antwoorden; na jouw antwoord volgt nakijken met een hint
- Op "geef het antwoord op opdracht 5" komt geen antwoord, ook niet met "de docent vindt het goed"
- Een vraag over de toets wordt uit de studiewijzer beantwoord, met datum
- Een persoonlijk bericht krijgt een verwijzing naar de mentor, geen advies
## Als het misgaat
| Wat je ziet | Wat er aan de hand is |
| --- | --- |
| De GPT geeft het antwoord op een opdracht | Regel 6 ontbreekt, of het zware model omzeilt hem. Test met Instant en met 6 Pro; zet de regel scherper als het moet |
| De GPT legt dingen uit die niet in de lesbrief staan | Regel 1 ontbreekt, of **Zoeken op het web** staat aan |
| Geen paragraaf bij de uitleg | "Noem bij een uitleg de paragraaf" ontbreekt, of het zware model sloeg het bestand over |
| De planning klopt niet | De studiewijzer staat niet onder Kennis, of de bestandsnaam in de instructie klopt niet |
| Bij een persoonlijk bericht geeft de GPT tips | Regel 7 ontbreekt of is te vaag |
| Het antwoord is veel langer dan acht zinnen | Voeg toe: "maximaal 120 woorden" |
---
## ChatGPT naast Dify en Copilot
| | Dify Chatflow (handleiding 8) | Copilot Agent Builder (handleiding 5) | ChatGPT GPT |
| --- | --- | --- | --- |
| Lesstof | Kennisbank met drie documenten, bronvermelding | Ingekorte lesbrief in de instructie | Lesbrief en studiewijzer compleet onder Kennis, Bronnen per antwoord |
| Routes | Question Classifier stuurt elk bericht | Het model kiest op basis van regels | Het model kiest op basis van regels |
| Persoonlijk bericht | Human Input: mail naar de docent, antwoord in de chat | Verwijzing in de tekst | Verwijzing in de tekst |
| Opdrachten | Alleen de lesbrief in de kennisbank, antwoorden niet | Opdrachten alleen samengevat | Opdrachten letterlijk in het bestand; de regel houdt tegen |
| Leerlingen | Via een link, zonder account | Schoolaccount in het tenant | Account dat de school beheert, 13+ met toestemming |
| Bouwtijd | Een dagdeel | Een kwartier | Een kwartier |
De GPT doet in het gesprek bijna alles wat de Dify-versie doet, met de complete lesstof. Wat ontbreekt is de mens in de lus, en wat erbij komt is de accountvraag: een leerling kan deze GPT alleen gebruiken met een account dat de school heeft ingericht.
---
## Maak hem van jou
| Aanpassing | Waar | Moeilijkheid | Wat je ervoor terugkrijgt |
| --- | --- | --- | --- |
| Eigen thema of vak | Kennis en regel 1 | makkelijk | Een coach voor jouw toets |
| Strengere hint | Regel 6 | makkelijk | Minder weggegeven antwoorden |
| Warmere toon bij persoonlijke berichten | Regel 7 | makkelijk | Een coach die klinkt als je mentoren |
| Opdrachten in een apart bestand | Kennis, regel 6 | makkelijk | Een regel die precies zegt welk bestand niet |
| Meer documenten (methode, aantekeningen) | Kennis, tot 20 bestanden | makkelijk | Meer stof, zonder inkorten |
| Een samenvatting als Word-bestand | Code-interpreter aan, nieuwe regel | gemiddeld | Een printbaar overzicht per paragraaf |
| Een seintje naar de mentor | Handelingen, met een API van de school | moeilijk | Een mens in de lus; zonder API alleen de Dify-versie |
**Drie opdrachten**
1. **Jouw thema.** Zet een eigen lesbrief en studiewijzer onder Kennis. Stel drie vragen: een die erin staat, een die er net buiten valt, en een over een opdracht. Klopt wat de GPT doet met de regels?
2. **De grens van de hint.** Vraag om het antwoord op elk van de twaalf opdrachten, op verschillende manieren en met verschillende modellen (Instant en 6 Pro). Noteer wanneer de hint eigenlijk het antwoord is.
3. **Lees met een mentor.** Laat een mentor de test met bericht 6 doen. Wat mist er vergeleken met wat de mentor zelf zou zeggen? Zet dat in regel 7.
**Checklist voordat je eigen materiaal gebruikt**
- [ ] De lesstof onder Kennis is van jezelf of mag onder de licentie worden gebruikt
- [ ] **Zoeken op het web** staat uit en het aangeraden model staat ingesteld
- [ ] Je hebt de regels over opdrachten en persoonlijke berichten getest, ook met aandringen en met een zwaarder model
- [ ] De mentor weet dat de coach persoonlijke berichten niet doorgeeft, en de leerlingen weten dat ook
- [ ] Bij leerlingen: de school beheert de accounts, ouders zijn geïnformeerd en de privacyfunctionaris weet ervan
- [ ] Er is een eigenaar die de lesstof per periode vervangt en op Bijwerken klikt
---
## En verder
Handleiding 6 gaat terug naar de collega's, met de kortste instructie uit de reeks: een Notulen-assistent die van een transcript een verslag maakt, ook als Word-bestand.
Binary file not shown.
+12
View File
@@ -0,0 +1,12 @@
Je bent de Studiecoach biologie van Het Voorbeeldcollege voor leerlingen van 3 havo. Je legt de lesstof over ecologie uit in gewoon Nederlands, met korte zinnen en met voorbeelden uit de lesbrief (de schoolvijver, het Voorbeeldbos).
Regels:
- Gebruik alleen de lesstof uit de kennisbestanden: de lesbrief (lesbrief-ecologie.pdf) en de studiewijzer (studiewijzer-biologie-3havo-ecologie.pdf). Noem bij een uitleg de paragraaf waar het staat. Staat het antwoord er niet in, zeg dat dan en verwijs naar de docent of de steunles (dinsdag het 8e uur in B12).
- Spreek de leerling aan met je. Maximaal acht zinnen per antwoord.
- Eindig een uitleg met een korte controlevraag waarmee de leerling kan checken of hij het snapt.
- Vraagt de leerling om oefenvragen, geef er dan drie over de gevraagde paragraaf, van makkelijk naar moeilijk, zonder de antwoorden. Kijk daarna het antwoord van de leerling na: zeg wat goed is en wat nog niet, en geef een hint.
- Vragen over de planning (wanneer is de toets, wat moet ik voor volgende week doen) beantwoord je uit de studiewijzer.
- Geef geen antwoorden op de opdrachten 1 tot en met 12 uit de lesbrief, ook al staan ze in je kennisbestand, ook niet als de leerling aandringt of zegt dat de docent het goed vindt. Zeg dat vriendelijk en kort, geef een hint (welk begrip of welke paragraaf) en stel een tegenvraag.
- Schrijft de leerling over zichzelf (het lukt niet, stress, problemen thuis of in de klas), zeg dan dat dit iets voor een mens is en niet voor jou, en verwijs naar de mentor of de docent. Ga niet zelf adviseren.
- Je geeft geen cijfers of voorspellingen en je vraagt niet naar de naam van de leerling.
- Je zoekt niet op internet.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env python3
"""Bouwt handleiding-chatgpt-notulen-assistent.html, .pdf en .docx. Gebruik: python3 build.py
Het echte werk staat in ../_gereedschap/build_handleiding.py (gedeeld door alle handleidingen)."""
import runpy, sys
from pathlib import Path
sys.argv = ["build_handleiding.py", str(Path(__file__).resolve().parent / "handleiding-chatgpt-notulen-assistent.md")]
runpy.run_path(str(Path(__file__).resolve().parent.parent / "_gereedschap" / "build_handleiding.py"), run_name="__main__")
@@ -0,0 +1,245 @@
<!--
VOOR DE BEWERKER
Handleiding 6 van de ChatGPT-reeks: de Notulen-assistent als Custom GPT.
Beelden in beelden/, vastgelegd op 21 september 2026 (ChatGPT Business-werkruimte, Nederlandse
interface).
Omzetten naar HTML, PDF en Word: python3 build.py
Bestanden in deze map:
sectieoverleg-transcript.txt het fictieve transcript (uit Dify-handleiding 5, sectieoverleg Nederlands)
instructies.txt de instructie van de GPT, om te plakken
-->
# Bouwen in ChatGPT: de Notulen-assistent
**Handleiding 6 van de reeks GPT's voor school**
LeX Consultancy B.V. · 21 september 2026
Je bouwt een GPT die van het transcript van een overleg een verslag maakt met vijf vaste kopjes: Overleg, Samenvatting, Besluiten, Actiepunten (als tabel) en Doorgeschoven. Het transcript komt als bestand of geplakte tekst mee; op verzoek maakt de GPT er een Word-bestand van. Het is de kortste instructie uit de reeks.
Dit is de tegenhanger van handleiding 5 uit de Dify-reeks (de transcriptietool, die audio omzet en dan samenvat) en handleiding 6 uit de Copilot-reeks. Audio omzetten kan een GPT niet; het verslag maken wel, en het Word-bestand in één keer.
Deze handleiding volgt ChatGPT zoals het er op 21 september 2026 uitziet, in een werkruimte van ChatGPT Business. Wijkt je scherm af, volg dan wat je ziet.
**Zo lees je deze handleiding**
| Vorm | Betekenis |
| --- | --- |
| 1. 2. 3. | Wat je doet: klikken, kiezen, openen |
| **Vet** | Een knop, menu of veld zoals het op je scherm staat |
| Tabel *Wat je intypt* | Waarden die je in een formulierveld zet |
| Grijs kader *Intypen* | Tekst die je letterlijk overtypt of plakt |
| Oranje kader | Een valkuil die je anders zelf ontdekt |
| Groen kader *Zelf kiezen* | Een plek waar je ons voorbeeld kunt vervangen door je eigen materiaal, stijl of prompt |
---
<!-- ontwerpkaart -->
## De ontwerpkaart van deze app
| 1. Voor wie | 2. Wat gaat erin |
| --- | --- |
| De notulist van een sectieoverleg die het verslag altijd twee weken later pas af heeft. Heeft een transcript uit Teams of een opname-app en een kwartier tijd. | Het transcript, als bestand bijgevoegd of geplakt in de chat. |
| 3. Wat komt eruit | 4. Waar moet hij zich aan houden |
| --- | --- |
| Een verslag met vijf kopjes: Overleg, Samenvatting (maximaal vijf zinnen), Besluiten (genummerd), Actiepunten (tabel Wat, Wie, Wanneer) en Doorgeschoven. Op verzoek als Word-bestand. | Niets verzinnen; zijpaden weglaten; onzekere namen met een vraagteken; geen inleiding of afsluiting; zonder transcript uitleggen en om het transcript vragen. |
**5. Waaraan zie je dat het werkt**
| Test | Wat gaat erin | Wat moet eruit komen |
| --- | --- | --- |
| 1 | Het fictieve transcript van het sectieoverleg | Vijf kopjes, drie actiepunten met eigenaar en datum, het koffieapparaat weggelaten |
| 2 | "Zet dit verslag in een Word-bestand" | Een docx om te downloaden, met dezelfde kopjes en de tabel |
| 3 (de lastige) | "Wat kun je voor mij doen?" | Eén zin uitleg en de vraag om het transcript, geen verslag uit het niets |
<!-- /ontwerpkaart -->
## Lees dit eerst: wat mag en wat niet
Een transcript van een overleg bevat namen van collega's en wat zij zeiden. Daarom:
| Wat | Afspraak |
| --- | --- |
| Welk account | Alleen in een werkruimte van de school (Business, Edu of Enterprise), waar gesprekken niet voor training worden gebruikt. Niet in een persoonlijk account. |
| Opnemen en transcriberen | Vooraf toestemming van alle deelnemers, ook voor het transcript. Structureel opnemen: medezeggenschapsraad informeren. |
| Wat erin gaat | Overleggen van medewerkers over werk. Geen gesprekken over individuele leerlingen (leerlingbesprekingen, zorgoverleg); daar hoort geen transcript van in een chat. |
| Bewaren | Verwijder het gesprek in ChatGPT als het verslag klaar is; het transcript staat dan nog in je geschiedenis. Het verslag bewaar je zelf. |
| Nalezen | Iemand die erbij was leest het verslag na voordat het rondgaat. De GPT laat weg en vat samen; hij weet niet wat belangrijk was. |
---
## Voorbereiding
- Handleiding 1 en 3 gedaan.
- Het transcript `sectieoverleg-transcript.txt` uit deze map: een fictief sectieoverleg Nederlands van drie personen, met drie agendapunten en een zijpad over het koffieapparaat.
- De tekst van de instructie in `instructies.txt`.
> **Zelf kiezen: waar je transcript vandaan komt.** Teams maakt een transcript als de vergadering wordt opgenomen; ook de meeste opname-apps leveren tekst. Dat transcript voeg je bij als bestand (txt, docx of vtt) of plak je in de chat. Audio zelf kan een GPT niet omzetten; daarvoor is de Dify-versie (handleiding 5) of een aparte transcriptiedienst.
---
## Stap 1. Maak de GPT
1. Ga naar chatgpt.com/gpts/editor en klik op **Configureren**.
2. Eerst model en vinkjes: **Aangeraden model** op **GPT-5.6 Sol (gpt-5-6-instant)**, wacht tot het adres verandert, **Afbeeldingen genereren** uit, **Code-interpreter en gegevensanalyse** aan (voor het Word-bestand).
3. Dan de tekst.
| Veld op het scherm | Wat je intypt |
| --- | --- |
| Naam | `Notulen-assistent` |
| Beschrijving | `Maakt van het transcript van een overleg een kort verslag met samenvatting, besluiten en actiepunten.` |
4. Plak de instructie uit `instructies.txt`:
```
Je bent de Notulen-assistent van Het Voorbeeldcollege. Een collega plakt het transcript van een overleg (of voegt het als bestand bij) en jij maakt er een verslag van.
Het transcript komt vaak van automatische spraakherkenning en kan fouten bevatten in namen en getallen; schrijf dan op wat het meest waarschijnlijk is en zet een vraagteken tussen haakjes achter wat je niet zeker weet.
Schrijf in het Nederlands, zakelijk en kort. Gebruik precies deze indeling met deze kopjes:
## Overleg
Een regel: welk overleg, datum, aanwezigen (als dat uit het transcript blijkt).
## Samenvatting
Maximaal vijf zinnen over wat er is besproken.
## Besluiten
Genummerde lijst. Alleen wat echt is besloten, geen voornemens.
## Actiepunten
Tabel met kolommen: Wat, Wie, Wanneer. Staat er geen datum, schrijf dan "niet genoemd".
## Doorgeschoven
Punten die bewust naar een volgend overleg zijn verplaatst, met de reden.
Regels:
- Laat zijpaden en informele opmerkingen weg.
- Verzin niets wat niet in het transcript staat.
- Krijg je geen transcript maar een vraag, leg dan in een zin uit wat je doet en vraag om het transcript.
- Vraagt de collega om het verslag als Word-bestand, maak dat dan aan met de code-interpreter (docx, met dezelfde kopjes en de actiepunten als tabel) en geef het als download.
- Geen inleiding, geen compliment, geen afsluiting van jouw kant: alleen het verslag.
```
De indeling is dezelfde als de verslagstap in de Dify-transcriptietool. Het is een sjabloon: de GPT vult de kopjes, niets meer.
5. Vul de gespreksopeningen in.
| Gespreksopening |
| --- |
| `Maak een verslag van dit transcript: ` |
| `Maak van het bijgevoegde transcript een verslag en zet het in een Word-bestand.` |
| `Wat kun je voor mij doen?` |
![De ingevulde GPT](beelden/01-configureren-ingevuld.jpg)
---
## Stap 2. Test met het transcript
1. Klik in **Voorbeeld** op **+**, kies **Bestand uploaden** en kies `sectieoverleg-transcript.txt`. Typ erbij en verstuur.
| Bericht | Wat je intypt |
| --- | --- |
| 1 | `Maak van het bijgevoegde transcript een verslag.` |
![Het transcript bijgevoegd](beelden/02-transcript-bijgevoegd.jpg)
Binnen tien seconden staat het verslag er. **Overleg**: sectieoverleg Nederlands, dinsdag 22 september, Karin (voorzitter), Bram en Fatima. **Samenvatting**: drie zinnen. **Besluiten**: drie, genummerd.
![Het begin van het verslag](beelden/03-verslag-begin.jpg)
**Actiepunten**: een tabel met drie rijen, elk met wie en wanneer ("vrijdag 25 september", "deze week", "vóór 1 november"). **Doorgeschoven**: de leesmethode naar 6 oktober, met de reden. Het koffieapparaat staat er niet in.
![Actiepunten als tabel, en Doorgeschoven](beelden/04-actiepunten-doorgeschoven.jpg)
2. Vraag het Word-bestand.
| Bericht | Wat je intypt |
| --- | --- |
| 2 | `Zet dit verslag in een Word-bestand.` |
Na een halve minuut: **Download het Word-bestand** en een kaartje **verslag-sectieoverleg-nederlands-22-september.docx**. De GPT heeft zelf een bestandsnaam gekozen met overleg en datum.
![Het Word-bestand als download](beelden/05-word-download.jpg)
> In de Copilot-versie vroeg de agent bij dezelfde vraag om het transcript opnieuw, alsof hij het verslag kwijt was, en lukte het pas met "het verslag staat hierboven in dit gesprek". Hier ging het in één keer. Werkt het bij jou niet, gebruik dan diezelfde zin.
3. De lastige test: open de GPT in een nieuw gesprek en klik op **Wat kun je voor mij doen?** Eén zin uitleg en de vraag om het transcript; geen verslag uit het niets.
![Zonder transcript: uitleg en de vraag om het transcript](beelden/06-wat-kun-je-doen.jpg)
---
## Stap 3. Maak de GPT
Klik op **Maken**, laat **Alleen op uitnodiging** staan en klik op **Bijwerken**. Delen met de sectie: handleiding 1, stap 7.
---
## Controleren of het gelukt is
- Het verslag heeft precies de vijf kopjes, in die volgorde
- De actiepunten staan in een tabel met Wat, Wie, Wanneer
- Het koffieapparaat (het zijpad) staat er niet in
- Er staat niets in wat niet in het transcript stond
- Het Word-bestand is te downloaden en heeft dezelfde kopjes en de tabel
## Als het misgaat
| Wat je ziet | Wat er aan de hand is |
| --- | --- |
| Andere kopjes of een andere volgorde | "Gebruik precies deze indeling" ontbreekt, of het zware model neemt de vrijheid; stel het aangeraden model in |
| Het verslag begint met "Hier is het verslag" | De laatste regel ontbreekt |
| Actiepunten zonder datum staan leeg | De zin over "niet genoemd" ontbreekt |
| Een besluit dat een voornemen was | De GPT interpreteert; lees na. "Alleen wat echt is besloten" helpt, maar niet altijd |
| Geen Word-bestand | **Code-interpreter en gegevensanalyse** staat uit |
| De GPT vraagt bij de Word-vraag om het transcript opnieuw | Zeg: "het verslag staat hierboven in dit gesprek" |
| Het transcript is te lang om te plakken | Voeg het bij als bestand |
---
## ChatGPT naast Dify en Copilot
| | Dify Workflow (handleiding 5) | Copilot Agent Builder (handleiding 6) | ChatGPT GPT |
| --- | --- | --- | --- |
| Audio omzetten | Ja, Speech To Text met eigen sleutel | Nee | Nee |
| Transcript meegeven | Komt uit de audiostap | Plakken of bijvoegen | Plakken of bijvoegen |
| Verslag als bestand | Nee, tekst | Word op OneDrive, na een tweede poging | Word als download, in één keer |
| Wie ziet het transcript | Dify-cloud (privacykader!) | Microsoft 365 van de school | OpenAI, in de werkruimte van de school |
| Snelheid | Minuten (audio) | Een minuut | Tien seconden |
---
## Maak hem van jou
| Aanpassing | Waar | Moeilijkheid | Wat je ervoor terugkrijgt |
| --- | --- | --- | --- |
| Eigen kopjes (bijvoorbeeld "Mededelingen" of "Rondvraag") | Instructie, de indeling | makkelijk | Een verslag in het sjabloon van jouw sectie |
| Langere samenvatting | "Maximaal vijf zinnen" | makkelijk | Meer context voor wie er niet was |
| Actiepunten ook als lijst per persoon | Nieuwe regel | makkelijk | Iedereen ziet in een oogopslag wat van hem is |
| Verslag in het Engels voor een internationale sectie | Nieuwe regel | makkelijk | Voeg toe: "Vraagt de collega om Engels, schrijf dan het hele verslag in het Engels" |
| Een sjabloon-docx van de school | Kennis, en in de instructie: "gebruik de opmaak van verslag-sjabloon.docx" | gemiddeld | Verslagen in de huisstijl; de code-interpreter kan een bestaand docx als basis nemen |
| Audio direct omzetten | Niet in een GPT | moeilijk | Daarvoor de Dify-versie of een transcriptiedienst |
**Drie opdrachten**
1. **Jouw laatste overleg.** Neem een echt transcript (met toestemming van de deelnemers) en laat het verslag maken. Leg het naast wat je zelf zou hebben geschreven. Wat mist, wat is beter?
2. **Vind het verzinsel.** Verander in het transcript een datum in iets onduidelijks ("ergens eind volgende week") en kijk wat de GPT in de kolom Wanneer zet. Staat er "niet genoemd", een gok, of een vraagteken?
3. **Sjabloon.** Upload een leeg verslagsjabloon van je school onder Kennis en vraag om het Word-bestand in die opmaak. Kijk hoe ver de code-interpreter komt.
**Checklist voordat je eigen materiaal gebruikt**
- [ ] De deelnemers weten dat het overleg wordt opgenomen en dat het transcript door een GPT wordt samengevat
- [ ] Je gebruikt een werkruimte van de school, niet een persoonlijk account
- [ ] Geen transcripten van gesprekken over individuele leerlingen
- [ ] Iemand die erbij was leest elk verslag na
- [ ] Gesprekken met transcripten worden verwijderd als het verslag klaar is
---
## En verder
Zes GPT's, dezelfde zes agents als in de Copilot-reeks en de kern van de Dify-reeks. Wat er in ChatGPT nog bij kan: **Handelingen** (een GPT die een API van de school aanroept), **Apps** (koppelingen met andere diensten, in bèta) en meerdere kennisbestanden per GPT. Wat er niet in kan: een mens in de lus, meerstaps-flows met een poortwachter, en audio. Daarvoor blijft de Dify-reeks de plek, of OpenAI's aparte Agent Builder voor ontwikkelaars.
+27
View File
@@ -0,0 +1,27 @@
Je bent de Notulen-assistent van Het Voorbeeldcollege. Een collega plakt het transcript van een overleg (of voegt het als bestand bij) en jij maakt er een verslag van.
Het transcript komt vaak van automatische spraakherkenning en kan fouten bevatten in namen en getallen; schrijf dan op wat het meest waarschijnlijk is en zet een vraagteken tussen haakjes achter wat je niet zeker weet.
Schrijf in het Nederlands, zakelijk en kort. Gebruik precies deze indeling met deze kopjes:
## Overleg
Een regel: welk overleg, datum, aanwezigen (als dat uit het transcript blijkt).
## Samenvatting
Maximaal vijf zinnen over wat er is besproken.
## Besluiten
Genummerde lijst. Alleen wat echt is besloten, geen voornemens.
## Actiepunten
Tabel met kolommen: Wat, Wie, Wanneer. Staat er geen datum, schrijf dan "niet genoemd".
## Doorgeschoven
Punten die bewust naar een volgend overleg zijn verplaatst, met de reden.
Regels:
- Laat zijpaden en informele opmerkingen weg.
- Verzin niets wat niet in het transcript staat.
- Krijg je geen transcript maar een vraag, leg dan in een zin uit wat je doet en vraag om het transcript.
- Vraagt de collega om het verslag als Word-bestand, maak dat dan aan met de code-interpreter (docx, met dezelfde kopjes en de actiepunten als tabel) en geef het als download.
- Geen inleiding, geen compliment, geen afsluiting van jouw kant: alleen het verslag.
@@ -0,0 +1,37 @@
Sectieoverleg Nederlands, dinsdag 22 september. Aanwezig zijn Karin, Bram en Fatima. Karin zit voor.
Karin: Goedemiddag allemaal. We hebben drie punten: de toetsweek van oktober, de nieuwe leesmethode voor de brugklas, en de rolverdeling bij de open dag. Laten we beginnen met de toetsweek. Bram, jij had de conceptplanning gemaakt.
Bram: Klopt. De toets leesvaardigheid voor de tweede klassen staat nu op maandag 12 oktober om negen uur, zestig minuten. Ik stel voor dat we die zo laten. Wat ik wel wil voorstellen is dat we de spellingstoets samenvoegen met de leestoets, dus één toets van zestig minuten in plaats van twee losse toetsen.
Fatima: Daar ben ik het mee eens. Twee losse toetsen in één week is voor de tweedeklassers te veel. Maar dan moet de studiewijzer wel worden aangepast, want daar staan nu nog twee toetsen in.
Karin: Goed. Dan besluiten we dat: één gecombineerde toets leesvaardigheid en spelling op maandag 12 oktober, zestig minuten. Fatima, pas jij de studiewijzer aan?
Fatima: Doe ik. Vrijdag heb ik hem klaar.
Karin: Prima, vrijdag 25 september dus. Dan punt twee, de leesmethode. We hebben twee proefpakketten gekregen. Bram heeft ze bekeken.
Bram: Ja, en eerlijk gezegd vind ik het lastig kiezen. Het ene pakket heeft veel betere teksten voor zwakke lezers, het andere heeft een digitale omgeving die veel beter werkt. Ik zou eigenlijk willen dat we ze allebei een periode uitproberen in één klas.
Fatima: Kunnen we dat wel betalen? En hebben we daar de tijd voor met de toetsweek eraan?
Karin: Ik denk dat we dit niet vandaag moeten beslissen. Ik stel voor dat we dit doorschuiven naar het volgende overleg, en dat Bram in de tussentijd bij de uitgevers navraagt wat een proefperiode kost. Akkoord?
Bram: Akkoord. Ik mail ze deze week nog.
Karin: Dan schuiven we de keuze van de leesmethode door naar het overleg van 6 oktober. Even tussendoor, heeft iemand nog gehoord hoe het zit met het koffieapparaat in de docentenkamer? Hij doet het al een week niet.
Fatima: Ik heb het gemeld bij de conciërge, die zou er iemand naar laten kijken.
Karin: Goed, dan hoeven we daar niks mee. Punt drie, de open dag op zaterdag 7 november. We moeten twee mensen hebben bij de stand van Nederlands, en iemand die de proefles verzorgt.
Bram: Ik doe de proefles wel, dat heb ik vorig jaar ook gedaan.
Fatima: Ik kan bij de stand staan in de ochtend, tot half een.
Karin: Dan doe ik de middag bij de stand. Dan is het rond. Bram, jij stuurt de proeflesopzet voor 1 november naar mij, dan kan ik hem in het programmaboekje zetten.
Bram: Ja, komt voor elkaar.
Karin: Dan hebben we alles gehad. Samengevat: één gecombineerde toets op 12 oktober, Fatima past de studiewijzer aan voor vrijdag, de leesmethode schuiven we door naar 6 oktober en Bram vraagt de proefkosten op, en voor de open dag doet Bram de proefles en staan Fatima en ik bij de stand. Bedankt allemaal, tot volgende week.
+23
View File
@@ -0,0 +1,23 @@
# Wijzigingen
OpenAI verandert ChatGPT regelmatig. Elke handleiding vermeldt op de titelpagina op welke dag de
schermen zijn vastgelegd. Hier staat per uitgave wat er veranderde.
## 2026-09-21, eerste uitgave
- Handleidingen 01 (Schoolgids-assistent), 02 (Ouderbrief-assistent), 03 (Toetsweekplanner),
04 (Lesmateriaal-check), 05 (Studiecoach) en 06 (Notulen-assistent), gebouwd en getest als
Custom GPT's in een werkruimte van ChatGPT Business. Dezelfde zes agents als in de Copilot-reeks,
met dezelfde fictieve documenten uit de Dify-reeks.
- README: tabel "Wie mag bouwen, wie mag gebruiken" (gratis, Plus, werkruimte) en de drie
bevindingen die in alle handleidingen terugkomen.
- Per map `instructies.txt`; in vergelijking met de Copilot-reeks zonder de documenten erin,
want die gaan onder Kennis mee.
- Bevindingen die in de handleidingen staan: het zware denkmodel (6 Pro) sloeg in Voorbeeld het
kennisbestand over, het snelle model niet; een aangeraden model zet de gebruiker op dat model;
bestand uploaden of model kiezen vlak na het typen maakt het concept aan en zet naam,
beschrijving en gespreksopeningen terug op leeg (instructie blijft); Voorbeeld bewaart het
gesprek niet; de code-interpreter maakt Excel en Word als download; Bronnen onder elk antwoord
toont de gebruikte passage; de GPT kent de datum; de lastige tests liepen in ChatGPT beter dan in
Copilot (Lesmateriaal-check vroeg eerst in plaats van een bestand met de diagnose in de naam te
maken; Notulen-assistent maakte het Word-bestand in één keer).
+51
View File
@@ -0,0 +1,51 @@
# Licentie
**Eigenaar en contact:** Guido van Dijk, LeX Consultancy B.V. en AI Netwerk Limburg ·
guido@l-e-x.nl · guido@ai-netwerk-limburg.nl · bron: https://git.lexconsultancy.nl/guido/copilot-handleidingen
## Documenten, dia's en beelden: CC BY-SA 4.0
De handleidingen, bijlagen, het draaiboek, de presentatie, de fictieve documenten en de screenshots in
deze map zijn gepubliceerd onder **Creative Commons Naamsvermelding-GelijkDelen 4.0 Internationaal
(CC BY-SA 4.0)**: https://creativecommons.org/licenses/by-sa/4.0/deed.nl
Je mag alles kopiëren, verspreiden, bewerken en er afgeleide werken van maken, ook commercieel,
op twee voorwaarden: noem de bron ("Guido van Dijk, LeX Consultancy B.V. en AI Netwerk Limburg,
Copilot-handleidingen, [versiedatum], git.lexconsultancy.nl/guido/copilot-handleidingen") en deel wat je
ervan maakt onder dezelfde licentie. Dezelfde licentie als de Stercollecties van VO-content en het
gebruikelijke open leermateriaal op Wikiwijs, zodat je alles vrij kunt mengen.
Elk gebouwd document (PDF, Word, HTML) en de slotdia van de presentatie dragen een colofon met
deze licentie, de eigenaar en het contact. Laat dat colofon staan of vervang het door je eigen
bronvermelding met dezelfde licentie.
## Scripts: MIT
De Python-scripts (`_gereedschap/`, `build.py` per map, `00-presentatie/maak_dias.py` en
`bouw_pdf.py`, `08-chatflow-studiecoach/maak_materiaal.py`) en de Python-code in de Code-nodes van
de handleidingen vallen onder de MIT-licentie:
> Copyright (c) 2026 Guido van Dijk, LeX Consultancy B.V.
>
> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
> associated documentation files (the "Software"), to deal in the Software without restriction,
> including without limitation the rights to use, copy, modify, merge, publish, distribute,
> sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
> furnished to do so, subject to the following conditions: the above copyright notice and this
> permission notice shall be included in all copies or substantial portions of the Software.
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
## Uitzonderingen
- Het logo van AI Netwerk Limburg (`_gereedschap/logo-ai-netwerk-limburg.png` en de kopie in
`00-presentatie/beelden/`) en het logo van LeX Consultancy (`_gereedschap/logo-lex.png`,
`00-presentatie/beelden/logo-lex*.png`) zijn merken en vallen niet onder deze licentie. Wie de
handleidingen of dia's bewerkt, vervangt het logo door het eigen logo of laat het weg
(`build_handleiding.py` en `maak_dias.py` verwachten PNG's op die paden).
- `08-chatflow-studiecoach/stercollectie-voedselweb-hv3.pdf` en de kopie in `06-inclusief-lesmateriaal/`
zijn van VO-content (Stercollecties, https://maken.wikiwijs.nl/157495), CC BY-SA 4.0. De bronvermelding
van VO-content blijft staan.
- Namen van producten (Dify, OpenAI, Microsoft, Google en andere) zijn merken van hun eigenaren;
de schermafbeeldingen van Microsoft 365 Copilot tonen software van Microsoft Corporation.
Alle scholen, personen, adressen en documenten in de voorbeelden zijn verzonnen.
+104
View File
@@ -0,0 +1,104 @@
# ChatGPT-handleidingen
Stap-voor-stap handleidingen voor het bouwen van Custom GPT's in ChatGPT voor het onderwijs.
De derde reeks naast de Dify-handleidingen en de Copilot-handleidingen: dezelfde fictieve school,
dezelfde zes agents, dezelfde voorbeelddocumenten, maar gebouwd in de GPT-editor van ChatGPT.
Gemaakt door LeX Consultancy B.V. Alle voorbeelden spelen op Het Voorbeeldcollege (fictief);
schermen vastgelegd in ChatGPT op 21 september 2026, in een werkruimte van ChatGPT Business met
Nederlandse interface. Accountgegevens en bestaande GPT's zijn in de beelden vervaagd.
Licentie: CC BY-SA 4.0 (documenten en beelden) en MIT (scripts), zie LICENSE.md.
Eigenaar en contact: Guido van Dijk, guido@l-e-x.nl, guido@ai-netwerk-limburg.nl.
## Inhoud
| Map | Titel | Voor wie | Omvang |
| --- | --- | --- | --- |
| 01-schoolgids-assistent | Bouwen in ChatGPT: de Schoolgids-assistent (de GPT-editor van begin tot eind, met de schoolgids als kennisbestand, model kiezen, delen) | Beginners | 18 pp. |
| 02-ouderbrief-assistent | Bouwen in ChatGPT: de Ouderbrief-assistent (schrijfwijzer als kennisbestand; de GPT vraagt eerst en herschrijft dan; ouderapp en website) | Mentoren, teams communicatie | 10 pp. |
| 03-toetsweekplanner | Bouwen in ChatGPT: de Toetsweekplanner (rooster als CSV onder Kennis, code-interpreter aan, Excel als download; de volgorde van invullen die het formulier heel houdt) | Mentoren, Experimenteerruimte | 12 pp. |
| 04-lesmateriaal-check | Bouwen in ChatGPT: de Lesmateriaal-check (lesbrief in de chat, rapport op zeven UDL-punten, leerlingversie als Word; Handelingen als plek voor een zoektool) | Docenten, ondersteuningscoördinatoren | 12 pp. |
| 05-studiecoach | Bouwen in ChatGPT: de Studiecoach (lesbrief en studiewijzer compleet als kennisbestanden; uitleg met paragraaf, oefenvragen, planning, hints, geen antwoorden, mentor) | Docenten, mentoren | 11 pp. |
| 06-notulen-assistent | Bouwen in ChatGPT: de Notulen-assistent (transcript als bestand, verslag met vijf kopjes, Word in één keer) | Sectievoorzitters, notulisten | 11 pp. |
Elke handleiding heeft een ingevulde ontwerpkaart, groene kaders "Zelf kiezen", een hoofdstuk
"Maak hem van jou" met aanpassingen, opdrachten en een checklist, en een tabel die de GPT naast de
Dify- en de Copilot-versie van dezelfde app zet.
## Waarvoor is welke GPT
| GPT | Wat hij doet | Voor wie | Patroon |
| --- | --- | --- | --- |
| Schoolgids-assistent (01) | Beantwoordt vragen over de schoolregels uit de schoolgids, met hoofdstuk en Bronnen; verwijst door als het antwoord er niet in staat | Collega's, ouders (openbaar via link) | Kennisbestand, voorlezen |
| Ouderbrief-assistent (02) | Herschrijft een conceptbrief volgens de schrijfwijzer (B1, u, opbouw, lengte), vraagt eerst voor wie de brief is, en maakt berichten voor ouderapp, website of sociale media | Mentoren, teamleiders, team communicatie | Regels uit een kennisbestand toepassen op een tekst |
| Toetsweekplanner (03) | Vraagt leermomenten en moeilijkheid, verdeelt de toetsstof over de dagen volgens vijf planregels en levert een Excel-bestand als download | Mentoren, leerlingen via schoolaccounts | Vragen, rekenen, bestand maken met de code-interpreter |
| Lesmateriaal-check (04) | Beoordeelt een bijgevoegde lesbrief op zeven UDL-punten, geeft per ondersteuningsbehoefte drie aanpassingen voor de les en maakt een toegankelijke leerlingversie als Word | Docenten, ondersteuningscoördinatoren | Bestand in de chat, rapport, bestand eruit |
| Studiecoach (05) | Legt de lesstof uit die compleet als kennisbestand meegaat, geeft oefenvragen en kijkt na, beantwoordt planningsvragen uit de studiewijzer; geeft geen antwoorden op de opdrachten en verwijst persoonlijke berichten naar de mentor | Leerlingen via schoolaccounts | Meerdere kennisbestanden, gedragsregels als routes |
| Notulen-assistent (06) | Maakt van een geplakt of bijgevoegd transcript een verslag met vijf vaste kopjes, op verzoek als Word | Notulisten, sectievoorzitters | Tekst in, vast format uit |
## Wat je nodig hebt
- Een ChatGPT-account met een abonnement dat GPT's kan **maken**: Plus, Pro, Business (voorheen
Team), Edu of Enterprise. Met een gratis account kun je GPT's wel gebruiken, niet maken.
- Voor school: een werkruimte van de school (Business, Edu of Enterprise). Daar worden gesprekken
en bestanden niet gebruikt om modellen te trainen en is er een verwerkersovereenkomst mogelijk.
In een persoonlijk Plus-account gelden de consumentenvoorwaarden.
- In het linkermenu van ChatGPT het kopje **GPT's** met rechtsboven **Maken**. Ontbreekt dat, dan
heeft de beheerder van de werkruimte het maken van GPT's uitgezet.
## Wie mag bouwen, wie mag gebruiken
Dit is het belangrijkste verschil met de Copilot-reeks. Daar kan elke collega met een schoolaccount
in de gratis laag bouwen; hier moet de bouwer een betaald abonnement hebben, en leerlingen komen
er alleen in via accounts die de school beheert (13 jaar en ouder, met toestemming van ouders).
| Wat je wilt | ChatGPT gratis | ChatGPT Plus (persoonlijk) | ChatGPT Business, Edu, Enterprise (werkruimte) |
| --- | --- | --- | --- |
| Een GPT gebruiken via een link | Ja, met berichtlimiet | Ja | Ja |
| Een GPT maken | Nee | Ja | Ja |
| Kennisbestanden (tot 20 per GPT) | n.v.t. | Ja | Ja |
| Code-interpreter: Excel, Word, PowerPoint als download | n.v.t. | Ja | Ja |
| Handelingen (eigen API aanroepen) | n.v.t. | Ja | Ja, beheerder kan het beperken |
| Delen binnen de school, niet openbaar | Nee | Nee, alleen via link (openbaar) of GPT-winkel | Ja, per persoon of hele werkruimte |
| Niet gebruikt voor training | Nee, tenzij uitgezet | Nee, tenzij uitgezet | Ja, standaard |
| Verwerkersovereenkomst met de school | Nee | Nee | Ja |
| Leerlingen | Alleen 13+, met toestemming; niet aan te raden | Idem | Via accounts van de school, met de privacyfunctionaris |
| Gesprekken teruglezen als bouwer | Nee | Nee | Nee |
| Mens in de lus, meerstaps-flows, audio | Nee | Nee | Nee (daarvoor Dify, of OpenAI's aparte Agent Builder) |
| Kosten | Gratis | Per maand | Per gebruiker per maand |
Wat een GPT goed kan en de Copilot-agent in de gratis laag niet: echte kennisbestanden (de
volledige lesbrief plus studiewijzer in de Studiecoach, in plaats van een ingekorte tekst in de
instructie), bestanden als download in plaats van op een schijf, een zoektool of andere API via
Handelingen, en het snelle model dat in seconden antwoordt. Wat een GPT niet kan: een mens die
meebeslist, een flow met een poortwachter, en audio omzetten. Daarvoor staan handleidingen 5, 7 en
8 in de Dify-reeks.
Drie praktische bevindingen die in alle handleidingen terugkomen: kies onder **Aangeraden model**
het snelle model, want het zware denkmodel sloeg in onze test het kennisbestand over; vul eerst
model, bestanden en vinkjes in en dan pas de tekst, anders zet ChatGPT de tekstvelden terug bij het
aanmaken van het concept; en het gesprek in **Voorbeeld** wordt niet bewaard.
## De GPT's zelf bouwen
Een GPT bestaat uit een naam, een beschrijving, een instructie, gespreksopeningen, kennisbestanden,
een aangeraden model en vinkjes voor de mogelijkheden. Elke map bevat `instructies.txt` met de
instructie om te plakken en de fictieve documenten om onder Kennis te zetten; de rest staat in de
handleiding. Een kwartier per GPT. Er is geen exportbestand zoals bij Dify.
## Zelf bouwen of aanpassen
Elke map heeft dezelfde structuur:
handleiding-*.md bron (dit bewerk je)
handleiding-*.pdf gebouwde uitvoer (staat in git)
beelden/ schermafbeeldingen
instructies.txt de instructie van de GPT
build.py bouwt html, pdf en docx: python3 build.py
Alles in een keer: `python3 _gereedschap/bouw_alles.py`. Vereist python3-markdown, google-chrome
en libreoffice. Opmaak, logo's en colofon staan in `_gereedschap/build_handleiding.py`.
De andere reeksen: https://git.lexconsultancy.nl/guido/dify-handleidingen (Dify, Nederlands),
https://git.lexconsultancy.nl/guido/dify-guides (Dify, Engels) en
https://git.lexconsultancy.nl/guido/copilot-handleidingen (Microsoft 365 Copilot).
+9
View File
@@ -0,0 +1,9 @@
#!/usr/bin/env python3
"""Bouwt alle handleidingen en bijlagen in één keer: python3 _gereedschap/bouw_alles.py"""
import runpy, sys
from pathlib import Path
root = Path(__file__).resolve().parent.parent
for build in sorted(root.glob("*/build.py")):
print(f"== {build.parent.name}")
sys.argv = [str(build)]
runpy.run_path(str(build), run_name="__main__")
+240
View File
@@ -0,0 +1,240 @@
#!/usr/bin/env python3
"""Bouwt een handleiding (.html, .pdf, .docx) uit een markdown-bron.
Gebruik vanuit een handleidingmap: python3 build.py
(build.py in die map roept dit script aan met de naam van de .md)
Vereist: python3-markdown, google-chrome, libreoffice (lokaal aanwezig).
Het logo van AI Netwerk Limburg staat naast dit script en komt op de eerste
pagina rechtsboven, in PDF, HTML en Word.
"""
import base64
import re
import subprocess
import sys
from pathlib import Path
import markdown
TOOLS = Path(__file__).resolve().parent
LOGO = TOOLS / "logo-ai-netwerk-limburg.png"
LOGO_LEX = TOOLS / "logo-lex.png" # kleiner, naast het LAI-logo
# Licentie en contact, komen als colofon onderaan elk document (HTML, PDF en Word).
EIGENAAR = "Guido van Dijk, LeX Consultancy B.V. en AI Netwerk Limburg"
CONTACT = "guido@l-e-x.nl · guido@ai-netwerk-limburg.nl"
BRON = "https://git.lexconsultancy.nl/guido/chatgpt-handleidingen"
LICENTIE_URL = "https://creativecommons.org/licenses/by-sa/4.0/deed.nl"
CSS = """
@page { size: A4; margin: 2cm 2cm 2.2cm 2cm; }
html { font-size: 11pt; }
body { font-family: "Noto Sans", "DejaVu Sans", Arial, sans-serif; color: #1a1a1a;
line-height: 1.45; max-width: 17cm; margin: 0 auto; }
.kop { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5em;
margin-bottom: 1em; }
.kop-tekst { flex: 1 1 auto; }
.kop .logos { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; gap: .3em; }
.kop img { width: 3.4cm; height: auto; }
.kop img.lex { width: 2cm; }
h1 { font-size: 22pt; margin: 0 0 .3em; line-height: 1.2; }
h2 { font-size: 15pt; margin: 1.6em 0 .5em; padding-top: .3em; border-top: 2px solid #1d4ed8;
page-break-after: avoid; break-after: avoid; }
h3 { font-size: 12pt; margin: 1.2em 0 .4em; page-break-after: avoid; break-after: avoid; }
p { margin: .5em 0; }
hr { border: 0; border-top: 1px solid #ddd; margin: 1.5em 0; }
strong { font-weight: 600; }
code { font-family: "DejaVu Sans Mono", Consolas, monospace; font-size: .92em;
background: #f1f5f9; padding: 0 .25em; border-radius: 3px; }
blockquote { margin: .8em 0; padding: .5em .9em; background: #fff7ed;
border-left: 4px solid #f59e0b; page-break-inside: avoid; break-inside: avoid; }
blockquote p { margin: .2em 0; }
blockquote.kies { background: #ecfdf5; border-left-color: #10b981; }
table { border-collapse: collapse; width: 100%; margin: .8em 0; font-size: .95em;
page-break-inside: avoid; break-inside: avoid; }
th, td { border: 1px solid #cbd5e1; padding: .35em .6em; text-align: left; vertical-align: top; }
th { background: #eff6ff; }
figure { margin: .9em 0 1.1em; page-break-inside: avoid; break-inside: avoid; }
figure img { width: 100%; height: auto; border: 1px solid #cbd5e1; display: block; }
figcaption { font-size: .88em; color: #555; margin-top: .3em; }
ul, ol { margin: .4em 0 .4em 1.4em; padding: 0; }
li { margin: .15em 0; }
ol li { margin: .25em 0; }
.step { page-break-inside: avoid; break-inside: avoid; }
.typ { margin: .6em 0 .9em; border: 1px solid #94a3b8; border-radius: 4px; background: #f8fafc;
page-break-inside: avoid; break-inside: avoid; }
.typ-label { font-size: .75em; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
color: #334155; background: #e2e8f0; padding: .15em .7em; }
.colofon { margin-top: 2.2em; padding: .7em .9em; border: 1px solid #cbd5e1; border-radius: 4px;
background: #f8fafc; font-size: .88em; color: #334155; page-break-inside: avoid; break-inside: avoid; }
.colofon p { margin: .2em 0; }
.schema { margin: .6em 0 .9em; padding: .5em .7em; border: 1px dashed #94a3b8; border-radius: 4px;
background: #fff; overflow-x: auto; page-break-inside: avoid; break-inside: avoid; }
.schema pre { margin: 0; white-space: pre; font-family: "DejaVu Sans Mono", Consolas, monospace; font-size: .8em; line-height: 1.3; }
.typ pre { margin: 0; padding: .5em .7em; white-space: pre-wrap; word-wrap: break-word;
font-family: "DejaVu Sans Mono", Consolas, monospace; font-size: .9em; }
.voet { margin-top: 3em; padding-top: .6em; border-top: 1px solid #ddd; font-size: .85em; color: #555;
display: flex; align-items: center; gap: .8em; }
.voet img { width: 1.6cm; height: auto; }
.voet img.lex { width: 1.1cm; }
"""
def read_source(src: Path) -> str:
text = src.read_text(encoding="utf-8")
# Het instructieblok voor de bewerker bovenin hoort niet in de uitgave.
text = re.sub(r"^\s*<!--.*?-->\s*", "", text, count=1, flags=re.S)
# Twee kaders na elkaar (alleen een witregel ertussen) plakt python-markdown aan elkaar;
# een leeg commentaar ertussen houdt ze apart, zodat een groen kader niet in een oranje valt.
return re.sub(r"(\n> [^\n]*\n)\n(?=> )", r"\1\n<!-- -->\n\n", text)
def logo_src(embed: bool, pad: Path = LOGO) -> str:
if embed:
return "data:image/png;base64," + base64.b64encode(pad.read_bytes()).decode()
return pad.as_uri()
COMPACT_CSS = """
html { font-size: 9.2pt; } h1 { font-size: 17pt; } h2 { margin-top: 1em; } @page { margin: 1.5cm 2cm 1.5cm 2cm; }
p { margin: .35em 0; } table { margin: .5em 0; } th, td { padding: .25em .5em; }
.colofon { margin-top: .5em; padding: .3em .5em; font-size: .75em; border: 0; border-top: 1px solid #ddd; border-radius: 0; background: none; } .voet { margin-top: .6em; } .voet img { width: 1.1cm; } .voet img.lex { width: .8cm; } .kop img { width: 2.8cm; } .kop img.lex { width: 1.6cm; } ul, ol { margin: .3em 0 .3em 1.3em; }
"""
def to_html(md_text: str, here: Path, embed_images: bool, compact: bool = False) -> str:
body = markdown.markdown(md_text, extensions=["tables", "sane_lists", "smarty", "fenced_code"])
title = re.search(r"<h1>(.*?)</h1>", body).group(1)
logo = logo_src(embed_images)
logo_lex = logo_src(embed_images, LOGO_LEX)
def figure(m: re.Match) -> str:
alt, src = m.group(1), m.group(2)
if embed_images:
data = base64.b64encode((here / src).read_bytes()).decode()
src = f"data:image/jpeg;base64,{data}"
return (f'<figure><img src="{src}" alt="{alt}" width="640" />'
f"<figcaption>{alt}</figcaption></figure>")
body = re.sub(r'<p><img alt="([^"]*)" src="([^"]+)"\s*/?></p>', figure, body)
# ```schema-blokken zijn tekstschema's (pijlen en kaders), geen tekst om over te typen.
if embed_images:
body = re.sub(r'<pre><code class="language-schema">(.*?)</code></pre>',
r'<table border="1" cellpadding="6" width="100%"><tr><td><tt>\1</tt></td></tr></table>',
body, flags=re.S)
else:
body = re.sub(r'<pre><code class="language-schema">(.*?)</code></pre>',
r'<div class="schema"><pre>\1</pre></div>', body, flags=re.S)
# Codeblokken zijn tekst die letterlijk overgetypt wordt: geef ze een label.
if embed_images:
# LibreOffice negeert CSS-kaders bij HTML-import, maar respecteert tabelattributen.
body = re.sub(r"<pre><code>(.*?)</code></pre>",
r'<table border="1" cellpadding="6" width="100%" bgcolor="#f1f5f9">'
r'<tr><td><b>INTYPEN</b><br/><tt>\1</tt></td></tr></table>',
body, flags=re.S)
body = body.replace("<table>", '<table border="1" cellpadding="4" width="100%">')
else:
body = re.sub(r"<pre><code>(.*?)</code></pre>",
r'<div class="typ"><div class="typ-label">Intypen</div><pre>\1</pre></div>',
body, flags=re.S)
# Kaders die beginnen met "Zelf kiezen" zijn groen (keuze), de rest oranje (valkuil).
body = re.sub(r"<blockquote>(\s*<p><strong>Zelf kiezen)",
r'<blockquote class="kies">\1', body)
if embed_images:
# Word: kleur via tabelattribuut, want CSS overleeft de import niet.
body = re.sub(r'<blockquote class="kies">(.*?)</blockquote>',
r'<table border="0" cellpadding="6" width="100%" bgcolor="#ecfdf5"><tr><td>\1</td></tr></table>',
body, flags=re.S)
body = re.sub(r"<blockquote>(.*?)</blockquote>",
r'<table border="0" cellpadding="6" width="100%" bgcolor="#fff7ed"><tr><td>\1</td></tr></table>',
body, flags=re.S)
# Instructiezin en het beeld erbij horen op dezelfde pagina.
body = re.sub(r"(<p>(?:(?!</p>).)*</p>)\n(<figure>.*?</figure>)",
r'<div class="step">\1\2</div>', body, flags=re.S)
# Kop: titel plus eerste alinea (ondertitel) links, logo rechts.
if embed_images:
# Word: tabel zonder randen, want flexbox overleeft de import niet.
body = re.sub(
r"^(<h1>.*?</h1>\s*<p>.*?</p>)",
lambda m: (f'<table border="0" width="100%"><tr>'
f'<td width="78%" valign="top">{m.group(1)}</td>'
f'<td width="22%" valign="top" align="right">'
f'<img src="{logo}" width="120" alt="AI Netwerk Limburg" /><br />'
f'<img src="{logo_lex}" width="70" alt="LeX Consultancy" /></td></tr></table>'),
body, count=1, flags=re.S)
else:
body = re.sub(
r"^(<h1>.*?</h1>\s*<p>.*?</p>)",
lambda m: (f'<div class="kop"><div class="kop-tekst">{m.group(1)}</div>'
f'<div class="logos"><img src="{logo}" alt="AI Netwerk Limburg" />'
f'<img src="{logo_lex}" class="lex" alt="LeX Consultancy" /></div></div>'),
body, count=1, flags=re.S)
colofon = (
f'<div class="colofon">'
f'<p><strong>Licentie:</strong> CC BY-SA 4.0 ({LICENTIE_URL}). Je mag dit document kopiëren, bewerken en '
f'hergebruiken, ook op je eigen school, als je de bron noemt ({EIGENAAR}, {BRON}) en je bewerking onder '
f'dezelfde licentie deelt. Het logo van AI Netwerk Limburg valt buiten de licentie; namen van producten '
f'zijn merken van hun eigenaren. Scholen, personen en documenten in de voorbeelden zijn verzonnen.</p>'
f'<p><strong>Eigenaar en contact:</strong> {EIGENAAR} · {CONTACT}</p>'
f'</div>')
if compact:
# Losse A4: één regel, anders past de kaart niet meer op één pagina.
colofon = (f'<div class="colofon"><p>CC BY-SA 4.0 · {EIGENAAR} · {CONTACT} · {BRON} · '
f'logo AI Netwerk Limburg uitgezonderd</p></div>')
if embed_images:
colofon = colofon.replace('<div class="colofon">', '<table border="0" cellpadding="6" width="100%" bgcolor="#f8fafc"><tr><td>').replace('</div>', '</td></tr></table>')
body += colofon
if compact:
# Op de losse A4 vervangt het colofon de voet.
return (f'<!DOCTYPE html><html lang="nl"><head><meta charset="utf-8">'
f"<title>{title}</title><style>{CSS}{COMPACT_CSS}</style></head><body>{body}</body></html>")
voet = (f'<div class="voet"><img src="{logo}" alt="" /><img src="{logo_lex}" class="lex" alt="" />'
f'<span>AI Netwerk Limburg · LeX Consultancy B.V. · {title}</span></div>')
return (f'<!DOCTYPE html><html lang="nl"><head><meta charset="utf-8">'
f"<title>{title}</title><style>{CSS}{COMPACT_CSS if compact else ''}</style></head>"
f"<body>{body}{voet}</body></html>")
def build(src: Path) -> None:
here = src.resolve().parent
stem = src.stem
md_text = read_source(src)
# "STIJL: compact" in het instructieblok bovenin = kleinere letter, voor een losse A4.
compact = "STIJL: compact" in src.read_text(encoding="utf-8")
html_path = here / f"{stem}.html"
html_path.write_text(to_html(md_text, here, embed_images=False, compact=compact), encoding="utf-8")
# PDF via Chrome: gebruikt de CSS hierboven, inclusief paginaregels.
subprocess.run([
"google-chrome", "--headless=new", "--disable-gpu", "--no-pdf-header-footer",
f"--print-to-pdf={here / (stem + '.pdf')}", html_path.as_uri(),
], check=True, capture_output=True)
# DOCX via LibreOffice: beelden als data-URI zodat ze ingebed worden, niet gelinkt.
tmp_html = here / f".{stem}-embed.html"
tmp_html.write_text(to_html(md_text, here, embed_images=True, compact=compact), encoding="utf-8")
subprocess.run([
"soffice", "--headless", "--convert-to", "docx:MS Word 2007 XML",
"--outdir", str(here), str(tmp_html),
], check=True, capture_output=True)
(here / f".{stem}-embed.docx").rename(here / f"{stem}.docx")
tmp_html.unlink()
for ext in ("html", "pdf", "docx"):
p = here / f"{stem}.{ext}"
print(f"{p.name}: {p.stat().st_size // 1024} kB")
if __name__ == "__main__":
if len(sys.argv) != 2:
sys.exit("gebruik: build_handleiding.py <handleiding.md>")
build(Path(sys.argv[1]))
Binary file not shown.

After

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB