Veel bedrijven in Woudenberg, Amersfoort en Veenendaal stellen zich dezelfde vraag: “Wat kunnen we met AI, zonder dat het een speeltje wordt of een risico voor onze gegevens?” Wij hebben die vraag eerst voor onszelf beantwoord. Op www.vanarkel.net en www.databaseexplorer.nl staat een AI-assistent die vragen van bezoekers beantwoordt.

In dit artikel leest u hoe die is opgebouwd en wat u daar als zakelijke klant aan heeft.

Wat doet de chatbox?

Een bezoeker stelt een vraag, bijvoorbeeld “Wat doet VanArkel.NET?” of “Hoe helpt DatabaseExplorer bij privacy-naleving?”. De assistent geeft een antwoord dat alleen gebaseerd is op onze eigen, goedgekeurde informatie. Staat het antwoord er niet in, dan zegt de assistent dat eerlijk en verwijst door naar contact. Wilt u daarna echt iets bespreken, dan kunt u in de chat een aanvraag indienen. Die komt bij ons binnen via hetzelfde kanaal als het contactformulier.

Een voorbeeld uit de praktijk

Een bezoeker die een developer zoekt, vraagt bijvoorbeeld:

Vraag: Kan een developer van VanArkel.NET instappen in ons bestaande team?

Antwoord: Ja. VanArkel.NET heeft jarenlange ervaring met het instappen op bestaande projecten en werkt graag samen binnen een Scrum-team.

Bron: Senior .NET developer inhuren

De bezoeker krijgt dus geen algemeen verhaal, maar een kort antwoord uit onze eigen tekst, met de pagina waar hij meer kan lezen. De bewoording van het antwoord kan per gesprek iets verschillen. Dit voorbeeld is een weergave van het soort antwoord, geen letterlijk gesprek.

Onze uitgangspunten

Een paar uitgangspunten die voor ons niet onderhandelbaar waren:

Duidelijk AI

De bezoeker ziet dat hij met een AI-assistent praat en dat antwoorden onjuist kunnen zijn.

Bronvermelding

Waar mogelijk toont de chat de pagina waarop het antwoord is gebaseerd.

Geen gespreksopslag

Het gesprek leeft alleen in uw browser en verdwijnt bij sluiten of vernieuwen. Er wordt pas iets verstuurd als u bewust op “verzenden” drukt, en dan alleen de aanvraag, nooit het hele gesprek.

Toegankelijk

Bediening met toetsenbord en schermlezer, goed bruikbaar op mobiel, en de chat volgt het lichte of donkere thema van de pagina.

De techniek: Microsoft Azure en Foundry

De logica draait volledig op Microsoft Azure. De AI-laag is Microsoft Foundry (Agent Service). Daarin hebben we per website een eigen agent ingericht: een AI-medewerker met eigen instructies, een taalmodel en een eigen kennisbank.

In grote lijnen bestaat de oplossing uit vier onderdelen:

  1. De widget. Een compacte webcomponent, geschreven in TypeScript. De widget bevat geen sleutels en geen AI-code, alleen de gebruikersinterface. Beide websites laden hetzelfde bestand, dus een verbetering voeren we maar één keer door.
  2. De chat-API. Een Azure Function in C# (.NET). Zij controleert elk verzoek, begrenst de omvang en het aantal berichten per bezoeker, en bepaalt aan de hand van de herkomst welke website het is.
  3. De Foundry-agent. De Function roept uitsluitend de agent aan die bij die website hoort. De agent zoekt in zijn eigen kennisbank (file search) en formuleert het antwoord. Dat antwoord wordt woord voor woord naar de bezoeker gestreamd.
  4. Toegang zonder wachtwoorden. De Function praat met Foundry via een managed identity van Azure. Er staan dus geen API-sleutels in de website of in de code.

Twee sites, strikt gescheiden

vanarkel.net (maatwerk in C# en Azure, detachering) en databaseexplorer.nl (databeheer, databasebeheer en privacy-naleving) hebben elk een eigen agent en een eigen kennisbank. Een bezoeker van de ene site krijgt daardoor nooit inhoud van de andere site te zien.

We vertrouwen niet alleen op wat de browser opgeeft. De serverkant controleert de site ook zelf. Deze scheiding en de bescherming tegen misbruik (te lange invoer, te veel verzoeken, een niet-toegestane herkomst) zijn onderdeel van de geautomatiseerde tests.

Veilig en controleerbaar

Wat we niet doen is minstens zo belangrijk:

  • We loggen geen ruwe chatberichten of contactgegevens.
  • We slaan geen transcripties op.
  • Alleen expliciet goedgekeurde, openbaar deelbare teksten komen in de kennisbank.
  • De build-pipeline controleert of er geen geheimen in de browsercode terechtkomen.

Het echte verhaal: uw eigen applicaties

Een chatbox die vragen over een website beantwoordt is een mooie eerste stap. De echte meerwaarde ontstaat zodra de assistent iets kan doen in uw bestaande systemen.

Foundry-agents ondersteunen daarvoor function calling: de agent herkent in een gesprek dat er een actie nodig is en roept een functie aan die wij voor u bouwen. Die functie is gewoon C#-code op Azure, met alle beveiliging en autorisatie die u van uw eigen applicaties gewend bent. Denk aan:

Orderstatus opvragen

In uw ERP- of webshopsysteem, voor klanten of voor uw servicedesk.

Kennis doorzoeken

Handboeken, procedures en andere eigen documenten, met bronverwijzing.

Afspraken en offertes

Een afspraak inplannen of een offerte-aanvraag aanmaken in uw CRM.

Tickets

Tickets aanmaken en opvolgen in Jira, Azure DevOps of uw eigen ticketsysteem.

Gegevens uit uw database

Presenteren in gewone taal, met de juiste rechten per gebruiker.

De agent bepaalt dus wat er gevraagd wordt. Uw eigen, goed beveiligde code bepaalt wat er gebeurt. Het taalmodel krijgt nooit rechtstreeks toegang tot uw systemen, alleen tot de functies die u hebt goedgekeurd. Zo blijft u in control en kunt u stap voor stap uitbreiden: eerst alleen lezen, later ook schrijven.

Dat de basis al op Azure draait, helpt. Uw bestaande Azure-omgeving, identiteiten (Entra ID) en koppelingen kunnen we hergebruiken. Het is geen losse tool, maar een onderdeel van uw eigen applicatielandschap. Voor eigen systemen die niet in Azure draaien zijn ook koppelingen mogelijk, bijvoorbeeld via een beveiligde API.

Wat een vergelijkbare assistent voor uw klanten doet

Neem een leverancier met een webshop. Een klant vraagt: “Wat is de status van mijn bestelling?” De assistent haalt de status op uit uw systeem en geeft het antwoord direct. Uw servicedesk hoeft die vraag niet meer te beantwoorden en de klant wacht niet op een reactie. Vragen die de assistent niet kan beantwoorden, gaan als aanvraag naar uw medewerkers.

Wat eerst nodig is

Een assistent is zo goed als wat u hem laat weten en doen. Daarom verkennen we eerst:

  1. Welke vragen komen het vaakst voor? Daar begint de assistent mee.
  2. Welke kennis mag de assistent gebruiken? Alleen goedgekeurde, actuele teksten gaan in de kennisbank.
  3. Welke systemen moeten bereikbaar zijn? Zo bepalen we welke functies we bouwen, en of de assistent alleen leest of ook schrijft.
  4. Wie mag wat zien? De rechten van uw bestaande applicatie blijven leidend.

Wat betekent dit voor u?

Maatwerk in C# en Azure is ons vak. AI is voor ons geen los vakgebied, maar een nieuwe laag bovenop dat vakmanschap: dezelfde aandacht voor architectuur, beveiliging, testen en beheer. De chatbox op onze eigen websites laat zien dat we dat in de praktijk brengen, inclusief de ongemakkelijke kanten zoals privacy, misbruikpreventie en kosten.

Wilt u weten wat een AI-assistent kan betekenen voor uw eigen applicaties? Vertel ons kort welke toepassing u voor ogen heeft. Wij reageren binnen 1 werkdag en plannen een korte, vrijblijvende verkenning, bij u in de regio of op afstand.

Een idee voor maatwerk software

Wat kan een AI-assistent voor uw applicatie doen?

Beschrijf kort uw toepassing. Wij reageren binnen 1 werkdag en plannen een korte verkenning van de mogelijkheden.
Plan een verkenning