RAG (Retrieval-Augmented Generation):
Je eigen data ontsluiten met AI
Hoe je een kennisbank, documentatie of websiteteksten doorzoekbaar maakt via een AI-assistent, en wat er technisch onder de motorkap gebeurt.
Waardevolle kennis, maar onvindbaar
Veel organisaties zitten op een berg kennis. Productdocumentatie, interne handleidingen, klantdossiers, beleidsstukken, jarenlange e-mailconversaties, eerdere offertes. Die kennis is waardevol, maar in de praktijk vaak onvindbaar. Een medewerker stelt een vraag, weet dat het antwoord ergens staat, en is tien minuten kwijt aan zoeken in SharePoint, het intranet of een oude kennisbank. Of erger: hij stelt de vraag maar niet en neemt zelf een beslissing.
Tegelijkertijd is er een generatie AI-tools ontstaan, zoals ChatGPT, Copilot en Claude, die indrukwekkend goed vragen kan beantwoorden, maar jouw organisatie niet kent. Een generiek taalmodel weet alles over de wereld in het algemeen, en niets over jouw productspecificaties, jouw contracten of jouw processen. En er is een reden waarom je je interne documenten niet zomaar bij een extern AI-model wil uploaden.
De oplossing ligt daar precies tussenin: een AI-systeem dat de taalvaardigheid van een modern taalmodel combineert met jouw eigen, afgeschermde bronnen. Die aanpak heet Retrieval-Augmenten Generation, afgekort RAG.
Wat is RAG
RAG is een techniek waarbij een taalmodel eerst relevante informatie uit jouw bronnen ophaalt, en vervolgens daarop een antwoord formuleert. Het model verzint niets uit zijn eigen hoofd. Het put uit wat het op dat moment aangereikt krijgt.
Een vergelijking: een nieuwe collega die bij elke vraag eerst het juiste dossier uit de kast haalt, het relevante stuk leest, en daarna in zijn eigen woorden antwoord geeft. Geen gegok, geen onderbuikgevoelens, wel snelheid, want hij hoeft niet het hele dossier uit zijn hoofd te leren.
Onder de motorkap gebeurt het volgende. De vraag wordt omgezet naar een wiskundige representatie (een embedding), die vergeleken wordt met een vooraf opgebouwde index van alle brondocumenten. De paar meest relevante stukjes brontekst worden vervolgens samen met de oorspronkelijke vraag aan het taalmodel gegeven. Dat formuleert een antwoord dat strikt gebaseerd is op die stukjes. Als er geen goede match is, kan het gewoon zeggen: dit weet ik niet.
Hallucinaties voorkomen
Een van de belangrijkste redenen dat RAG de standaard is geworden voor AI-toepassingen in een zakelijke context, is dat het hallucinaties voorkomt. Hallucinaties zijn AI-antwoorden die plausibel klinken maar feitelijk onjuist zijn. Omdat een RAG-systeem antwoorden baseert op concrete bronnen in plaats van op wat het model 'denkt te weten', beperkt het dit risico aanzienlijk.
Waar RAG waarde oplevert
RAG is waardevol overal waar veel tekstuele kennis ligt en mensen daar vragen over stellen. Een paar concrete toepassingen:
Een chatbot op je website, webapplicatie of intranet die vragen over producten, voorwaarden of support beantwoordt op basis van je eigen documentatie. Ontlast het supportteam bij veelgestelde vragen en geeft 24/7 antwoord.
Medewerkers vragen direct in hun browser of in Teams wat het verlofbeleid is, hoe ze een VPN instellen of welke procedure geldt bij ziekte. Het antwoord komt uit het eigen personeelshandboek.
Voor juridische, medische of financiële professionals die dagelijks door honderden pagina's aan dossiers moeten.
De gemene deler: ergens ligt veel geschreven informatie, en ergens staat een mens met een vraag. RAG haalt de afstand tussen die twee weg.
Onder de motorkap
Een RAG-systeem bestaat in de kern uit vier onderdelen. Elk onderdeel kent zijn eigen afwegingen, en juist die afwegingen bepalen of het systeem straks goed of middelmatig werkt.
1. Content extractie. Voordat je iets kunt doorzoeken, moet je bepalen wat er in de index komt. Welke bronnen tellen mee? Welke metadata hang je eraan? Hoe schoon is de brontekst, staan er navigatie-elementen of boilerplate tussen die het signaal verdunnen? Hier wordt al de helft van de kwaliteit bepaald. Garbage in, garbage out geldt voor AI net zo hard als voor elk ander systeem.
2. Chunking. Je embed geen hele pagina of PDF in één keer, want dan verdwijnt de specifieke inhoud in een te algemeen gemiddelde. Je knipt de tekst in overlappende stukken van meestal een paar honderd tot een paar duizend karakters, zodat elke chunk een samenhangend onderwerp bevat. Waar je precies knipt (op zinsgrens, alinea, natuurlijke sectie) is een balans tussen precisie en context.
3. Embeddings en vector database (semantisch zoeken). Elk stukje tekst wordt door een embedding-model omgezet naar een vector van een paar duizend getallen. Stukken tekst die semantisch op elkaar lijken, krijgen vectoren die dicht bij elkaar liggen. Die vectoren sla je op in een vector database zoals Qdrant, Pinecone of pgvector. Bij een vraag zet je diezelfde vraag ook om naar een vector, en zoekt de database de dichtstbijzijnde brontekst-vectoren.
4. Retrieval en prompt. De gevonden stukken gaan samen met de oorspronkelijke vraag in een zorgvuldig opgebouwde prompt naar het taalmodel. De kunst zit in de instructies: antwoord uitsluitend op basis van de aangeleverde context, geef toe wanneer je het niet weet, formuleer natuurlijk. Een relevantie-drempel zorgt er daarnaast voor dat vragen die helemaal buiten de kennisbank vallen het model niet eens bereiken. Die krijgen direct een eerlijk "dit weet ik niet"-antwoord terug.
Het klinkt overzichtelijk, en qua architectuur is het dat ook. Maar de kwaliteit van het eindresultaat hangt volledig af van hoe je elk van deze vier onderdelen invult voor jouw specifieke situatie.
Onze eigen kennisbank-bot: van Umbraco naar Qdrant naar OpenAI
Om zelf te ervaren waar de knelpunten zitten, hebben we deze aanpak op onze eigen website toegepast. De bot beantwoordt vragen over onze diensten, aanpak en cases, uitsluitend op basis van wat er op de site staat.
Keuzes die ertoe doen:
Bronnen uit Umbraco. Een Hangfire-job extraheert elke nacht tekst uit alle gepubliceerde pagina's en chunkt die.
Qdrant als vector database. Chunks krijgen embeddings via OpenAI's
text-embedding-3-small. Voldoende kwaliteit voor onze schaal, goedkoper en sneller dan het grotere model.GPT-4o-mini voor antwoorden. Voor een ingekaderde kennisbank-bot is het verschil met de grote variant klein, het prijsverschil niet.
Strikte relevantie-drempel. Scoren chunks onder de drempel, dan geeft de bot direct "dit weet ik niet" terug zonder het taalmodel aan te roepen. Dat bespaart kosten én voorkomt dat de bot iets componeert uit zwakke matches.
Umbraco als bron voor RAG: een AI-kennisbank of chatbot op je eigen CMS
Een Umbraco-omgeving heeft een paar eigenschappen die de toepassing van RAG eenvoudig maken. De techniek voor een RAG-systeem is overal hetzelfde, maar de praktische haalbaarheid staat of valt met hoe toegankelijk je broncontent is. En juist daar ligt de kracht van Umbraco.
Makkelijk toegankelijke, gestructureerde content. Content in Umbraco staat niet verstopt in losse HTML-bestanden of diep genest in een database. Elk document-type, elk veld en elke block list is via de Content Delivery API of direct vanuit code uit te lezen. Daarnaast is content vaak al logisch gestructureerd: een FAQ-accordion bestaat uit aparte items, een content-pagina uit herkenbare componenten. Die structuur vertaalt zich natuurlijk naar chunks, waardoor de retrieval-stap scherpere resultaten oplevert.
Strongly typed access. Umbraco's ModelsBuilder genereert typed modellen voor alle content. Je hoeft geen HTML te parsen of XPath-queries te schrijven. Je loopt typed door de properties en weet precies welk veld welke betekenis heeft. Block lists en block grids laten zich recursief uitlezen, inclusief geneste componenten.
Eén ecosysteem. Omdat Umbraco, Hangfire, Qdrant-clients en de OpenAI SDK allemaal binnen .NET leven, is de hele keten één oplossing in één repository, met één deployment-pipeline en één monitoring-omgeving. Geen losse Python-service ernaast, geen extra hostingcomponent.
Umbraco HQ heeft zelf een AI-strategie ingezet langs twee sporen: een Umbraco.AI-packagesuite met een Copilot in de backoffice, en een Umbraco MCP-server waarmee externe tools zoals Claude of GitHub Copilot direct met een Umbraco-installatie kunnen praten. Die richting bevestigt waar we al langer in geloven: Umbraco is een natuurlijk fundament voor AI-toepassingen. Waar die packages zich richten op productiviteit binnen het CMS, blijft een maatwerk RAG-oplossing de aangewezen aanpak om eigen content te ontsluiten richting bezoekers of medewerkers, met volledige controle over indexering, bronnen en hosting.
Een bestaande Umbraco-omgeving is daarmee een uitstekende startpositie voor een RAG-implementatie, of de kennisbank nu op de publieke website komt, op een afgeschermd intranet, of als interne medewerkers-assistent.
Tot slot
Retrieval-Augmented Generation is geen magie en geen hype. Het is een concrete, inmiddels beproefde techniek om waardevolle kennis in een organisatie doorzoekbaar en bruikbaar te maken. De onderdelen zijn overzichtelijk (content extractie, chunking, embeddings, retrieval, prompt), maar de invulling van elk onderdeel bepaalt uiteindelijk het verschil tussen een indrukwekkende demo en een systeem dat na een jaar nog steeds goede antwoorden geeft.
Veelgestelde vragen over RAG
ChatGPT gebruikt algemene kennis; een RAG-chatbot put uit jouw eigen, specifieke bronnen en geeft daarop gebaseerde antwoorden met bronvermelding.
Aanzienlijk minder dan een kaal taalmodel. Met een goed ingestelde relevantie-drempel en strikte prompt kiest de bot bij afwezigheid van context bewust voor "dit weet ik niet".
Ja. Tekstuele bronnen in vrijwel elk formaat kunnen als bron dienen, inclusief Confluence, SharePoint, PDF's en bestaande documentenverzamelingen.
Zelf een RAG-implementatie overwegen?
Dit artikel is de technische achtergrond. Hoe we RAG als dienst aanpakken, kosten, doorlooptijd, een stappenplan en de keuzes die we vooraf met je maken, staat op een aparte pagina.
Onze aanpak en tarieven