Van Notion naar AI-zoeksysteem: hoe wij 24.000 documenten indexeren op een NAS
Het probleem
Een buurthuis, adviesraad of wijkplatform bouwt jarenlang kennis op in Notion: vergaderverslagen, beleidsdocumenten, draaiboeken, contacten. Na drie jaar is die werkruimte onnavigeerbaar. Zoeken levert een lijst pagina’s op — maar niet het antwoord op uw vraag.
De voor de hand liggende oplossing is een AI-zoekopdracht via een cloudservice. Maar dan verlaat al uw archief uw eigen infrastructuur. Voor organisaties die met persoonsgegevens werken is dat geen optie.
Wij bouwden een alternatief dat volledig on-premise draait.
De architectuur in vier lagen
Laag 1 — Vectordatabase op eigen NAS
pgvector is een open-source extensie op PostgreSQL die tekst opslaat als wiskundige vectoren. Wij draaien dit als Docker-container op een Synology DS218+, een NAS die bij veel organisaties al aanwezig is. Investering: hardware die er al stond.
Laag 2 — Embeddings met Voyage-3
Voyage-3 zet Nederlandse tekst om naar vectoren die semantische betekenis vastleggen — niet alleen trefwoorden, maar context. “Begroting goedgekeurd” en “financieel akkoord” worden als verwant herkend.
Laag 3 — FastAPI-backend met streaming
Een lichtgewicht Python-backend verwerkt zoekvragen en stuurt het antwoord terug via Server-Sent Events. De gebruiker ziet het antwoord opbouwen terwijl het gegenereerd wordt, zonder te wachten op een volledige response.
Laag 4 — Claude voor antwoordformulering
Claude (Anthropic) formuleert het uiteindelijke antwoord op basis van de relevante fragmenten. Het model ziet alleen de geselecteerde stukken tekst — niet het volledige archief.
Wat er geindexeerd wordt
| Bron | Chunks |
|---|---|
| Notion-werkruimte (vergaderverslagen, beleid, wiki, SOP’s) | 1.608 |
| Google Drive (documenten, inclusief OCR van gescande PDF’s) | 20.814 |
| Systeemkennis (workflows, instructies, SOP’s) | 1.930 |
| Totaal | 24.352 |
Een chunk is een alinea of tekstblok van gemiddeld 200-400 woorden. Elke chunk behoudt een verwijzing naar de bronpagina, zodat elk antwoord controleerbaar is.
Nachtelijke synchronisatie
Het archief verandert dagelijks. Onze sync draait elke nacht om 23:00 en doet drie dingen:
- Nieuwe of gewijzigde pagina’s worden opnieuw geindexeerd.
- Verwijderde pagina’s worden uit de index gewist (orphan cleanup).
- De volgende ochtend is het zoeksysteem actueel.
Geen handmatige interventie nodig.
Privacy ingebouwd
Organisaties in het sociaal domein werken met persoonsgegevens. Wij voegden een WOO-anonimisatiefilter toe: een combinatie van Named Entity Recognition en een naamslijst. Persoonsgegevens in antwoorden worden vervangen door [Persoon-N] voor de output de organisatie verlaat.
Wat het oplevert
Een medewerker typt: “Wat heeft het bestuur besloten over de begroting in 2025?”
Het systeem geeft binnen drie seconden een geformuleerd antwoord met een directe link naar het vergaderverslag van de betreffende datum.
Geen zoekopdrachten door tien pagina’s. Geen cloud-abonnement. Geen data buiten de deur.
Dit is Tier 3 — Volledige AI-stack op eigen server.
Bekijk het aanbod of probeer de live demo.
