RAG chatbot webshop: productkennis zelf bouwen
Terug naar blog

RAG chatbot webshop: productkennis zelf bouwen

9 min leestijd

Zo bouw je een RAG chatbot voor je webshop die alleen antwoordt uit je eigen catalogus, FAQ en voorwaarden: data, retrieval, guardrails, AVG en kosten.

Een chatbot die zonder bron antwoordt, verzint dingen. Over maatadvies, compatibiliteit en levertijden verzin je geen dingen. Dat kost je retouren, klachten en vertrouwen.

Een RAG chatbot voor je webshop lost dat op. De bot zoekt eerst in je eigen catalogus, FAQ en voorwaarden. Het taalmodel formuleert daarna alleen een antwoord op basis van wat is gevonden.

Dit artikel gaat over de bouw. Voor de algemene vraag of een chatbot klantenservice kan ontlasten, lees je ChatGPT en chatbots voor webshops. Voor zoeken in plaats van chatten staat AI semantic search voor webshops klaar. Hier staat het productadvies centraal: hoe bouw je een bot die alleen zegt wat je zelf hebt opgeschreven.

Wat RAG is, zonder jargon

RAG staat voor retrieval augmented generation. Drie stappen:

  1. Retrieval. De vraag van de klant gaat naar een zoeksysteem. Dat geeft de 5 tot 10 meest relevante stukken tekst terug.
  2. Augmentation. Die stukken gaan als context mee in de prompt.
  3. Generation. Het taalmodel schrijft een antwoord, uitsluitend op basis van die context.

Het model hoeft je assortiment dus niet te kennen. Het leest elke keer opnieuw mee. Een nieuwe productvariant staat na de volgende sync in het antwoord. Je hoeft niets te hertrainen.

Wil je de technische basis van embeddings en LLM-koppelingen eerst op een rij? Die staat in LLM integreren in je webshop met RAG en embeddings. Dit artikel bouwt daarop voort met de keuzes die je als tech lead of eigenaar moet maken.

Stap 1: bepaal wat de bot mag weten

Begin met bronnen, niet met een model. Maak een lijst:

  • Productdata: naam, beschrijving, attributen, categorieën, varianten.
  • Content: FAQ, retourbeleid, verzendvoorwaarden, maattabellen, gebruiksaanwijzingen.
  • Live data: prijs, voorraad, levertijd. Deze indexeer je niet. Meer daarover bij guardrails.

Laat alles weg wat je niet wilt horen terugkomen in een antwoord. Interne notities, inkoopprijzen en oude actievoorwaarden horen niet in de index.

Stap 2: data klaarmaken

De kwaliteit van de bot is de kwaliteit van je data. Een slimmer model repareert dat niet.

Attributen opschonen

Een catalogus bevat vaak "Kleur: antraciet", "kleur: Antraciet" en "Kleur: donkergrijs" voor hetzelfde product. De retrieval-laag ziet drie verschillende dingen. Normaliseer waarden voordat je indexeert, en vul lege attributen aan. Ontbrekende data levert een bot op die "dat weet ik niet" zegt, of erger, gokt.

Chunking

Een chunk is het stuk tekst dat je als eenheid indexeert. Twee vuistregels:

  • Eén product, één document. Zet naam, attributen en beschrijving samen in een gestructureerde tekst. Zo blijft de context bij elkaar.
  • Beleidsteksten splitsen op kop. Een retourbeleid knip je per onderwerp (termijn, kosten, uitzonderingen), niet op een vast aantal tekens. Houd elk stuk zelfstandig leesbaar.

Geef elke chunk metadata mee: type (product, FAQ, beleid), product-ID, URL, taal, laatste wijzigingsdatum. Die metadata heb je nodig voor filters, bronvermelding en verversing.

Embeddings

Een embedding zet tekst om in een vector. Teksten met dezelfde betekenis liggen dicht bij elkaar. Kies een meertalig model als je Nederlandse content hebt, en test het op je eigen vragen. Een model dat in het Engels goed scoort, hoeft dat in het Nederlands niet te doen.

Freshness: sync vanuit Magento of Shopify

Een bot met verouderde data is gevaarlijker dan geen bot. Bouw de sync als event-gedreven proces:

  • Magento 2: luister naar product-wijzigingen via observers, de message queue of een geplande delta-indexer en push alleen gewijzigde producten naar je vectorindex.
  • Shopify: gebruik webhooks (zoals product-updates) en een periodieke volledige reconciliatie als vangnet.
  • Verwijderen telt mee. Een uitgefaseerd product moet uit de index verdwijnen, anders adviseert de bot iets dat niet meer bestaat.

Bewaar per chunk een hash van de brontekst. Is de hash gelijk, dan hoef je niet opnieuw te embedden. Dat bespaart kosten.

Stap 3: retrieval

Alleen vectoren zijn niet genoeg. Een klant die zoekt op "SKU-4471" of een exact merk wil een letterlijke match. Een klant die vraagt "iets warms voor in de tuin in oktober" wil betekenis. Combineer beide: hybride retrieval.

OptieHybride zoekenPast bij
OpenSearchJa. Keyword (BM25) plus k-NN of neural search, met een normalization processor in een search pipeline (sinds versie 2.11)Je draait al OpenSearch, zoals bij Magento 2
PostgreSQL met pgvectorVectorzoeken met HNSW- en IVFFlat-indexen; keyword via Postgres full-text search, die je zelf combineertLaravel-stack, kleinere catalogus, één database
Beheerde vectordatabaseVerschilt per aanbiederJe wilt geen zoekinfrastructuur beheren

Twee dingen om te controleren voordat je kiest:

  • OpenSearch-versie. Magento 2 draait op OpenSearch of Elasticsearch, maar de versie die je host bepaalt of de hybride functies beschikbaar zijn. Controleer de versie bij je hostingpartij en de actuele OpenSearch-documentatie.
  • Normalisatie. BM25 en vectorscores hebben een andere schaal. Combineer ze nooit zonder normalisatie, anders wint altijd één van de twee.

Pgvector ondersteunt meerdere afstandsfuncties (L2, cosine, inner product). Je maakt per afstandsfunctie een index aan. Kies cosine als je embeddingmodel dat adviseert.

Gebruik daarnaast filters. Een klant op de herenpagina krijgt geen damesmodellen. Filter op taal, categorie en beschikbaarheid vóór de vectorzoektocht, niet erna.

Stap 4: guardrails

Dit is het deel waar de meeste projecten stuklopen. Zet de regels vast in de systeemprompt én in code. Een prompt alleen is geen garantie.

De bot antwoordt alleen uit bronnen. Komt er niets relevants terug uit retrieval, dan zegt de bot dat hij het niet weet. Geen gok. Elk productadvies krijgt een link. Een antwoord zonder bron-URL toon je niet. Dat maakt controle voor de klant en voor jou makkelijk. Prijs en voorraad komen nooit uit de index. Die data veroudert binnen minuten. De bot haalt ze op via een live API-call op het moment van de vraag. Staat de call stil, dan noemt de bot geen prijs. Zo'n koppeling bouw je als een kleine, beveiligde API-laag. Hoe dat werkt lees je bij Laravel API development. Escaleren naar een mens. Definieer triggers: klachten, juridische vragen, retouren boven een bedrag, of twee mislukte pogingen. De bot geeft het gesprek over met de volledige context, zodat de klant niet opnieuw begint. Geen toezeggingen. Garantie, levertermijn en kortingen zeggen is een taak voor beleidsdata of een mens. Hard coderen in de prompt dat de bot hier niets over beslist. Transparantie. Laat zien dat de klant met AI praat. Onder de EU AI Act geldt voor chatbots een transparantieplicht (artikel 50). Controleer de actuele ingangsdatum en reikwijdte bij de Europese Commissie of je juridisch adviseur.

Stap 5: evalueren met een golden set

Zonder meting weet je niet of je bot beter wordt of slechter. Bouw een golden set:

  1. Verzamel 100 tot 200 echte vragen uit chatlogs, mailbox en zoektermen.
  2. Schrijf bij elke vraag het juiste antwoord en de bronpagina(s) die erbij horen.
  3. Voeg vragen toe die de bot níet mag beantwoorden, zoals vragen buiten je assortiment en vragen over prijs zonder API.
  4. Draai de set na elke wijziging aan prompt, model, chunking of index.

Meet twee dingen apart:

  • Retrieval: staat de juiste bron in de top 5?
  • Antwoord: is het antwoord correct, volledig en onderbouwd met een link?

Zo zie je of een fout in zoeken of in formuleren zit. Dat scheelt dagen debuggen.

Privacy en AVG

Dit is geen juridisch advies. Wel de punten die je technisch moet regelen:

  • Geen persoonsgegevens naar het model. Haal namen, e-mailadressen, adressen en ordernummers uit de invoer voordat je ze doorstuurt. Tel klantvragen mee: mensen typen zelf gegevens in.
  • Verwerkersovereenkomst. Geef je gegevens aan een aanbieder van een model of SaaS-bot, dan is die aanbieder verwerker. Sluit een overeenkomst conform artikel 28 AVG.
  • Bewaartermijn en training. Controleer in de voorwaarden of gesprekken worden bewaard of gebruikt om modellen te trainen. De Autoriteit Persoonsgegevens waarschuwde in 2024 al voor datalekken doordat medewerkers persoonsgegevens in chatbots invoerden.
  • Locatie van verwerking. Check waar data wordt verwerkt en welke doorgifte-afspraken gelden.
  • Logging. Bewaar gesprekken alleen zolang je ze nodig hebt voor evaluatie, en pseudonimiseer ze.

Kosten

Reken op vier posten:

  • Bouw: sync, indexering, API-laag, guardrails, chat-interface en de golden set.
  • Embeddings: eenmalig voor je catalogus, daarna alleen voor wijzigingen. Met hashing blijft dit klein.
  • Taalmodel: per gesprek, afhankelijk van de lengte van de context en het gekozen model. Houd je context kort: 5 relevante chunks kosten minder dan 20.
  • Beheer: monitoring, bijsturen van de golden set, indexonderhoud.

Check de actuele tarieven bij je modelaanbieder. Die veranderen vaak. Reken de rekenstap door met je eigen gespreksvolume, niet met een voorbeeld van een leverancier.

SaaS of zelf bouwen

De eerlijke versie: voor veel shops is SaaS de juiste start.

CriteriumSaaS-chatbotZelf bouwen (RAG)
Tijd tot liveSnelWeken tot maanden
Catalogus-koppelingStandaard connectors, beperkt aanpasbaarVolledig eigen, inclusief B2B-regels en klantprijzen
GuardrailsWat de leverancier toestaatZelf bepaald en testbaar
DataverblijfBij de leverancierEigen keuze
Kosten bij groeiVaak per gesprek of per seatHoge startkosten, lage marginale kosten
OnderhoudLeverancierJij of je development partner
Complexe productenBeperktSterk, mits data op orde is

Kies SaaS als je assortiment simpel is, je weinig eigen businessregels hebt en snel wilt testen.

Kies zelf bouwen als je producten uitleg vragen (compatibiliteit, maten, technische specificaties), als je klantspecifieke prijzen hebt, of als je data niet bij een derde mag liggen.

Twijfel je? Begin met SaaS op een beperkte set vragen. Meet wat misgaat. Bouw pas zelf als die metingen laten zien waar de leverancier tekortschiet.

Checklist voor je start

  • [ ] Bronnenlijst gemaakt, live data (prijs, voorraad) buiten de index gehouden
  • [ ] Attributen genormaliseerd, ontbrekende waarden aangevuld
  • [ ] Chunking per product en per beleidsonderwerp, met metadata
  • [ ] Sync met Magento of Shopify, inclusief verwijderen
  • [ ] Hybride retrieval met normalisatie en filters
  • [ ] Bronlink bij elk advies, live API voor prijs en voorraad
  • [ ] Escalatieregels naar een mens
  • [ ] Golden set met vragen die de bot moet weigeren
  • [ ] Verwerkersovereenkomst en PII-filter
  • [ ] AI-melding richting de klant

Meer context over de brede toepassing van AI in je shop staat op AI voor webshops.

Veelgestelde vragen

Wat is het verschil tussen een RAG chatbot en een gewone chatbot?

Een RAG chatbot zoekt bij elke vraag eerst in jouw eigen data en antwoordt alleen op basis daarvan. Een gewone chatbot baseert zich op vaste scripts of op de algemene kennis van een taalmodel. RAG is actueler en beter te controleren, omdat je bronnen kunt tonen.

Moet ik een taalmodel trainen op mijn productdata?

Nee. Voor productadvies is RAG bijna altijd de betere route. Je data verandert dagelijks en training is traag en duur. Bij RAG werk je de index bij en het antwoord volgt.

Kan de chatbot prijzen en voorraad noemen?

Alleen via een live API-call op het moment van de vraag. Prijs en voorraad horen niet in de vectorindex, omdat ze snel verouderen. Faalt de call, dan noemt de bot geen prijs.

Welke zoekoplossing past bij Magento: OpenSearch of pgvector?

Draai je al OpenSearch voor Magento, controleer dan of jouw versie hybride zoeken ondersteunt; dat scheelt een extra systeem. Heb je een Laravel-laag naast je shop, dan is pgvector in PostgreSQL een compacte optie voor een kleinere catalogus.

Is een RAG chatbot AVG-proof?

Dat hangt af van je inrichting. Filter persoonsgegevens uit de invoer, sluit een verwerkersovereenkomst met je aanbieders en beperk bewaartermijnen. Dit is geen juridisch advies. Laat de eindopzet toetsen door een jurist of je functionaris gegevensbescherming.

Een RAG chatbot laten bouwen?

Wij bouwen de sync, de API-laag en de guardrails zodat je bot alleen zegt wat klopt. Eerst praten we over je catalogus en je vragen, daarna kiezen we SaaS of maatwerk. Neem contact op voor een eerlijk advies.

Ruthger Idema

Geschreven door Ruthger Idema

15+ jaar ervaring in e-commerce development. Gespecialiseerd in Magento, Shopify en Laravel maatwerk.

Meer over ons team →
Deel dit artikel:

Wil je jouw e-commerce naar het volgende niveau?

Plan een vrijblijvend gesprek met onze experts over Magento, Shopify of Laravel maatwerk.

Plan een Tech Check