W09 | Een chat is meer dan een invoerveld
Build AI. Run AI. Own AI. — Week W09 · 23 februari-1 maart 2026
Vorige week begon de repo en kwam PA-admin mee als eerste app. Deze week bouw ik verder aan de chatkant. Ik zet PA-app op vanuit die bestaande basis en binnen een paar dagen wil ik niet alleen een bericht versturen, maar ook gesprekken bewaren, hervatten en verschillend gedrag kunnen uitproberen.
De chat krijgt databasepersistentie en praat met n8n via webhooks. Ik voeg Gemini Gems toe voor eigen instructies en modelkeuze, werk aan acties bij berichten en maak de invoer op de PA-route niet-blokkerend. Dat laatste klinkt klein, maar het verandert de interactie: ik hoef niet te wachten tot één antwoord klaar is voordat ik verder kan typen. Het model is maar één onderdeel; de UI, de opgeslagen conversatie en de route naar n8n bepalen mee of het als een bruikbare assistent voelt.
Tegelijk werk ik aan de Scaleway-kant. Klantprojecten, PostgreSQL, database-ACLs en runtimecredentials krijgen explicietere grenzen. Terraform moet met beheerrechten resources kunnen aanmaken; de app zelf hoort daarna een beperktere sleutel te krijgen voor wat hij tijdens runtime nodig heeft. Een project-ID en ACL zijn dus geen administratieve details: ze bepalen welke database en objecten een component kan bereiken. Ik werk ook aan Secret Manager en de n8n-encryptiesleutel. Die sleutel moet bij de opgeslagen credentials blijven passen, anders is “de database is terug” niet genoeg om n8n weer bruikbaar te maken.
Het zijn twee kanten van dezelfde week, zonder dat de een de ander veroorzaakt: ik geef de chat meer mogelijkheden en moet tegelijk scherpere grenzen rond de omgeving zetten. Er ligt ook een callback-plan, zodat n8n later zelf een resultaat naar de app kan terugsturen. Dat parkeer ik nog; deze week bouw ik vooral de basis van gesprek en bediening.
Wat ik hieruit meeneem: een chatfeature wordt pas echt een applicatie als je zowel de interactie eromheen als de rechten eronder ontwerpt. Anders is de demo overtuigender dan het systeem erachter.