ID.nl logo
Programmeren in Python met ChatGPT - Deel 1
© Generative ART - stock.adobe.com
Huis

Programmeren in Python met ChatGPT - Deel 1

ChatGPT is een handige tool van OpenAI waaraan je allerlei vragen kunt stellen. Maar het is ook mogelijk om de slimme chatbot in je eigen programma’s in te zetten. In deze nieuwe reeks leren we je hoe je ChatGPT in Python gebruikt en zo teksten samenvat, informatie uit teksten haalt, teksten vertaalt of een eigen chatbot creëert.

In dit eerste deel zetten we alles op om ChatGPT in Python te kunnen gebruiken en zetten we de eerste stappen:

  • Eerst installeren we Python en Visual Studio Code
  • Dan regelen we de API-toegang
  • En dan gaan we aan de slag met onze eerste prompts

Lees ook: Haal betere resultaten uit ChatGPT met slimme prompts

ChatGPT is een chatbot met uitgebreide mogelijkheden. Je geeft instructies in een tekstvenster en krijgt een antwoord terug. Je kunt zelfs een hele conversatie voeren en extra vragen stellen. De tool is ontwikkeld door OpenAI en getraind op een grote dataset van teksten.

De dienst is gratis uit te proberen, maar je moet er wel voor aanmelden. Bezoek hiervoor de OpenAI-website en klik op Sign up. Voer een e-mailadres en een wachtwoord in, of meld je aan met een bestaand account bij Google, Microsoft of Apple. OpenAI stuurt een e-mail naar je opgegeven adres; klik op de link om je e-mailadres te bevestigen. Daarna vul je je naam en een mobiel telefoonnummer in. OpenAI stuurt een zescijferige code via sms naar je telefoon, die je op de website invoert om je account aan te maken.

Je bent nu aangemeld op de website, die vanaf nu ook te openen is via de pagina https://chat.openai.com. Je krijgt enkele voorbeelden te zien van vragen die je kunt stellen en een overzicht van de mogelijkheden en beperkingen. In het tekstveld onderaan begin je een conversatie met ChatGPT. Maar daarover gaat deze workshop niet, want we gaan die conversaties in onze eigen software integreren. Dat kan met hetzelfde account die je voor de website hebt aangemaakt.

Op de website van ChatGPT voer je eenvoudig conversaties met de chatbot.

Python installeren

In deze reeks van vijf workshops gaan we de mogelijkheden van ChatGPT gebruiken in onze eigen programma’s, die we schrijven in de programmeertaal Python. In macOS en Linux is Python al standaard geïnstalleerd. In Windows ga je naar de downloadpagina van Python en installeer je de nieuwste Python-versie.

Start het gedownloade installatieprogramma. In het installatievenster vink je Add python.exe to PATH aan. De optie Use admin privileges when installing py.exe staat standaard ook aangevinkt. Als dat niet hoeft, omdat je alleen met je huidige gebruikersaccount Python wilt gebruiken, zet dit dan gerust uit. Klik daarna bovenaan op Install Now. Klik in de laatste stap op Close. Na de installatie open je de Opdrachtprompt en typ je het volgende in om te testen of Windows de Python-opdracht herkent:

python --version

Je zou nu het versienummer van de geïnstalleerde Python te zien moeten krijgen.

Installeer Python en voeg python.exe aan je pad toe.

Visual Studio Code

Om je programma’s te schrijven heb je een code-editor nodig. In deze workshop gebruiken we Visual Studio Code, een gratis en uitbreidbare code-editor van Microsoft die zowel op Windows, macOS als Linux draait. Klik links op de website op de blauwe knop Download for Windows - Stable Build. Wanneer de download is voltooid, voer je het installatieprogramma uit. Je kunt in de eerste stap een taal kiezen, maar helaas geen Nederlands. Accepteer de licentieovereenkomst en vink eventueel optionele acties aan.

Nadat je Visual Studio Code geopend hebt, klik je in de linkerzijbalk op het icoontje met de blokjes of je drukt op Ctrl+Shift+X om de Extensions Marketplace te openen. Installeer daar de uitbreiding Python van Microsoft. Deze zal je helpen met het schrijven van Python-code en maakt gebruik van de Python-installatie uit de vorige stap om je code uit te voeren.

Installeer de Python-uitbreiding in Visual Studio Code.

API-toegang

Om nu vanuit onze eigen Python-code toegang tot ChatGPT te krijgen, moeten we eerst een API-sleutel aanvragen. API staat voor Application Programming Interface en is een set afspraken waarmee ons programma de diensten van OpenAI kan gebruiken. Elke keer dat we ChatGPT willen gebruiken in ons programma, moeten we die sleutel meegeven.

Meld je met je OpenAI-account aan op https://platform.openai.com en klik rechts bovenaan op je profiel. In het menu dat verschijnt, klik je op View API keys. Klik dan op Create new secret key, vul een naam in voor je sleutel en klik op Create secret key. Je krijgt dan je sleutel te zien, een lange reeks tekens.

Kopieer de sleutel en gebruik hem in de volgende paragraaf van deze workshop. Let op: nadat je op Done hebt geklikt, krijg je de sleutel nooit meer te zien; ben je de sleutel kwijt, dan moet je een nieuwe aanmaken.

Nieuwe accounts krijgen een klein bedrag gratis voor gebruik van de OpenAI-API. Nadien moet je in Billing betaalgegevens invullen.

Maak een API-sleutel aan bij OpenAI.

Python-code

Klik nu in Visual Studio Code op File / New File… / Python File. Plaats hierin de volgende Python-code:

Klik op de afbeelding voor een grotere weergave.

Met import openai importeren we de Python-module die OpenAI aanbiedt om de API te gebruiken. Tussen de aanhalingstekens na API_KEY plak je je eigen API-sleutel. DEFAULT_MODEL verwijst naar het taalmodel dat we willen gebruiken. Zie het kader ‘GPT-4’ als je het nieuwere taalmodel van ChatGPT wilt gebruiken.

Daarna maken we een hulpfunctie om gemakkelijker met de OpenAI-API te werken. Aan die functie geven we een prompt door (dat is de vraag die je stelt) en een optioneel model. De functie creëert dan een completion en haalt hieruit het resultaat. Op die manier kunnen we eenvoudig een prompt aan de functie doorgeven en het resultaat met print op de opdrachtregel tonen, zoals je in de laatste drie regels van dit Python-script ziet.

GPT-4 In deze workshopreeks maken we gebruik van GPT-3.5, het taalmodel dat ChatGPT standaard aanbiedt. Er is nog een betere versie, GPT-4. Op de website van ChatGPT krijg je hier toegang tot wanneer je een ChatGPT Plus-abonnement hebt (dat kost ca. 23 euro per maand), zij het met een beperking op het aantal boodschappen per uur.

Maar dat account staat los van de toegang tot GPT-4 via de OpenAI-API. Hiervoor moet je je inschrijven op een wachtlijst. Wanneer je toegelaten bent, kun je in de OpenAI-API GPT-4 gebruiken door in je Python-code het model gpt-3.5-turbo te vervangen door gpt-4.

Let op: het gebruik van GPT-4 kost je een factor tien meer dan dat van GPT-3.5. Bekijk zeker de pagina met prijzen van OpenAI en bezoek regelmatig de pagina Usage in je OpenAI-profiel. Voor de zekerheid kun je ook een gebruikslimiet instellen.

Stel in voor hoeveel geld per maand je de API kunt gebruiken.

Eerste API-gebruik

Sla het codebestand uit de vorige paragraaf in Visual Studio Code op met Ctrl+S en geef het een naam. Klik dan op Terminal / New Terminal, waarna er onder je code een nieuw deelvenster opent met een opdrachtprompt. Typ hierin de volgende opdracht om de OpenAI-module voor Python te installeren:

pip install openai

Klik na de installatie rechts bovenaan op het afspeelknopje (het driehoekje met als je er met je muis boven blijft hangen de tooltip Run Python File). Als alles goed gaat, krijg je nu in de terminal een antwoord op de vraag die je in de variabele prompt in je code hebt gezet.

Onze eerste Python-code die van ChatGPT gebruikmaakt.

Tokens

Een belangrijk concept bij gebruik van de OpenAI-API zijn tokens. Een token is een vaak voorkomende opeenvolging van tekens, zoals letters, cijfers of leestekens. Hier kun je zelf zien uit welke tokens een ingevoerde tekst bestaat.

Het taalmodel produceert token na token, gebaseerd op de kans dat ze na de vorige tokens komen. Een token kan een volledig woord of een deel van een woord zijn. Voor Engelse tekst komen 100 tokens ruwweg met 75 woorden overeen. Standaard genereert ChatGPT en dus ook ons Python-script een antwoord met zoveel tokens als er nodig zijn, maar je kunt dit inperken door de parameter max_tokens toe te voegen. De aanroep van openai.ChatCompletion.create ziet er dan als volgt uit:

Dat aantal tokens is belangrijk, omdat je voor het gebruik van OpenAI-API betaalt per token. Voor veelvuldig geautomatiseerd gebruik van de API kan het dus de moeite zijn om een maximum aantal tokens in te stellen. Overigens levert dit wel vaak een antwoord op dat bruusk afgebroken is.

Heel wat woorden worden gecodeerd als één token. Andere bestaan uit meerdere tokens.

Parameters

Als je het Python-script uitvoert, zul je merken dat het altijd hetzelfde antwoord geeft. Dat is omdat we de parameter temperature de waarde 0 gegeven hebben. Je kunt deze parameter een waarde van 0 tot 2 geven, waarbij 0 betekent dat het antwoord elke keer hetzelfde is en hogere waardes een willekeuriger antwoord opleveren. Als je de waarde niet instelt, staat ze op 1, wat redelijk wat variatie tot gevolg geeft. Probeer het effect van de parameter maar eens uit door de parameter temperature in je code enkele andere waarden te geven en je script meerdere keren uit te voeren.

Twee andere parameters (die we hier niet hebben gebruikt) zijn presence_penalty en frequency_penalty. Beide hebben een standaardwaarde 0 en kunnen variëren van -2 tot 2. Met een positieve presence_penalty verlaag je de kans dat al gebruikte tokens nog eens in de tekst voorkomen. Dat verhoogt de kans dat het model over nieuwe onderwerpen begint. Met een positieve frequency_penalty wordt de kans dat een token gebruikt wordt verlaagd naarmate hij al vaker is gebruikt. Dat verlaagt dus concreet de kans dat het model een zin letterlijk herhaalt.

In de praktijk pas je deze twee parameters niet zo vaak aan. Ze zijn wel nuttig als je merkt dat het model voor specifieke vragen wat repetitieve antwoorden geeft. Probeer dan beide parameters eens op een waarde tussen 0,1 en 1 te zetten om die herhaling wat te verminderen.

Met temperatuur 1 geeft ons Python-script altijd een iets verschillend antwoord op dezelfde vraag.

Maak je prompts specifieker

Net zoals bij het gebruik van ChatGPT op de website zijn de resultaten bij het gebruik van de API bruikbaarder wanneer je je prompts zo specifiek mogelijk maakt. Een eerste tip is dat je gewoon aangeeft hoe lang de tekst moet zijn. Bijvoorbeeld met de volgende prompt:

prompt = "Beschrijf het magazine Computer Idee in maximum 50 woorden"

Dat geeft doorgaans een beter resultaat dan de parameter max_tokens, omdat de tekst dan tenminste niet bruusk wordt afgekapt. Maar omdat het taalmodel geen woorden kan tellen en intern met tokens werkt, kan de opgegeven limiet weleens overschreden worden. Je moet dit dus altijd nog zelf testen als de opgegeven limiet belangrijk is. Toon bijvoorbeeld het aantal woorden in de uitvoer met de volgende regel op het einde van het Python-bestand:

print("Aantal woorden:", len(response.split(" ")))

Vraag om een specifiek format

Een andere manier om je prompts specifieker te maken, is dat je het taalmodel vraagt om zijn antwoord in een specifiek format te geven. Bijvoorbeeld met:

Klik op de afbeelding voor een grotere weergave.

Met de drie aanhalingstekens maken we een multi-line-string in Python aan, waardoor we eenvoudig een prompt over meerdere regels kunnen spreiden voor wat meer overzicht. En het antwoord van ons script is nu ook kernachtiger en duidelijker.

Vraag het taalmodel om zijn antwoord in een specifiek format te formuleren.

Vermijd hallucinaties

Taalmodellen hebben de neiging om antwoorden te verzinnen als ze kennis missen over je vraag. Stel je bijvoorbeeld de vraag om het magazine Computer Power te beschrijven (dat niet bestaat!), dan verzint ons script een Belgisch tijdschrift met die naam. Deze neiging noemen we ‘hallucinaties’ en je moet hier altijd beducht op zijn, ook bij het gebruik van ChatGPT op de website.

Je kunt die neiging wel wat afzwakken door in je prompt expliciet te zeggen wat het taalmodel moet doen als het niet voldoende informatie heeft:

prompt = "Beschrijf het magazine Computer Power in maximum 50 woorden. Als je niets over het magazine weet, zeg dit dan."

Daarop antwoordt ons script dat het dit magazine niet kent, maar dat het waarschijnlijk over computers en technologie gaat.

Meer informatie

Wil je meer weten over het gebruik van de OpenAI-API, lees dan de ‘API reference’ op de website van OpenAI, en dan specifiek die van ChatCompletion. Hier vind je meer informatie over de verschillende parameters.

En wil je meer leren over hoe je het meeste uit de taalmodellen haalt met de juiste prompts, bekijk dan zeker het webinar ChatGPT Prompt Engineering for Developers van DeepLearning.AI, dat we hebben geraadpleegd bij het schrijven van deze workshopreeks.

De OpenAI-API is uitgebreid gedocumenteerd, inclusief voorbeelden van het gebruik in Python en Node.js.

Andere programmeertalen In deze workshopreeks gaan we aan de slag met de OpenAI-API in Python, maar OpenAI biedt naast zijn Python-module ook een officiële bibliotheek voor Node.js (JavaScript) aan op de pakketbeheerder npm. Die is vergelijkbaar met de Python-module die we in dit artikel introduceren. Dus als je liever in JavaScript programmeert, zou je deze workshopreeks met wat kleine aanpassingen ook moeten kunnen volgen.

Daarnaast zijn er ook allerlei bibliotheken voor andere talen ontwikkeld door derden. Dus als je graag in C# programmeert, in Java of in Swift, kun je zeker ook gebruikmaken van de OpenAI-API. In de documentatie van OpenAI staat een lijst van bibliotheken die de API gebruiken.

Volgende week maandag het tweede deel van deze reeks! We gaan hierin de kennis uit dit eerste deel toepassen om teksten te laten samenvatten door een taalmodel.

Vervolg: Deel 2: Programmeren in Python met ChatGPT

▼ Volgende artikel
Waar voor je geld: 5 fonduesets voor een gezellige avond
© M.studio - stock.adobe.com
Huis

Waar voor je geld: 5 fonduesets voor een gezellige avond

Bij ID.nl zijn we gek op producten waar je niet de hoofdprijs voor betaalt. Daarom gaan we een paar keer per week voor je op zoek naar zulke aanbiedingen. Met Kerst en Oud en Nieuw voor de deur is het weer tijd om te bedenken wat je wil gaan eten. Wat dacht je van fondueen? Met deze vijf fonduesets maak je indruk op je vrienden en familie.

Met een fondueset smelt je de lekkerste kazen en dep je je broodje of vlees in bouillon of kaas. Fonduesets zijn de ultieme sfeermakers voor de feestdagen, of het nu met vrienden is of familie en of je kiest voor romige kaas, bouillon of chocolade; het is op en top genieten. Een absolute must-have voor elke levensgenieter en perfect voor de feestdagen. Wij vonden vijf betaalbare fonduesets voor je.

Boska Elektrische Fondueset Pro - 8 personen

De Boska Elektrische Fondueset Pro is ontworpen voor liefhebbers van kaas‑ en vleesfondue. De set bestaat uit een geëmailleerde gietijzeren pot met een inhoud van circa 2,15 liter, waardoor je genoeg ruimte hebt voor een volledige kaasfondue of bouillon. Het verwarmingselement is elektrisch en beschikt over een instelbare thermostaat; hierdoor kun je de temperatuur naar wens aanpassen voor verschillende soorten fondue. Een handig indicatielampje laat zien wanneer het element aan staat. De pot staat op een stevige basis en heeft een extra lang snoer van twee meter, zodat je hem makkelijk midden op tafel plaatst. Bij de set worden acht fonduevorken geleverd die zijn voorzien van gekleurde markeringen. De combinatie van gietijzer en emaille zorgt voor een gelijkmatige warmteverdeling en eenvoudige reiniging.

Swissmar Lausanne 11‑delige fondueset - 6 personen

De Zwitserse fabrikant Swissmar levert met de Lausanne een 11‑delige fondueset die is gericht op traditioneel fonduen. De set bestaat uit een koperen pan met een geëmailleerde binnenkant en een zware RVS‑branderschaal. Doordat koper de warmte snel opneemt en verdeelt, is de fondue snel op temperatuur. De pan staat op een robuuste stalen houder waarin een brander met regelaar zit; hiermee pas je de vlamsterkte aan voor kaas‑, bouillon‑ of chocoladefondue. In de doos zitten verschillende accessoires, waaronder zes vorkjes en een branderschaal. Deze set is niet elektrisch, waardoor je hem zelfs buiten of op de camping kunt gebruiken.

Mäser Fondueset - 4 personen

De fondueset van Mäser bestaat uit een roestvrijstalen pan met bijbehorende brander. Roestvrij staal is slijtvast en eenvoudig te reinigen; je kunt de pan na gebruik in de vaatwasser zetten. De set heeft een inhoud van rond één liter, voldoende voor een kaas‑ of chocoladefondue voor een klein gezelschap. Er worden meerdere fonduevorkjes meegeleverd met gekleurde puntjes om ze te onderscheiden. Dankzij de stevige basis staat de pan stabiel op tafel, terwijl de gelijkmatige warmteverdeling voorkomt dat de inhoud aanbrandt. Omdat het geen elektrisch toestel is, gebruik je de brander met brandgel of spiritus.

Baumalu 385050 fondueset - 6 personen

Deze fondueset van Baumalu bestaat uit een zware gietijzeren pan die op een decoratieve houten plaat staat. Gietijzer houdt de warmte goed vast en is geschikt voor zowel kaas‑ als chocoladefondue. De bijgeleverde brander plaats je onder de pan; je regelt de vlamsterkte met een draaiknop. Omdat de pot stevig op de houten plaat staat, blijft hij stabiel en kras je niet op de tafel. In de set zitten fonduevorkjes met houten handvatten.

Tristar FO‑1107 Fonduepan - 8 personen

De Tristar FO‑1107 is een elektrische fondueset met een inhoud van ongeveer 1,5 liter. Je gebruikt deze pan voor verschillende soorten fondue, zoals kaas, bouillon of chocolade. Het verwarmingselement levert circa 1000 watt en heeft een instelbare thermostaat, zodat je de temperatuur kunt aanpassen aan het type fondue. Een indicatielampje geeft aan wanneer het apparaat actief is. De pan heeft een antiaanbaklaag, een cool‑touch handgreep en staat op een antislipvoet voor extra stabiliteit. Er worden acht fonduevorkjes meegeleverd en door de ring bovenop blijven de vorkjes op hun plek tijdens het fonduen.

▼ Volgende artikel
Van papier tot pixels: altijd je administratie op orde
© px.palette
Huis

Van papier tot pixels: altijd je administratie op orde

Papieren facturen, garantiebonnetjes, contracten en andere documenten slingeren al snel overal rond. Waarom niet alles digitaal bewaren, zodat je het in enkele klikken terugvindt? In dit artikel vind je gratis tools en praktische tips om je administratie te scannen, te taggen, doorzoekbaar te maken en veilig op te slaan zonder veel gedoe.

Wat gaan we doen?

We geven diverse tips en tools om administratieve en andere papieren documenten efficiënt en ordelijk te digitaliseren. Dat gaat van scannen en OCR’en tot organiseren, automatiseren, back-uppen en meer.

Tip 1: Scanner

Stel, je wilt een hele reeks documenten digitaliseren, zoals garantiebewijzen of facturen. We gaan ervan uit dat je een scanner in huis hebt, eventueel als onderdeel van een all-in-one-printer. Zo’n toestel is goed geschikt voor stabiele, rechte scans, en een (soms optionele) documentinvoer maakt het extra handig bij grotere aantallen. Je scant het best op zo’n 300 dpi, in grijswaarden of kleur, en bewaart het resultaat bij voorkeur als pdf. Helaas genereert de meegeleverde scansoftware vaak alleen pdf’s met een afbeelding van de tekst, waardoor je die later niet kunt doorzoeken of kopiëren.

©OttoPles

Er bestaan ook heel wat printers met een ingebouwde scanner.

Tip 2: NAPS2

Gebruik in dit geval beter scansoftware met geïntegreerde OCR, zoals het gratis en opensource NAPS2 (www.naps2.com, Windows, macOS en Linux). Start de app, klik op Nieuw profiel en op Apparaat kiezen om je scanner te selecteren. Je kunt kiezen uit drie drivertypes: WIA (ingebouwd in Windows, beperkt), TWAIN (krachtiger) en ESCL (voor moderne netwerk- of wifi-scanners, vergelijkbaar met Apple AirScan). Doorgaans kies je voor TWAIN. Stel de scanopties in en open Geavanceerd voor extra instellingen. Typ een profielnaam en bevestig met OK.

Klik nu op de knop OCR en download de gewenste talen, zoals Dutch en English. Plaats een vinkje bij PDFs doorzoekbaar maken middels OCR en kies taal en modus (Snel of Beste). Vink ook de andere opties aan en druk op Scannen.

Klik daarna op het pijlknopje bij PDF opslaan en kies PDF-instellingen. Vul bij Standaard bestandspad een bestandsnaam in – gebruik eventueel ‘placeholders’ als $(YY)-$(MM)-$(DD) – en kies bij Compatibiliteit bij voorkeur PDF/A, zoals PDF/A-2b. Dit formaat slaat namelijk alle lettertypes, kleurprofielen en structuurinformatie in het bestand zelf op, wat ‘garandeert’ dat je het document ook jaren later nog in zijn oorspronkelijke vorm te zien krijgt. Vink Onthoud deze instellingen aan, klik op OK, selecteer de scans en kies PDF opslaan. Het is trouwens ook mogelijk om een (niet-doorzoekbaar) pdf-bestand in NAPS2 te importeren, dit vervolgens te OCR’en en als PDF/A te bewaren.

NAPS2 is prima opensource-scansoftware, met geïntegreerde meertalige OCR-module.

Pdf-printer

De focus van dit artikel ligt op papieren brondocumenten, maar we willen zeker ook (de gratis versie van) PDFCreator vermelden (www.pdfforge.org/pdfcreator). Je kunt deze namelijk als virtuele printer installeren om zo allerlei documenttypen om te zetten naar PDF(/A).

Start na installatie de app, open het tabblad Printer, vink PDFCreator aan en kies via de moersleutel het bestaande profiel PDF/A (archiefbestand). Bevestig met Opslaan en sluit de app. Open nu een document in een willekeurige toepassing, open het afdrukvenster en selecteer PDFCreator als printer. Een dialoogvenster opent waarin je het document meteen kunt opslaan als PDF/A-bestand (standaardversie 2b, maar dit is aanpasbaar via het uitklapmenu).

Je kunt zo’n virtuele printer ook inzetten om documenten automatisch als PDF/A op te slaan in een zelf te bepalen map. Maak hiervoor in PDFCreator op het tabblad Profielen een nieuw profiel aan (bijvoorbeeld PDF/A in map Facturen), kies bijvoorbeeld PDF/A-2b als formaat en geef tevens een specifieke opslaglocatie op. Koppel dit profiel op het tabblad Printer aan een nieuwe virtuele printer (bijvoorbeeld PDF/A-facturen). Zo maak je meerdere profielen en printers aan, waarbij elk PDF/A-bestand automatisch in een andere map terechtkomt.

Je kunt ook meerdere virtuele printers aanmaken, telkens met een aangepast profiel.

Tip 3: Mobiel

Een vlakbedscanner is zeker handig, maar niet noodzakelijk, want je kunt tegenwoordig ook prima scannen met je smartphone. Met de juiste app wordt het beeld automatisch ge-OCR’d en indien nodig rechtgetrokken. Een van de betere apps is Adobe Scan, beschikbaar via www.kwikr.nl/adobescan of in de appstore van Android en iOS.

Installeer en start de app. De gratis versie volstaat meestal, al laat de betaalde versie (circa 10 euro per maand) je onder meer tot 100 pagina’s per bestand scannen (in plaats van 25) en pdf’s exporteren naar Office 365-formaten.

Meld je aan, bijvoorbeeld via je Google-account, en tik op Scan. Je kunt het resultaat onder meer uitsnijden, roteren en de helderheid en het contrast aanpassen. Kies Blijven scannen voor extra pagina’s of tik op PDF opslaan zodra je klaar bent. De pdf belandt standaard in je Adobe-account (https://acrobat.adobe.com), maar je kunt het bestand ook delen of (via Meer) bijvoorbeeld opslaan in Google Drive. Het pdf-bestand is standaard doorzoekbaar, controleer bij Voorkeuren of Tekstherkenning uitvoeren op opgeslagen PDF wel is ingeschakeld, maar het is geen PDF/A. Wil je dat, dan kun je het bestand alsnog omzetten met reeds eerder vermelde, gratis tools als NAPS2 of PDFCreator (zie ook kader ‘Pdf-printer’).

Met (het gratis) Adobe Scan kun je ook meerdere pagina’s laten OCR’en en in één pdf bewaren.

Tip 4: Tags koppelen

Om naderhand snel het gewenste document te kunnen terugvinden, zorg je er dus allereerst voor dat je documenten doorzoekbaar zijn (bij pdf’s kan dit via OCR: zie tip 2). Je kunt gerust ook zelf extra trefwoorden, zeg maar digitale kleefbriefjes, aan je documenten koppelen.

Met een tool als TagSpaces (www.tagspaces.org, Windows, macOS en Linux) tag je in één keer meerdere bestanden en mappen met eigen trefwoorden. Bestaande tags voeg je simpelweg toe door ze naar bestanden te slepen. TagSpaces heeft ook een krachtige zoekfunctie waarmee je snel documenten met de juiste tag(s) terugvindt.

Handig zijn ook ‘smart tags’: je bepaalt dan zelf de criteria, waarna nieuwe bestanden automatisch de juiste tags krijgen. Deze tags kun je opslaan in aparte sidecar-bestanden (JSON) of je voegt ze achteraan de bestandsnaam toe: een bestand als aanpassing.pdf bijvoorbeeld wordt dan iets als aanpassing[huur indexering].pdf. De betaalde Pro-versie (42 euro per jaar) heeft enkele geavanceerde opties, zoals het toekennen van tags op basis van lokale AI-taalmodellen.

TagSpaces is een krachtige taggingtool, maar met een zekere leercurve.

Tip 5: Tags zoeken

Vind je TagSpaces toch wat overkill, dan zijn er andere manieren om documenten van (doorzoekbare) trefwoorden te voorzien. Je kunt in Verkenner (met sneltoets F2) trefwoorden toevoegen aan de bestandsnaam, maar het kan ook anders. Klik met rechts op een bestand of selectie, kies Eigenschappen en open het tabblad Details. Afhankelijk van het bestandstype kun je hier tags toevoegen bij velden als Titel, Onderwerp, Labels, Categorieën en Opmerkingen. Dit werkt goed bij bijvoorbeeld Office-bestanden en afbeeldingen, maar pdf-documenten laten zich minder makkelijk taggen. Dit kan bijvoorbeeld wel bij het aanmaken van zo’n document vanuit NAPS2 of PDFCreator. Bij deze laatste kun je bij een profiel titel, auteur, onderwerp en trefwoorden meegeven.

Vanuit de Verkenner kun je vervolgens zoeken op deze tags, ook in pdf-bestanden (ook al zijn ze niet zichtbaar op het tabblad Details). Navigeer naar de juiste map of het station en typ in de zoekbalk van de Verkenner labels:<trefwoord>.

Werkt dit niet, dan ontbreekt waarschijnlijk een geschikt zoekfilter. Je kunt zo’n Adobe-IFilter alsnog installeren via deze link. Je kunt dit controleren vanuit het Configuratiescherm: open Indexeringsopties, klik op Geavanceerd en scrol op het tabblad Bestandstypen naar pdf. Daar hoort PDF Filter (of eventueel Reader Search Handler) te staan, en Eigenschappen en inhoud van het bestand indexeren moet zijn ingeschakeld. Zorg er tevens voor dat alle gewenste mappen zijn opgenomen bij Deze locaties beheren (via de knop Wijzigen).

Met het juiste filter kun je ook vanuit de Verkenner naar tags binnen pdf-documenten zoeken.

Tip 6: Opslagstructuur

Je documenten zijn nu doorzoekbaar en mogelijk ook getagd, maar er is nog een derde belangrijk aspect: bewaar alles met logische bestandsnamen in een doordachte mappenstructuur.

Voor bestandsnamen plaats je de belangrijkste info, zoals projectnaam en/of datum, liefst vooraan. Gebruik de ISO-notatie (JJJJ-MM-DD), zodat je bestanden makkelijk chronologisch sorteert. Zoals vermeld in tips 4 en 5 kun je de naam aanvullen met trefwoorden, gescheiden door een koppelteken of onderstrepingsteken (vermijd spaties of speciale tekens). Eventueel voeg je achteraan een versienummer toe, zoals _v1. Een voorbeeld is 2025-08-31_Huurcontract_Appartement_v1.pdf.

Breng de bestanden onder in een logische structuur, bijvoorbeeld op datum, per project of klant, of per categorie (zoals Huis, Werk, Gezondheid, Financieel enzovoort). Je zult merken: dankzij consistente map- en bestandsnamen vind je documenten sneller terug.

Sneller zoeken binnen een logische mappenstructuur (en met labels).

Tip 7: Organisatietool

Je hebt een logische mappenhiërarchie opgezet, maar je moet natuurlijk ook zorgen dat documenten in de juiste map terechtkomen. Externe hulp van een organisatietool als het gratis Dropit (www.dropitproject.com, werkt nog onder Windows 11) of File Juggler (www.filejuggler.com, betaalde versie 44 euro) kan daarbij handig zijn. We bekijken kort deze laatste.

Start de geïnstalleerde tool op en klik op Add rule (of eerst op Add rule group als je de regels wilt categoriseren). Stel dat je alle pdf’s die in de map \gedeeld terechtkomen automatisch wilt verplaatsen op basis van trefwoorden. Vul dan Description in en klik op de knop met drie puntjes bij Monitor om de bronmap te kiezen. Via het tandwielpictogram kun je eventueel Examine everything regularly <frequentie> between checks instellen, wat ook goed werkt voor gedeelde netwerkmappen.

Klik daarna op de plus-knop bij If en stel het filtercriterium in, bijvoorbeeld: Any of the following / Other / PDF Properties / Keywords. Bevestig met Insert en geef het trefwoord op bij Contains / Text. Je kunt via de plus-knop extra filters instellen en kiezen tussen Any of All of the following.

Leg nu de gewenste actie vast bij Then: klik op de plusknop, kies bijvoorbeeld Move file en vul de doelmap in bij to. Bewaar je filter met Save and close. Op het tabblad Rules klik je op de pijlknop naast je filter om het te activeren. Test het resultaat.

Organiseer je bestanden automatisch op basis van eigen, gecombineerde zoekfilters.

DMS

Met de tips rond doorzoekbaar maken, taggen en ordenen uit dit artikel, en met tools als TagSpaces en File Juggler, raak je al ver. Wil je je administratie nog professioneler organiseren, dan kom je uit bij een volwaardig Document Management System, kortweg DMS. Flexibele opensource-tools zijn bijvoorbeeld Papermerge en Paperless NGX. Beide installeer je het makkelijkst op Windows via Docker (Docker Desktop for Windows, met WSL2).

Na installatie bereik je het browserdashboard van de tool standaard via http://<ip-adres>:8000. Beide tools bieden OCR aan om gescande documenten doorzoekbaar te maken. Je documenten kunnen ook automatisch worden verwerkt op basis van eigen filters, en er zijn krachtige zoekopties ingebouwd. Beide tools kun je meteen uitproberen via een online demo (log in met demo / demo).

Een krachtig DMS als Paperless-ngx maakt het bijhouden van je administratie veel efficiënter.

Tip 8: Zoektool

Zoals gezegd laat de ingebouwde zoektool in Windows je met de juiste filters en instellingen ook zoeken naar metadata, zoals trefwoorden in pdf’s. Met zoekfilters en operatoren zijn zelfs complexe opdrachten mogelijk, zoals labels:factuur auteur:Toon van Daele grootte:>300kB gewijzigdop:dit jaar. Echt gebruiksvriendelijk of handig is deze functie helaas niet. Je bent dan beter af met een tool als Agent Ransack (alias Filelocator Pro, www.mythicsoft.com/agentransack). Ook de gratis Lite-versie ondersteunt netwerkshares, Booleaanse operatoren, reguliere expressies en zoeken naar metadata via IFilter.

Start de tool, zet deze op Expert en open het tabblad Hoofd. Vul bij Bevat tekst je zoekterm in en bij Zoek in het gewenste station of de map. Eventueel kun je ook filters instellen voor Grootte en Gewijzigd Na / Voor. Op het tabblad Datum voeg je extra tijdsfilters toe en op het tabblad Opties vink je zeker Office en PDF documenten aan. Vul je bij Bevat tekst een pdf-trefwoord in, dan vindt Agent Ransack ook de bijbehorende bestanden. In het tabblad Treffers (rechtsonder) zie je bij gevonden bestanden bijvoorbeeld Keywords: <gezocht_trefwoord>. Met een dubbelklik open je meteen het bestand.

Agent Ransack laat gecombineerde en krachtige filters toe en zoekt ook in metadata.

Tip 9: Back-ups

Je administratie digitaliseren is een goed idee, maar dit is pas veilig met een degelijke back-upstrategie. Het best hanteer je hier de 3-2-1-regel: drie datakopieën (hoofdversie en twee back-ups), op twee soorten media, waarvan minstens één kopie op een andere locatie. Zo bescherm je je data tegen hardwarestoringen, ransomware, brand en diefstal.

Een uitstekende gratis en opensource back-uptool is Duplicati (www.duplicati.com, Windows en macOS), die we zelf al jaren dagelijks geautomatiseerd gebruiken voor back-ups naar zowel een netwerkschijf (NAS) als de cloud (Google Drive).

Installeer het gedownloade msi-bestand. Klik na afloop met rechts op het programma-pictogram in het Windows-systeemvak en kies Open om het browserdashboard te starten. Verschijnt First Run Setup, klik dan op Yes en stel een wachtwoord in. Je kunt Duplicati in je browser openen via http://localhost:8200. Wil je ook toegang vanaf een andere pc in je netwerk, open Instellingen in Duplicati en vink Remote toegang toestaan aan, zodat het dashboard bereikbaar is via http://<intern_ip-adres>:8200. Klik vervolgens op +Back-up toevoegen, laat Een nieuwe back-up instellen geselecteerd en vul een naam in. Schakel bij opslag buiten je netwerk versleuteling in. Geef vervolgens doel- en bronlocatie op en bepaal wanneer en hoe vaak de back-up wordt uitgevoerd. Duplicati maakt standaard incrementele back-ups, waarbij alleen nieuwe of gewijzigde data worden opgeslagen, waardoor het back-upvolume beperkt blijft.

Duplicati is een betrouwbare, gebruiksvriendelijke en flexibele back-uptool.

Tip 10: Beveiliging

Een goede back-upstrategie is cruciaal om je data veilig te bewaren, maar veiligheid draait ook om privacy. De beste manier om te voorkomen dat onbevoegden inzage krijgen in je (medische, financiële …) gegevens is versleuteling. In tip 9 vermeldden we al dat je in Duplicati back-ups automatisch kunt versleutelen met sterke AES-256-encryptie. Maar ook de data op je originele opslaglocatie wil je wellicht beveiligen.

Hiervoor kun je een gratis opensource-tool als VeraCrypt gebruiken, die naast containerbestanden ook complete partities of schijven kan versleutelen met sterke algoritmen als AES-256. We hebben niet de ruimte hier verder op in te gaan, maar hier vind je meer uitleg. Ook handig is Cryptomator om via je lokale synchronisatiemap data te versleutelen bij cloudopslagdiensten als Google Drive, OneDrive of Dropbox. Je vindt hier meer uitleg daarover.

Daarnaast kun je voor diverse documenttypes ook individuele bestanden beveiligen met een wachtwoord, al is dit vaak minder robuust dan een volledig versleutelde opslaglocatie. Dit kan bijvoorbeeld vanuit verschillende Office-applicaties, maar ook met pdf-tools zoals NAPS2 (bij PDF-instellingen vink je PDF versleutelen aan) en PDFCreator (bij Profielen, via Actie toevoegen / Versleuteling).

Ook in NAPS2 kun je pdf-documenten met een wachtwoord beveiligen.