Implementatie


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.

Architectuuroverzicht GovChat-NL, het overzicht wordt onder deze afbeelding verder tekstueel beschreven.

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.