# Documenten samenvatten met lokale AI [[TOC]] ## Waarom lokaal samenvatten? Samenvattingen van gevoelige documenten horen niet op externe servers terecht te komen. Contracten, medische rapporten, juridische adviezen, interne strategiedocumenten: voor dit soort teksten is een lokaal AI-model de juiste keuze. Alles blijft op je eigen machine, er gaat niets naar een cloud-dienst en je betaalt geen tokenkosten. Met moderne modellen van 4B tot 12B parameters op een middelklasse laptop of desktop genereer je in seconden tot minuten kwalitatief goede samenvattingen. :::info title="Eerst Ollama installeren" Ollama moet geïnstalleerd zijn voor de onderstaande voorbeelden. Download het op [ollama.com](https://ollama.com). Installeer daarna een model, bijvoorbeeld `ollama pull gemma3` of `ollama pull llama3.1:8b`. ::: ## Welk model kies je in 2026? De modelnamen veranderen snel, maar de keuze hangt vooral af van taal, documentlengte en je hardware. Een praktisch overzicht voor samenvatten: | Model | Pull-commando | Sterk in | Contextvenster | | --- | --- | --- | --- | | Gemma 3 (4B/12B) | `ollama pull gemma3` | Meertalig, ook goed Nederlands | tot 128K tokens | | Mistral Nemo (12B) | `ollama pull mistral-nemo` | Europese talen, lange documenten | tot 128K tokens | | Llama 3.1 (8B) | `ollama pull llama3.1:8b` | Algemeen, breed beschikbaar | tot 128K tokens | | Llama 3.3 (70B) | `ollama pull llama3.3` | Hoogste kwaliteit, vraagt veel geheugen | tot 128K tokens | Voor Nederlandstalige teksten op een gewone laptop zijn `gemma3` en `mistral-nemo` doorgaans de prettigste keuze. Heb je weinig geheugen, kies dan een kleinere variant zoals `gemma3:4b`. De commando's in dit artikel gebruiken `llama3.1:8b` als voorbeeld; vervang de modelnaam gerust door je eigen voorkeur. ## Methode 1: command line samenvatting Voor een snelle samenvatting vanuit de terminal: ```bash cat mijn-document.txt | ollama run llama3.1:8b "Maak een beknopte samenvatting van de volgende tekst in het Nederlands. Gebruik maximaal 200 woorden en vermeld de belangrijkste punten als bulletpoints:" ``` Voor een PDF eerst converteren naar tekst: ```bash pdftotext mijn-document.pdf - | ollama run llama3.1:8b "Vat dit document samen in het Nederlands:" ``` Op macOS installeer je `pdftotext` via `brew install poppler`. Op Linux zit het in het pakket `poppler-utils`. ## Methode 2: Python-script voor batch-samenvattingen Handig als je een hele map met documenten in één keer wilt verwerken: ```python import subprocess from pathlib import Path def vat_samen(tekst, model='llama3.1:8b', max_woorden=300): prompt = f"""Maak een Nederlandse samenvatting van de volgende tekst. Gebruik maximaal {max_woorden} woorden. Vermeld de belangrijkste punten als genummerde lijst. Tekst: {tekst[:8000]} Samenvatting:""" result = subprocess.run( ['ollama', 'run', model], input=prompt, capture_output=True, text=True, timeout=120 ) return result.stdout.strip() def verwerk_map(map_pad, output_map): Path(output_map).mkdir(exist_ok=True) for bestand in Path(map_pad).glob('*.txt'): print(f'Verwerken: {bestand.name}') tekst = bestand.read_text(encoding='utf-8') samenvatting = vat_samen(tekst) output_pad = Path(output_map) / (bestand.stem + '_samenvatting.txt') output_pad.write_text(samenvatting, encoding='utf-8') print(f'Opgeslagen: {output_pad}') if __name__ == '__main__': verwerk_map('./documenten', './samenvattingen') ``` ## Methode 3: Open WebUI voor een grafische interface Open WebUI biedt een grafische chatinterface bovenop Ollama. Upload je document en typ de samenvattingsinstructie: :::howto title="Samenvatten in Open WebUI" 1. Open Open WebUI op `http://localhost:3000`. 2. Start een nieuw gesprek en kies je model. 3. Upload je document via het paperclip-icoon. 4. Typ: "Maak een gestructureerde samenvatting van dit document in het Nederlands. Gebruik kopjes voor de hoofdonderwerpen." ::: ## Prompts voor betere samenvattingen De kwaliteit van een samenvatting hangt sterk af van de prompt. Drie voorbeelden die je kunt aanpassen: **Executive summary (voor managers)** "Maak een executive summary van maximaal 150 woorden. Focus op: wat is het probleem, wat is de oplossing, wat zijn de aanbevelingen en wat zijn de financiële implicaties." **Juridische samenvatting** "Vat dit contract samen. Identificeer: partijen, hoofdverplichtingen, betalingsvoorwaarden, looptijd, opzegmogelijkheden en eventuele risicoclausules." **Technische samenvatting** "Geef een technische samenvatting voor een developer-publiek. Focus op architectuur, afhankelijkheden, configuratievereisten en bekende beperkingen." :::tip title="Vraag expliciet om Nederlands" Voeg altijd "in het Nederlands" toe aan je prompt als je een Nederlandse samenvatting wilt. Veel modellen redeneren intern in het Engels maar leveren prima Nederlands als je dat duidelijk vraagt. Meertalige modellen zoals Gemma 3 en Mistral Nemo doen dit doorgaans het beste. ::: ## Lange documenten verwerken Elk model heeft een beperkt contextvenster. Past een document daar niet in, splits het dan in stukken (chunks), vat elk stuk samen en combineer die deelsamenvattingen tot een eindversie: ```python def chunk_tekst(tekst, chunk_grootte=4000, overlap=200): chunks = [] start = 0 while start < len(tekst): eind = start + chunk_grootte chunks.append(tekst[start:eind]) start = eind - overlap return chunks def vat_lang_document_samen(tekst, model='llama3.1:8b'): chunks = chunk_tekst(tekst) chunk_samenvattingen = [] for i, chunk in enumerate(chunks): print(f'Chunk {i + 1}/{len(chunks)} verwerken...') samenvatting = vat_samen(chunk, model) chunk_samenvattingen.append(samenvatting) gecombineerd = ' '.join(chunk_samenvattingen) return vat_samen(gecombineerd, model, max_woorden=500) ``` :::warn title="Controleer kritieke informatie" Lokale modellen kunnen hallucineren: ze verzinnen soms feiten die niet in het document staan. Gebruik samenvattingen als hulpmiddel, niet als definitieve bron. Controleer bedragen, data, namen en juridische voorwaarden altijd in het origineel. ::: :::faq ### Welk model geeft de beste samenvattingen? Gemma 3 en Mistral Nemo zijn in 2026 sterke keuzes voor algemeen samenvatten, zeker voor Nederlandstalige teksten. Llama 3.1 8B blijft een prima alternatief en is breed beschikbaar. Test een paar modellen op jouw eigen documenttype, want de resultaten verschillen per soort tekst. ### Hoe lang duurt het samenvatten van een document? Op een moderne laptop met alleen een processor: ongeveer 1 tot 5 minuten voor een document van 10 pagina's. Met een GPU gaat het flink sneller. Kleinere modellen zoals `gemma3:4b` zijn sneller, maar leveren wat minder nauwkeurige samenvattingen. ### Kan ik samenvattingen automatisch laten genereren voor nieuwe documenten? Ja. Met een map-watcher zoals het Python-pakket `watchdog` start je het samenvatscript automatisch zodra er een nieuw bestand in een map verschijnt. ### Werkt dit ook voor andere talen dan Nederlands en Engels? Moderne modellen ondersteunen tientallen talen. Voor Nederlands, Frans, Duits en andere Europese talen zijn de resultaten doorgaans goed, vooral met meertalige modellen als Gemma 3 en Mistral Nemo. ### Hoeveel geheugen heb ik nodig? Reken voor een model van 7B tot 8B op ongeveer 8 GB werkgeheugen of VRAM. Een 12B-model zoals Mistral Nemo vraagt iets meer. Heb je weinig geheugen, kies dan een 4B-variant; die past makkelijk op een gewone laptop. ### Blijft mijn document echt privé? Ja. Ollama draait volledig lokaal, dus je tekst verlaat je computer niet en er gaat niets naar een externe dienst. Dat is juist de reden om lokaal samen te vatten bij gevoelige documenten. :::