GovChat-NL kan op verschillende manieren worden geïmplementeerd, zodat het platform aansluit op de wensen en infrastructuur van de organisatie. Er zijn daarbij twee hoofdkeuzes.
Keuze van implementatievorm
Docker-image
- Gebruiksklaar en gemakkelijk te implementeren.
- Ideaal bij standaardinrichtingen met beperkte aanpassingen.
- Beschikbaar als package via deze GitHub-repository.
Via broncode
- Geschikt voor uitgebreide of onverwachte aanpassingen.
- Volledige controle en flexibiliteit.
- Beschikbaar in deze repository.
Keuze van hostingomgeving
Lokale servers
- Volledige controle over data, infrastructuur en beveiliging binnen de eigen organisatie.
Cloudomgeving
- Schaalbaar, flexibel en doorgaans sneller of eenvoudiger te implementeren.
Deze twee keuzes kunnen naar wens worden gecombineerd. Zo kan GovChat-NL bijvoorbeeld als custom-implementatie draaien op lokale servers, of als Docker-image ingezet worden in de cloud. Zo blijft het platform flexibel en altijd af te stemmen op de bestaande IT-voorzieningen en eisen van de organisatie.
Specifieke Implementatie: Provincie Limburg (incl. DPIA)
Een praktijkvoorbeeld van GovChat-NL is de implementatie door de Provincie Limburg. Hierbij wordt gebruikgemaakt van een Docker-image, gehost via Elestio op Hetzner-infrastructuur. De onderliggende taalmodellen draaien in Microsoft Azure (en Google Vertex AI).
Voor deze implementatie is een uitgebreide Data Protection Impact Assessment (DPIA) uitgevoerd. In de DPIA zijn de potentiële risico’s voor privacy en gegevensbescherming in kaart gebracht en zijn de genomen beheersmaatregelen beschreven. Deze DPIA is goedgekeurd en als referentie beschikbaar voor andere overheidsorganisaties die GovChat-NL willen inzetten.
Architectuuroverzicht
Onderstaande diagram laat de relatie en samenwerking tussen de verschillende repositories en systeemonderdelen visueel zien.

Beschrijvende tekst afbeelding
De afbeelding toont een architectuuroverzicht van een AI-chatoplossing met authenticatie, workflow-automatisering en koppeling naar LLM-aanbieders. Het schema is logisch opgebouwd van linksboven (gebruikersinterface) naar rechtsonder (LLM-providers).
1. Applicatielaag
Binnen de lichtgele zone “Applicatie Laag” bevinden zich:
- GovChat-NL
Een bestaande chatoplossing, waarvan hier sprake is van een fork. - OpenWebUI [Interface]
De gebruikersinterface waarin:
- Gebruikers hun vragen stellen.
- Chatgeschiedenis wordt verwerkt.
- Verzoeken worden doorgestuurd.
Functionaliteit:
- Authenticatie via SSO / OAuth2.
- Opslag chatgeschiedenis in PostgreSQL Database.
- Verzendt gebruikersverzoeken naar de workflow-engine (n8n)
2. Workflowlaag
n8n [Workflow Engine]
Functioneert als orkestratielaag tussen interface, informatiesystemen en LLM.
Taken:
- Ontvangt gebruikersverzoeken vanuit OpenWebUI
- Vraagt indien nodig aanvullende informatie op bij andere systemen.
- Roept de LLM-router aan
n8n is hier de centrale regiecomponent.
3. Informatiesystemen
In een aparte lichtgele zone “Andere Informatiesystemen”:
- Intern systeem
- Extern systeem
n8n kan deze systemen bevragen voor:
- Aanvullende context
- Data-verrijking
- Inhoudelijke input voor de LLM
4. LLM-router
LiteLLM [LLM Router]
Functie:
- Ontvangt verzoek van n8n
- Routeert de aanvraag naar een geschikte LLM-aanbieder
- Maakt het mogelijk om meerdere modellen of providers te gebruiken
5. LLM-aanbieders
Ondersteunt twee typen modellen:
- Cloud-gebaseerde LLM’s
- Lokale LLM’s
Hier wordt de daadwerkelijke taalverwerking uitgevoerd.
Gehele proces in stappen
- Gebruiker logt in via SSO/OAuth2.
- Gebruiker stelt vraag in OpenWebUI.
- Vraag wordt doorgestuurd naar n8n.
- n8n haalt eventueel aanvullende data op uit interne of externe systemen.
- n8n roept LiteLLM aan.
- LiteLLM kiest een geschikte LLM-aanbieder.
- Antwoord wordt teruggestuurd via dezelfde keten naar de gebruiker.
- Chatgeschiedenis wordt opgeslagen in PostgreSQL.
Kernkarakter van de architectuur
- Modulair opgebouwd
- Orkestratie via n8n
- Model-onafhankelijk door LiteLLM
- Authenticatie geïntegreerd
- Geschikt voor hybride inzet (cloud + lokaal)
Het schema beschrijft daarmee een schaalbare, uitbreidbare AI-architectuur waarbij governance, datakoppelingen en modelkeuze flexibel georganiseerd zijn.
Onderliggende repositories
GovChat-NL maakt gebruik van diverse krachtige open-source technologieën. Hieronder volgt een overzicht van de belangrijkste componenten.
OpenWebUI
OpenWebUI is een open-source chatinterface die de basis vormt van GovChat-NL. Belangrijke eigenschappen zijn:
- Uitgebreide chatbot-interface functionaliteit en gebruikerservaring vergelijkbaar met ChatGPT.
- Ingebouwde authenticatie en beheermogelijkheden, inclusief ondersteuning voor Role-Based Access Control (RBAC) voor het beheren van gebruikersrechten en -rollen.
- Schaalbare architectuur biedt diverse mogelijkheden voor uitrol, zowel lokaal als in de cloud.
n8n
n8n is een open-source workflow automation platform waarmee processen en integraties tussen verschillende systemen eenvoudig te automatiseren zijn, zonder diepgaande programmeerkennis. Belangrijke kenmerken:
- Automatisering van processen: taken en acties kunnen automatisch worden uitgevoerd.
- Visuele workflow-editor: processen en koppelingen kunnen zonder programmeerkennis worden opgebouwd en beheerd.
- Flexibele integraties: honderden standaardkoppelingen (API’s) met veelgebruikte applicaties en databronnen zorgen voor maximale connectiviteit.
LiteLLM
LiteLLM biedt een flexibele manier om Large Language Models (LLM’s) te integreren. Enkele voordelen:
- Uniforme interface voor LLM-providers, eenvoudige koppeling met vrijwel alle gangbare LLM’s.
- Gebruik van meerdere aanbieders en modellen tegelijkertijd, ondersteuning van o.a. Microsoft Azure, Google Vertex AI, Mistral en meer.
- Monitoring en limietinstellingen centraal beheer van gebruik, limieten en monitoring, bijvoorbeeld per model of team.
Ontwikkelomgeving
GovChat-NL beschikt over een uitgebreide lokale ontwikkelomgeving. Dankzij hot-reloading worden wijzigingen in de broncode direct doorgevoerd, zonder dat de applicatie handmatig hoeft te worden herstart. Dit vergemakkelijkt en versnelt het ontwikkelproces.
Voor meer informatie over het opzetten van de ontwikkelomgeving, zie de Developer Mode documentatie.
Bijdragen en overleg
Wil je bijdragen aan GovChat-NL? Je kunt je bijdrage indienen via een pull request (PR); je PR wordt geëvalueerd en bij geschiktheid toegevoegd aan het platform.
Daarnaast is er een tweewekelijks digitaal overleg met verschillende overheden, waaronder de provincies Overijssel, Flevoland, Utrecht en de Gemeente Meierijstad. Heb je interesse om deel te nemen of wil je meer informatie? Neem gerust contact met ons op, bijvoorbeeld via LinkedIn.
