f134e29625
- 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>
549 lines
12 KiB
Plaintext
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.
|
|
|