Hoe het werkt.
Acht stappen van een document op je schijf naar een antwoord dat zijn bron noemt.
Deze pagina legt uit wat Provenize technisch doet, zonder dat je er iets technisch voor hoeft te weten. Elke stap staat er eerst in gewone woorden.
Onder elke stap zetten we het vakwoord dat ontwikkelaars ervoor gebruiken. Handig als je verder wilt lezen — negeer het gerust als dat niet zo is.
Acht stappen. Alles hierin bestaat vandaag, behalve waar we het anders zeggen.
Alles draait op je eigen computer
Provenize is een programma dat op jouw machine staat, naast de programma’s die je al gebruikt. Er zit geen server van ons tussen. Zet je internet uit, dan blijft het werken.
local-first · een klein hulpprogramma dat naast je eigen app draait
Je documenten worden ingelezen en in stukjes geknipt
Een pdf van tweehonderd pagina’s is te groot om in één keer te overzien. Provenize knipt hem in stukjes van een paar alinea’s en houdt van elk stukje bij uit welk bestand en welke pagina het kwam. Dat bijhouden is later precies wat een bronvermelding mogelijk maakt.
ingestion · chunking · pdf, tabellen en tekstherkenning voor scans
Elk stukje krijgt een vingerafdruk van zijn betekenis
Naast de letterlijke tekst bewaart Provenize een reeks getallen die de betekenis van dat stukje samenvat. Stukjes die over hetzelfde gaan, krijgen getallen die dicht bij elkaar liggen. Zo vind je later ook iets terug als je andere woorden gebruikt dan er staan. Dat rekenwerk gebeurt op je eigen computer.
embeddings · vectorindex · het model dat dit berekent staat lokaal
Zoeken gebeurt op twee manieren tegelijk
Eén zoekactie kijkt naar de letterlijke woorden, de andere naar de betekenis. De twee lijsten worden samengevoegd tot één ranglijst. Letterlijk zoeken is scherp op namen en nummers, betekenis-zoeken op omschrijvingen — samen missen ze minder.
hybride zoeken · trefwoordzoeken plus vector-zoeken, gecombineerd
Pas dan komt er een AI-model aan te pas
Het model krijgt twee dingen: je vraag, en de paar gevonden stukjes tekst. Niet je hele dossier — dat blijft waar het staat. Wil je een model gebruiken dat in de cloud draait, dan halen we er eerst namen, mailadressen en burgerservicenummers uit. Dat lukt niet altijd, en dat zeggen we ook.
antwoorden op basis van opgehaalde tekst · persoonsgegevens weghalen vóór verzending
Geen bron, geen antwoord
Elk feit in een antwoord moet aan een van die stukjes tekst hangen. Kan het model dat niet, dan komt er geen antwoord — dan zegt het dat het niets betrouwbaars gevonden heeft. Die regel staat in de code, niet in een vriendelijk verzoek aan het model.
citaties afgedwongen in code · bron, pagina en hoe goed het stukje past
Elke handeling komt in een logboek dat aan elkaar vastzit
Van elke regel in het logboek wordt een klein rekengetal gemaakt, en de vorige regel doet in die berekening mee. Verander je één regel, dan klopt het getal van die regel niet meer, en dat van alle regels erna ook niet. Sleutelen valt dus altijd op. Er kan alleen iets bij; er gaat nooit iets uit.
een keten van rekengetallen · logboek waar alleen aan toegevoegd wordt
Wissen zonder je bewijs kwijt te raken
Gegevens over een persoon staan versleuteld met een sleutel die alleen voor die persoon geldt. Een wisverzoek gooit die sleutel weg: de inhoud wordt onleesbaar, terwijl de keten van rekengetallen heel blijft. Je kunt dus aantonen dát je gewist hebt, zonder te bewaren wat er stond.
één sleutel per persoon · wissen door de sleutel te verwijderen
Staat er een woord tussen dat je niet kent? Kijk bij de vaktermen.
Drie regels: inlezen, zoeken, de bron erbij.
from ai_memory import AIMemory
mem = AIMemory("./vault")
mem.ingest("reports/report-2025.pdf")
hits = mem.search("TLS misconfiguration")
print(hits[0].citation) # report-2025.pdf · p. 41 · 0.93De volledige beschrijving staat op de SDK-pagina.
De echte namen, met in gewone woorden wat ze doen.
- Pythonde taal waarin het geschreven is
- SQLitede database voor één gebruiker: alles in één bestand
- PostgreSQLde database voor een team: iedereen ziet alleen eigen gegevens
- Vectorzoekenhet deel dat op betekenis zoekt
- Lokale taalmodellenhet rekenwerk voor betekenis, op je eigen machine
- SHA-256het rekengetal dat de logboekregels aan elkaar knoopt
- ed25519de digitale handtekening onder een export of bewijsstuk
- MCPde koppeling waarmee andere AI-tools je geheugen mogen lezen
- 2.700+ testsongeveer negentig procent van de code automatisch nagelopen
- Het voert nooit code uit die het in een document tegenkomt. Een document is tekst om te lezen, geen opdracht om uit te voeren.
- Het stuurt nooit een heel document naar buiten. Alleen je vraag en de stukjes die als bron dienen — en dat alleen als jij een extern model aanzet.
- Het verzint nooit een bron. Bestaat de bron niet, dan komt er geen antwoord.
- Het praat niet met ons. Wij hebben geen server die jouw gegevens ziet, dus valt er bij ons ook niets te lekken.
Wil je het controleren in plaats van geloven?
Bekijk het bewijs