Files
Guido van Dijk f134e29625 feat: uitlegvideo bij elke handleiding (schermafbeeldingen, Nederlandse stem, ondertitels)
- video-script.md, video-*.mp4 en .srt in de acht mappen
- README-sectie Video's en CHANGELOG

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-21 17:31:45 +02:00

549 lines
12 KiB
Plaintext

1
00:00:00,000 --> 00:00:05,984
Welkom bij de zevende handleiding van de reeks AI Agents met Dify voor school.
2
00:00:06,034 --> 00:00:09,078
In handleiding 3 bouwde je Schoolnieuws:
3
00:00:09,128 --> 00:00:14,957
één kernboodschap wordt een bericht voor website, ouderapp en sociale media.
4
00:00:15,007 --> 00:00:20,062
De teksten waren goed, maar ze gingen ongecontroleerd naar buiten.
5
00:00:20,112 --> 00:00:23,079
Deze handleiding voegt twee dingen toe.
6
00:00:23,129 --> 00:00:30,351
Een Controleur, een taalmodel dat het ouderappbericht nog eens naleest tegen de schrijfwijzer.
7
00:00:30,401 --> 00:00:31,898
En een Poortwachter:
8
00:00:31,948 --> 00:00:40,330
een stukje code dat harde regels controleert, woordaantal, verboden woorden, hashtag, ontbrekende informatie.
9
00:00:40,380 --> 00:00:42,573
Klopt alles, dan naar buiten.
10
00:00:42,623 --> 00:00:46,800
Anders naar de communicatiemedewerker, mét de redenen.
11
00:00:47,600 --> 00:00:50,762
Je hoeft niet te kunnen programmeren.
12
00:00:50,812 --> 00:00:54,408
De code plak je; wat hij doet, leg ik uit.
13
00:00:54,458 --> 00:00:59,183
Dit zijn patroon 4 en 5 uit de bijlage Ontwerppatronen:
14
00:00:59,233 --> 00:01:01,664
zelfkritiek en poortwachter.
15
00:01:02,464 --> 00:01:06,055
Zo ziet Schoolnieuws eruit voordat je begint:
16
00:01:06,105 --> 00:01:10,960
User Input, Knowledge Retrieval, drie LLM-blokken en Output.
17
00:01:11,760 --> 00:01:15,205
En zo ziet de staart eruit als je klaar bent:
18
00:01:15,255 --> 00:01:20,564
na Social komen Controleur, Poortwachter, IF ELSE, en twee uitgangen:
19
00:01:20,614 --> 00:01:24,264
Goedgekeurd, en Naar de communicatiemedewerker.
20
00:01:25,064 --> 00:01:28,884
De nieuwe blokken komen tussen Social en Output.
21
00:01:28,934 --> 00:01:34,366
Open Schoolnieuws, klik op het blok Social en scroll naar Next Step.
22
00:01:34,416 --> 00:01:38,962
Klik op de drie puntjes achter Output en kies Disconnect.
23
00:01:39,012 --> 00:01:39,929
Niet Delete:
24
00:01:39,979 --> 00:01:43,688
het blok mag blijven, alleen de lijn gaat weg.
25
00:01:44,488 --> 00:01:48,370
Klik bij Next Step op Select next step en kies LLM.
26
00:01:48,420 --> 00:01:54,153
Model gpt-5-mini, Context Knowledge Retrieval result, dus de schrijfwijzer.
27
00:01:54,203 --> 00:01:55,309
Plak de prompt:
28
00:01:55,359 --> 00:02:05,178
je bent de controleur van Het Voorbeeldcollege, beoordeel dit conceptbericht voor de ouderapp op de punten uit de schrijfwijzer:
29
00:02:05,228 --> 00:02:14,816
maximaal 80 woorden, u-vorm, één boodschap, één datum, één actie, geen afkortingen, geen namen van leerlingen, taalniveau B1.
30
00:02:14,866 --> 00:02:16,435
Werk in twee stappen:
31
00:02:16,485 --> 00:02:20,830
noem eerst wat niet klopt, geef dan de verbeterde versie.
32
00:02:20,880 --> 00:02:24,685
Maar geef als antwoord alleen de verbeterde tekst.
33
00:02:24,735 --> 00:02:28,078
Dat is geen tegenstrijdigheid maar een truc:
34
00:02:28,128 --> 00:02:35,325
het model beoordeelt eerst, en dat verbetert het resultaat, maar je krijgt schone tekst terug.
35
00:02:35,375 --> 00:02:42,160
Onderaan koppel je de schrijfwijzer als Context en het conceptbericht als Ouderapp text.
36
00:02:42,960 --> 00:02:45,370
Hernoem het blok naar Controleur.
37
00:02:45,420 --> 00:02:48,651
Kijk nog even naar twee zinnen in de prompt:
38
00:02:48,701 --> 00:02:56,031
haal geen feiten, data of tijden weg die in het concept staan, en verander cijfers niet in woorden.
39
00:02:56,081 --> 00:02:57,970
Die staan er om een reden.
40
00:02:58,020 --> 00:03:04,083
In onze eerste test deed de Controleur precies wat we vroegen, en dat was te veel:
41
00:03:04,133 --> 00:03:09,525
één datum las hij als haal de aanmelddatum weg, en klas 2 werd klas twee.
42
00:03:09,575 --> 00:03:15,912
Zelfkritiek verbetert de vorm; wat er inhoudelijk mag veranderen, moet jij begrenzen.
43
00:03:16,712 --> 00:03:17,268
Deel B.
44
00:03:17,318 --> 00:03:18,567
Bij Controleur:
45
00:03:18,617 --> 00:03:21,772
Select next step, en onder Transform:
46
00:03:21,822 --> 00:03:22,205
Code.
47
00:03:22,255 --> 00:03:28,268
Klik in de editor, selecteer alles en plak de code uit de handleiding.
48
00:03:28,318 --> 00:03:31,126
Wat de code doet, in gewone taal.
49
00:03:31,176 --> 00:03:33,984
Er is een lijst verboden woorden:
50
00:03:34,034 --> 00:03:41,260
middels, omtrent, z.s.m., gelieve; de lijst uit de schrijfwijzer, hier hard gemaakt.
51
00:03:41,310 --> 00:03:45,417
Er zijn drie teksten met hun maximum in woorden.
52
00:03:45,467 --> 00:03:46,803
Voor elke tekst:
53
00:03:46,853 --> 00:03:49,661
is hij te lang, noteer een reden.
54
00:03:49,711 --> 00:03:57,629
Staat er INVULLEN in, noteer een reden, want een bericht met een gat gaat nooit naar buiten.
55
00:03:57,679 --> 00:04:01,873
Staat er een verboden woord in, noteer een reden.
56
00:04:01,923 --> 00:04:06,204
En het socialbericht moet de schoolhashtag hebben.
57
00:04:06,254 --> 00:04:08,975
De code geeft twee dingen terug:
58
00:04:09,025 --> 00:04:15,298
ok, 1 is goed en 0 is fout, en redenen, de lijst, of Alle regels in orde.
59
00:04:15,348 --> 00:04:17,203
Let op de inspringing:
60
00:04:17,253 --> 00:04:21,967
in Python telt elke spatie aan het begin van een regel.
61
00:04:22,017 --> 00:04:23,526
Plakken gaat goed.
62
00:04:23,576 --> 00:04:27,560
Overtypen gaat bijna altijd mis; doe dat niet.
63
00:04:28,360 --> 00:04:35,643
Hernoem bij Input Variables arg1 naar website en arg2 naar ouderapp, en voeg een derde toe:
64
00:04:35,693 --> 00:04:36,207
social.
65
00:04:36,257 --> 00:04:42,250
De namen moeten precies gelijk zijn aan die in de eerste regel van de code.
66
00:04:42,300 --> 00:04:43,056
Koppel ze:
67
00:04:43,106 --> 00:04:51,808
website aan Website text, ouderapp aan Controleur text, dus de verbeterde versie, en social aan Social text.
68
00:04:52,608 --> 00:04:54,252
Bij Output Variables:
69
00:04:54,302 --> 00:04:58,205
hernoem result naar ok en zet het type op Number.
70
00:04:58,255 --> 00:05:00,625
Voeg redenen toe, type String.
71
00:05:00,675 --> 00:05:03,448
Hernoem het blok naar Poortwachter.
72
00:05:03,498 --> 00:05:10,789
De uitvoernamen moeten letterlijk overeenkomen met de namen in de return-regel van de code.
73
00:05:10,839 --> 00:05:15,549
Eén letter anders en de workflow stopt met een foutmelding.
74
00:05:15,599 --> 00:05:21,841
Alles wat je met zekerheid kunt controleren, hoort hier en niet in een prompt.
75
00:05:21,891 --> 00:05:24,422
Vraag je communicatiemedewerker:
76
00:05:24,472 --> 00:05:27,327
welke fout mag nooit meer voorkomen?
77
00:05:27,377 --> 00:05:29,232
Dat is je eerste regel.
78
00:05:30,032 --> 00:05:30,649
Deel C.
79
00:05:30,699 --> 00:05:32,268
Bij Poortwachter:
80
00:05:32,318 --> 00:05:35,126
Select next step, onder Logic:
81
00:05:35,176 --> 00:05:35,888
IF ELSE.
82
00:05:35,938 --> 00:05:45,560
Klik bij IF op Add Condition, kies Poortwachter ok, laat de vergelijking op is-gelijk staan en typ 1.
83
00:05:46,360 --> 00:05:47,204
Onder IF:
84
00:05:47,254 --> 00:05:49,686
Select next step, Output.
85
00:05:49,736 --> 00:05:51,970
Drie uitvoervariabelen:
86
00:05:52,020 --> 00:05:56,638
website, ouderapp vanuit Controleur, en social.
87
00:05:56,688 --> 00:06:00,064
Hernoem het blok naar Goedgekeurd.
88
00:06:00,864 --> 00:06:04,455
Klik op IF ELSE; onder ELSE kies je ook Output.
89
00:06:04,505 --> 00:06:11,195
Vier variabelen, met de redenen bovenaan zodat de medewerker meteen ziet wat er mis is:
90
00:06:11,245 --> 00:06:19,098
afgekeurd omdat, uit Poortwachter redenen, en dan concept website, concept ouderapp en concept social.
91
00:06:19,148 --> 00:06:22,507
Hernoem naar Naar de communicatiemedewerker.
92
00:06:22,557 --> 00:06:23,049
Let op:
93
00:06:23,099 --> 00:06:27,852
twee Output-blokken mogen geen gelijknamige variabelen hebben.
94
00:06:27,902 --> 00:06:36,607
Noem je ze in beide website, dan zet Dify een oranje Dubbele variabele in de checklist en kun je niet publiceren.
95
00:06:36,657 --> 00:06:40,608
Vandaar concept onderstreepje in de tweede uitgang.
96
00:06:41,408 --> 00:06:45,829
Klik rechtsboven op het checklist-icoon naast Test Run.
97
00:06:45,879 --> 00:06:54,772
De oude Output is nergens meer aan verbonden; klik erop in de checklist, hij staat verstopt achter Controleur.
98
00:06:54,822 --> 00:06:56,479
Drie puntjes, Delete.
99
00:06:56,529 --> 00:06:59,456
Controleer dat de checklist leeg is.
100
00:07:00,256 --> 00:07:03,170
De nieuwe staart van de workflow:
101
00:07:03,220 --> 00:07:08,968
Social, Controleur, Poortwachter, IF ELSE, en de twee uitgangen.
102
00:07:09,768 --> 00:07:13,468
Een poortwachter test je altijd twee kanten op.
103
00:07:13,518 --> 00:07:16,819
Alleen de goede kant testen bewijst niets.
104
00:07:16,869 --> 00:07:21,047
Test Run met de complete boodschap uit handleiding 3:
105
00:07:21,097 --> 00:07:24,957
ouderavond op 8 oktober, aanmelden tot 5 oktober.
106
00:07:25,007 --> 00:07:30,432
Na ongeveer een minuut kleurt het pad via IF naar Goedgekeurd groen.
107
00:07:31,232 --> 00:07:34,469
Klik op Tracing en klap Poortwachter open.
108
00:07:34,519 --> 00:07:37,599
Onder Output staat wat de code teruggaf:
109
00:07:37,649 --> 00:07:39,634
ok 1, Alle regels in orde.
110
00:07:39,684 --> 00:07:41,277
Tracing is je vriend.
111
00:07:41,327 --> 00:07:49,886
Bij elke vraag waarom kwam dit eruit, open je hier het blok en zie je precies wat erin ging en wat eruit kwam.
112
00:07:49,936 --> 00:07:56,744
Dat is ook het scherm waarop we zagen dat de Controleur de aanmelddatum had weggehaald.
113
00:07:57,544 --> 00:08:03,867
Test Run opnieuw, nu met een boodschap zonder datum, zonder tijd en met een afkorting:
114
00:08:03,917 --> 00:08:10,018
binnenkort is er weer een ouderavond voor de brugklassen, ouders moeten zich z.s.m.
115
00:08:10,068 --> 00:08:10,759
aanmelden.
116
00:08:10,809 --> 00:08:17,725
Nu loopt het pad via ELSE naar Naar de communicatiemedewerker, en bovenaan staan vier redenen.
117
00:08:17,775 --> 00:08:20,615
Alle drie de teksten bevatten INVULLEN:
118
00:08:20,665 --> 00:08:25,728
de modellen wisten de datum niet en hebben hem netjes niet verzonnen.
119
00:08:25,778 --> 00:08:28,396
En in het socialbericht staat z.s.m.
120
00:08:28,446 --> 00:08:30,175
Dat laatste is leerzaam.
121
00:08:30,225 --> 00:08:38,919
De prompt van Social vroeg om de schrijfwijzer te volgen, en toch glipte de afkorting uit de kernboodschap erdoorheen.
122
00:08:38,969 --> 00:08:42,304
Een prompt vraagt; de poortwachter dwingt af.
123
00:08:43,104 --> 00:08:45,012
Publish, Publish Update.
124
00:08:45,062 --> 00:08:52,842
Dify maakt versie 2 van de app, en via het klokje rechtsboven kun je altijd terug naar versie 1.
125
00:08:52,892 --> 00:08:55,533
Open de webapp en herhaal test 2:
126
00:08:55,583 --> 00:09:01,977
de collega ziet de redenen bovenaan en daaronder de concepten om aan te vullen.
127
00:09:02,027 --> 00:09:04,392
De link is dezelfde gebleven.
128
00:09:05,192 --> 00:09:06,700
De controlelijst:
129
00:09:06,750 --> 00:09:09,083
staat de hele staart erin?
130
00:09:09,133 --> 00:09:11,008
Is de checklist leeg?
131
00:09:11,058 --> 00:09:16,324
Gaat test 1 naar Goedgekeurd en test 2 naar de medewerker?
132
00:09:16,374 --> 00:09:19,808
Laat de Controleur de feiten met rust?
133
00:09:19,858 --> 00:09:22,424
En is versie 2 gepubliceerd?
134
00:09:23,224 --> 00:09:31,160
De handleiding, de code en de beelden staan in de repository; de app staat live op udify punt app.
135
00:09:31,210 --> 00:09:34,827
In de laatste video bouwen we de Studiecoach:
136
00:09:34,877 --> 00:09:40,042
een Chatflow met vier routes, geheugen, en een docent in de lus.
137
00:09:40,092 --> 00:09:40,744
Tot dan.