GenAI-streaming in Mendix

Van bottleneck naar widget: als Mendix-ontwikkelaars zijn we altijd op zoek naar manieren om slimmer en sneller applicaties te bouwen. Ik wilde AI-chatbots zoals ChatGPT integreren in low-code applicaties om de gebruikerservaring te verbeteren en geavanceerde, hoogwaardige ondersteuning te bieden. Dit is het verhaal van hoe ik tegen een technische muur aanliep en uiteindelijk mijn eigen oplossing bouwde: een custom widget die AI-responses in real time laat streamen – net als wanneer je ChatGPT direct gebruikt.

First things first: wat is GenAI?

GenAI (Generatieve AI) verwijst naar kunstmatige intelligentie die nieuwe content kan genereren. Denk aan ChatGPT voor tekst, DALL·E voor afbeeldingen of Copilot voor code. Deze modellen begrijpen gebruikers input en genereren menselijke reacties, wat ze optimaal geschikt maken voor slimme chatbots, contentcreatie en geautomatiseerde assistenten.

GenAI is niet meer te negeren. Niet alleen als hype, maar als een echte verschuiving in hoe we digitalisering benaderen. Voor mij is het de volgende stap richting technologie die niet draait om de technologie zelf, maar om het creëren van echte waarde voor gebruikers.

Het idee: AI-integratie slimmer maken

Ik begon te experimenteren met de integratie van OpenAI (het bedrijf achter ChatGPT) via een kant-en-klare connector uit de Mendix Marketplace. Het verkrijgen van een een basis AI-antwoord via de chat-completions API? Geen probleem.

Maar ik wilde meer. Ik wilde geavanceerde AI-functies gebruiken via de responses API, eigen parameters toevoegen zoals reasoning effort en structured responses, en – het belangrijkste – streaming responses activeren. Dit laatste zorgt ervoor dat gebruikers AI het antwoord in real time zien "typen" in plaats van dat ze aan het wachten zijn op het volledige resultaat.

Streaming bleek gelijk de grootste uitdaging.

Het probleem: low-code in combinatie met streamingdata

Hier is de technische uitdaging simpel uitgelegd: als je chat met ChatGPT, zie je de woorden al verschijnen terwijl AI nog aan het "denken" is. Dit gebeurt via iets dat Server-Sent Events (SSE) heet. Denk aan het verschil tussen een telefoongesprek, waarbij iemand continu praat, en sms-berichten die één voor één binnenkomen.

Mendix, het low-code platform, werkt liever met het "sms"-model. Het wil complete antwoorden, geen continue stroom.

Ik probeerde eerst standaard REST-calls: werkte prima zonder streaming, maar faalde zodra ik streaming inschakelde. Vervolgens experimenteerde ik met de relatief nieuwe "consumed REST service" van Mendix. Die herkende de stream, maar kon het format niet verwerken. Daarna probeerde ik het op te lossen met custom Java- en JavaScript-code. Technisch werkte dat, maar Mendix toonde pas iets zodra het hele antwoord binnen was – wat het doel van streaming compleet onderuit haalde.

Bij elke poging liep ik tegen dezelfde muur: Mendix wilde volledige data packages, geen continue stroom.

Het aha-moment

Na talloze pogingen viel het kwartje. "Wat als ik een custom widget bouw die zowel de streaminglogica als de weergave in de UI afhandelt?"

In plaats van Mendix iets te laten doen waarvoor het niet ontworpen is, zou ik een widget  kunnen bouwen dat streaming op natuurlijke wijze ondersteunt.

De oplossing: een custom widget bouwen

Op een avond ging ik aan de slag met het bouwen. Met TypeScript en hulp van AI-ondersteunde code schreef ik een widget die OpenAI-streaming afhandelt en antwoorden toont terwijl ze gegenereerd worden.

Kenmerken van de widget:

  • Ondersteunt zowel de chat-completions als responses API’s
  • Biedt flexibele configuratie om AI-gedrag fijn af te stemmen
  • Heeft een mooie en duidelijke UI in Mendix Studio Pro en runtime
Eindresultaat met streaming responses

Hoe gebruik je het

De widget is verrassend eenvoudig te configureren. Je kiest je API-type (chat-completions of responses), voegt je OpenAI API-sleutel toe, stelt eventueel een system prompt in om de AI een rol of persoonlijkheid te geven, en voegt custom parameters toe als je dat wilt.
Plaats de widget in je Mendix-app en je hebt een professionele AI-chatinterface met real time streaming-responses.

Waarom dit ertoe doet

Dit project heeft me geleerd dat technische beperkingen vaak leiden tot de beste innovaties. Mendix is enorm krachtig voor snelle ontwikkeling, maar soms moet je buiten de low-code kaders denken om het maximale eruit te halen.

Met GenAI die zich razendsnel ontwikkelt, hebben we integratietools nodig die dat tempo aankunnen.
Het bouwen van custom widgets zoals deze overbrugt dat gat – en met AI-ondersteunde ontwikkeling is het voor Mendix-ontwikkelaars toegankelijker dan ooit om hun eigen oplossingen te maken.

Coming soon

Ik werk aan een uitgebreide how-to video voor Mendix-ontwikkelaars over het bouwen van custom widgets met AI-ondersteuning (ook wel "vibe coding" genoemd). Deze aanpak heeft mijn productiviteit enorm verbeterd en ik wil die technieken graag delen met de community.

Let’s connect!

Spreekt dit je aan of ben je geïnteresseerd in custom GenAI-oplossingen voor Mendix? Let’s connect! Ik hoor graag over jouw GenAI-experimenten en/of ervaringen binnen de low-code industrie.

No items found.
Geschreven door
Tim
Verlinde
Squad Apps - beeldmerk
Mendix Healthcare Connect
6 maart 2025
Meld je aan
Healthcare Connect