Corpus-keuze: scherp afbakenen voordat u indexeert
Een RAG-systeem is zo goed als het corpus dat het doorzoekt. Wij beginnen niet met "alle bestanden" maar met een scherp afgebakende set: vaak een beleidshandboek, productdocumentatie of een juridische dossierreeks. De eerste vraag is altijd of het corpus actueel, gestructureerd en juist is. Vuile documenten leveren vuile antwoorden, ongeacht hoe goed het model is. Tijdens deze fase identificeren we ook welke documenten persoonsgegevens of bedrijfsgeheimen bevatten — die krijgen aparte ACLs en retention-regels.
Embeddings en chunking: de technische kern
Documenten worden opgesplitst in chunks van doorgaans 256 tot 1.024 tokens, met overlap om context te behouden. Voor elk chunk genereren we een embedding — een numerieke vector die de betekenis vastlegt — via OpenAI text-embedding-3-large of een open alternatief zoals BGE-M3. Voor Nederlandstalige corpora testen we expliciet of een meertalig embeddingsmodel zoals BGE of Cohere Multilingual betere resultaten levert dan een Engelstalig dominant model. Deze keuze maakt vaak 10 tot 20 procent verschil in retrieval-kwaliteit.
Hybrid search en herrangschikking
Pure semantische zoek mist soms exacte terminologie — productcodes, paragraafnummers, eigennamen. Daarom combineren wij dense vectoren met BM25-scores in een hybrid retriever via LangChain of LlamaIndex. De top 50 resultaten gaan vervolgens door een rerank-model (Cohere Rerank of een open Cross-Encoder) dat de meest relevante passages naar boven brengt. Deze tweetraps-aanpak — retrieve, dan rerank — verbetert in onze benchmarks de eerste-resultaat-juistheid van rond de 65 procent naar boven de 85 procent.
Generatie met verplichte citaten
De gegenereerde passages worden samen met de oorspronkelijke vraag aan GPT-4o, Claude 3.5 Sonnet of een ander LLM aangeboden, met een systeemprompt die expliciet citaten vereist. Elke uitspraak in het antwoord verwijst naar een document-ID en passage. Een nageschakelde validator controleert of de citaten daadwerkelijk in het brondocument terugkomen — zo niet, dan markeert het systeem het antwoord als onbetrouwbaar. Deze citatenketen is wat een RAG-systeem onderscheidt van een "AI-zoekmachine": het is verantwoordbaar, herleidbaar en GDPR-conform.
Onderhoud: indexering blijft een levend proces
Een productie-RAG vereist incrementele indexering. Bij wijziging, toevoeging of verwijdering van een brondocument worden de bijbehorende vectoren bijgewerkt binnen minuten tot uren — niet weken. Wij implementeren change-data-capture op uw documentbron (SharePoint, Confluence, een DMS) en koppelen die aan een herindexerings-pipeline. Maandelijks evalueren we de retrieval-kwaliteit op een vaste testset; bij significante regressie wordt de embeddings-versie of chunkstrategie heroverwogen.