Wat is RAG en waarom is het belangrijk
Standaard GPT-4o kent de interne documenten van jouw bedrijf, je productcatalogus of je klantdata niet. RAG lost dit op: je slaat je inhoud op als vectorembeddings in een database, en bij het stellen van een vraag vind je de meest relevante passages en stuur je ze als context naar de LLM.
Het resultaat: een AI-assistent die vragen beantwoordt over jouw specifieke data, nauwkeurig en met bronvermeldingen.
Voor Nederlandse bedrijven zijn RAG-applicaties bijzonder waardevol voor: interne kennisbanken (personeelshandboeken, procesbeleidsregels), klantenservice-chatbots gebaseerd op productdocumentatie, en juridische of regelgevende vraag-en-antwoord-systemen. En omdat alle data in jouw Supabase-instantie blijft, voldoe je eenvoudig aan de AVG-eisen voor gegevensopslag binnen de EU.
Stap 1: pgvector activeren in Supabase
Supabase wordt geleverd met pgvector ingebouwd. In de Supabase SQL-editor voer je uit: CREATE EXTENSION IF NOT EXISTS vector;
Maak daarna je documenttabel: CREATE TABLE documents ( id bigint primary key generated always as identity, content text, embedding vector(1536), metadata jsonb, created_at timestamptz default now() );
Maak een index voor snelle gelijkenis-zoekopdracht: CREATE INDEX ON documents USING ivfflat (embedding vector_cosine_ops);
Dit is de enige SQL die je hoeft te schrijven. Kies EU-regio bij het aanmaken van je Supabase-project (bijv. eu-west-1 in Frankfurt) om te garanderen dat vectordata binnen de EU blijft.
Stap 2: Embeddings genereren met Xano
In Xano maak je een endpoint dat een tekstreeks accepteert, de OpenAI Embeddings API aanroept (text-embedding-3-small) en het resultaat opslaat in je Supabase documents-tabel.
De function stack: (1) Haal tekstinput op, (2) Roep OpenAI API POST /v1/embeddings aan, (3) Extraheer de embedding-array uit de respons, (4) Voeg in in Supabase via de Supabase API-koppeling.
Voer dit uit voor elk document, artikel of FAQ-item waarvan je wilt dat je AI het kent. Voor Nederlandse bedrijven kan dit zijn: productbladen, prijsdocumenten, klantenservicescripts of juridische contracten. Het proces is identiek ongeacht het documenttype.
Stap 3: Semantisch zoeken in Xano
Maak een tweede endpoint dat: (1) Een gebruikersvraagstring accepteert, (2) Een embedding genereert voor de vraag (dezelfde OpenAI-aanroep), (3) Een vectorgelijkenis-zoekopdracht uitvoert in Supabase.
De Supabase RPC-functie hiervoor: SELECT content, 1 - (embedding <=> query_embedding) as similarity FROM documents ORDER BY embedding <=> query_embedding LIMIT 5;
Dit retourneert de 5 meest semantisch relevante passages voor de vraag van de gebruiker. Het systeem begrijpt betekenis, niet alleen trefwoordovereenkomst — een vraag over "vakantiebeleid" vindt de juiste sectie zelfs als het exacte woord niet in het document staat.
Stap 4: Het antwoord genereren met GPT-4o
Met de opgehaalde passages roep je de OpenAI Chat Completions API aan. De systeemprompt:
"Je bent een behulpzame assistent. Beantwoord de vraag van de gebruiker ALLEEN met de hieronder verstrekte context. Als het antwoord niet in de context staat, zeg dat dan.
Context: [VOEG OPGEHAALDE PASSAGES HIER IN]"
Dit verankert de LLM's antwoorden in je werkelijke data en voorkomt hallucinaties. Voor Nederlandse bedrijven kun je de systeemprompt aanpassen om standaard in het Nederlands te antwoorden, formeel of informeel aanspreekvormen te gebruiken afhankelijk van de context, en te verwijzen naar Nederlandse regelgeving of brancheterminologie.
Stap 5: Bouw de chat-UI in WeWeb
In WeWeb maak je een chatinterface met een berichtenlijst en een invoerveld. Bij verzenden: roep je Xano zoekendpoint aan, stream daarna het GPT-antwoord met Xano's streamingondersteuning of een directe OpenAI-aanroep vanuit WeWeb's aangepaste code.
Voor productie voeg je toe: berichtengeschiedenis (opslaan in Supabase), broncitaties (toon welke documenten werden opgehaald) en een feedbackmechanisme (duim omhoog/omlaag om ophaal-kwaliteit te verbeteren).
Het hele systeem kan live zijn en echte gebruikers bedienen binnen 2–3 weken. Een interne kennisbank-chatbot is een uitstekend eerste RAG-project: goed gedefinieerde scope, meetbare waarde (minder tijd besteed aan het doorzoeken van documentatie) en laag risico. Neem contact op via /contact voor hulp bij je eerste RAG-implementatie.