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.