Document-chat met lokale AI
"Chatten met documenten" betekent dat je een AI kunt ondervragen over de inhoud van jouw specifieke bestanden. De AI verwijst niet naar haar trainingsdata maar naar de documenten die jij aanlevert. Lokale implementaties garanderen dat je gevoelige documenten niet naar externe servers stuurt: het model, de documenten en de chats blijven allemaal op je eigen machine.
Typische toepassingen:
- Juridische contracten doorzoeken en clausules opvragen
- Technische documentatie bevragen zonder zelf te bladeren
- Interne kennisbanken doorzoekbaar maken
- Jaarverslagen en rapporten samenvatten en analyseren
Document-chat werkt via RAG (Retrieval-Augmented Generation). Documenten worden opgesplitst in stukken (chunks), omgezet naar embeddings (wiskundige representaties van betekenis) en opgeslagen in een vectordatabase. Bij een vraag worden de meest relevante chunks opgehaald en samen met je vraag aan het taalmodel meegegeven. Het model formuleert dan een antwoord op basis van die gevonden passages.
Optie 1: Open WebUI
Open WebUI is een zelf-gehoste webinterface voor Ollama die ook document-upload en een aparte kennisbank ondersteunt. Sinds 2025 heeft het een volwaardige Knowledge-functie waarmee je documenten centraal beheert in plaats van ze per gesprek te uploaden.
Installatie via Docker
docker run -d \
-p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
Open daarna http://localhost:3000 in je browser en maak een (lokaal) account aan.
Een kennisbank aanmaken in Open WebUI
Documenten toevoegen aan een kennisbank
- Ga naar Workspace en open het tabblad Knowledge.
- Klik op Create a Knowledge Base en geef die een naam, bijvoorbeeld "Contracten Q2".
- Upload losse bestanden of een hele map. Ondersteund zijn onder andere PDF, TXT, DOCX, HTML, CSV en XLSX.
- Start een nieuw gesprek en typ
#om je kennisbank als bron te koppelen. - Stel je vraag. Open WebUI toont onder het antwoord welke passages als bron zijn gebruikt.
Wil je snel iets vragen over één bestand? Dan kun je in de chat ook gewoon op het paperclip-icoon klikken of een bestand naar de invoer slepen, zonder eerst een kennisbank te maken.
Kies bewust je embedding-model
In Admin Panel, Settings, Documents stel je het embedding-model in. Voor Nederlandstalige documenten levert een meertalig model zoals bge-m3 vaak betere zoekresultaten dan een Engelstalig standaardmodel.
Optie 2: AnythingLLM
AnythingLLM is een uitgebreidere desktop-applicatie met sterke document-management functies: werkruimtes per project, persistente kennisbases en veel configuratieopties. Het draait volledig lokaal en vereist geen account.
Installatie
Download de installatiebestanden voor macOS, Windows of Linux van de officiële site: anythingllm.com/desktop. De broncode staat op github.com/Mintplex-Labs/anything-llm.
Werkruimte aanmaken en documenten laden
Een werkruimte vullen met documenten
- Open AnythingLLM en klik op New Workspace.
- Geef de werkruimte een naam, bijvoorbeeld "Contracten Q2".
- Klik op het document-icoon en upload je bestanden.
- Selecteer de bestanden en klik op Save and Embed om de embeddings te genereren.
- Stel je vraag in de chatinterface van die werkruimte.
Koppeling met Ollama
In de AnythingLLM-instellingen kies je Ollama als LLM-provider. Vul daarbij in:
| Instelling | Waarde |
|---|---|
| LLM Provider | Ollama |
| Ollama Base URL | http://localhost:11434 |
| Chatmodel | llama3.1:8b, qwen2.5:7b of mistral:7b |
| Embedding model | nomic-embed-text of bge-m3 |
Kies voor het chatmodel er een met goede redeneer- en instructiecapaciteiten. Voor complexe technische, juridische of financiële documenten presteert een groter model zoals qwen2.5:14b doorgaans merkbaar beter.
Embedding-modellen installeren
Voor goede document-chat heb je naast je chatmodel een apart embedding-model nodig. Haal er een op via Ollama:
ollama pull nomic-embed-text
ollama pull bge-m3
Embedding-modellen zijn klein (ongeveer 50 MB tot enkele honderden MB) en zetten tekst om naar vectorrepresentaties. Ze worden niet gebruikt voor het schrijven van antwoorden, maar alleen om de relevante tekstdelen terug te vinden. nomic-embed-text draait prima op een CPU; bge-m3 is sterker voor meertalige (en dus Nederlandstalige) documenten.
Tips voor betere resultaten
Documentkwaliteit
- Gebruik tekst-PDF's, geen gescande PDF's zonder OCR. Een scan zonder herkende tekst levert lege embeddings op.
- Verwijder onnodige paginanummers en kopteksten als ze de lopende tekst onderbreken.
- Splits zeer grote documenten in logische secties voor betere chunking.
Vragen stellen
- Stel specifieke vragen in plaats van brede vragen.
- Vraag om bronvermelding, bijvoorbeeld: "Citeer de exacte passage waarop je dit antwoord baseert."
- Gebruik follow-up vragen om dieper op een antwoord in te gaan.
Controleer altijd de bronnen
RAG vermindert verzinsels, maar sluit ze niet volledig uit. Zowel Open WebUI als AnythingLLM tonen welke documentsecties als bron zijn gebruikt. Controleer die verwijzingen altijd bij kritieke of juridische informatie voordat je op een antwoord vertrouwt.
Welk taalmodel is het beste voor document-chat?
Modellen met sterk begrip van instructies presteren het best, zoals Llama 3.1, Qwen2.5 en Mistral. Voor Nederlandstalige documenten zijn modellen die op meertalige data zijn getraind in het voordeel. Voor zware, technische documenten loont een groter model zoals qwen2.5:14b.
Kan ik ook websites als bron toevoegen?
Ja. Zowel AnythingLLM als Open WebUI ondersteunen URL's als bron. De tool haalt de tekst van de webpagina op en verwerkt die net als een document.
Hoe groot mogen documenten zijn?
De praktische limiet hangt af van je hardware. Grotere documenten worden in meer chunks opgesplitst, wat meer opslag en langere embeddingtijd kost. De meeste tools werken vlot met documenten tot ongeveer 50 a 100 pagina's, en met meerdere documenten samen aanzienlijk meer.
Zijn de embeddings permanent opgeslagen?
Ja. Embeddings worden lokaal opgeslagen in een vectordatabase. Je hoeft documenten niet opnieuw te embedden bij een nieuwe sessie; alleen nieuwe of gewijzigde bestanden moeten opnieuw verwerkt worden.
Kan ik meerdere documenten tegelijk bevragen?
Ja. Door meerdere documenten in dezelfde werkruimte of kennisbank te laden, zoekt de AI over alles tegelijk. Je kunt zo ook vragen stellen die documenten met elkaar vergelijken.
Gaat er echt geen data naar buiten?
Bij een volledig lokale opstelling (Ollama plus Open WebUI of AnythingLLM) blijven je documenten, embeddings en chats op je eigen machine. Let er wel op dat je geen externe LLM-provider (zoals een cloud-API) instelt, want dan stuur je je vragen en context alsnog naar buiten.