ID.nl logo
Programmeren in Python met ChatGPT - Deel 4
© Alexander Limbach
Huis

Programmeren in Python met ChatGPT - Deel 4

ChatGPT is niet alleen in staat om vragen te beantwoorden, teksten samen te vatten en tags aan teksten toe te kennen. Je kunt er ook teksten mee vertalen of naar andere vormen transformeren. In dit vierde deel van onze reeks over de OpenAI-API tonen we je hoe je dat doet in Python.

In dit vierde deel laten we zien dat ChatGPT prima teksten kan omzetten:

  • In een vertaling
  • In een gedicht
  • In een computertaal
  • Taalherkenning
  • Aanspreekvorm veranderen

Lees ook: Geen talenknobbel (meer)? Deze (ver)taaltools helpen je uit de brand

Code downloaden In dit deel worden wat voorbeelden van stukken code gegeven. Omdat overtikken van code erg foutgevoelig is, kun je die code beter downloaden en daarna bekijken of kopiëren. Het bestand, gptcode-dl4.txt is beschikbaar via deze webpagina.

Een groot taalmodel, zoals dat van ChatGPT, kun je eigenlijk beschouwen als een soort krachtige rekenmachine die niet met getallen werkt, maar met woorden. Daardoor kun je tekst omzetten in een ander soort tekst. Een tekst van het Engels naar het Nederlands vertalen? Van een familiaire naar een formele toon? Of, als je met programmeertalen werkt, van tekst naar een tabel in HTML? Het is allemaal mogelijk en vrij eenvoudig in je eigen programma’s te integreren.

Basiscode

In dit vierde deel van deze reeks houden we onze code eenvoudig, zodat we de variëteit van transformaties van teksten kunnen illustreren die met de OpenAI-API mogelijk zijn. We gaan dus geen Word-bestanden inlezen, maar de te transformeren teksten als korte strings in onze code zetten.

Voor alle voorbeelden in dit artikel gebruiken we daarom de volgende basiscode:

De code kun je bekijken in het bestand gptcode-dl4.txt, te downloaden via deze pagina.

Deze code gebruikten we ook al in het derde deel van deze reeks. Vervang de waarde van API_KEY door je eigen API-sleutel en kies eventueel een ander model dan gpt-3.5-turbo. Zo is het model gpt-4 taalkundig veel sterker, maar dat kost wel meer.

GPT-4 is taalkundig sterker dan GPT-3.5, maar wel een factor twintig duurder.

Vertaalmachine

Als we hiermee een tekst willen vertalen, hebben we een systeemprompt nodig met de vertaalopdracht en een gebruikersprompt met de te vertalen tekst. Dat doe je door de volgende regels code aan het einde van de basiscode toe te voegen:

De code kun je bekijken in het bestand gptcode-dl4.txt, te downloaden via deze pagina.

Sla het script onder de naam translate.py op in Visual Studio Code met Ctrl+S en open een opdrachtregel met het menu Terminal / New Terminal. Klik dan rechtsboven op het afspeelknopje (het driehoekje met de tooltip Run Python File als je erboven blijft hangen). Als alles goed gaat, krijg je nu in de terminal een Nederlandse vertaling van de Engelse tekst.

Dichterlijke vrijheid

Dat vertalen hoeft niet altijd heel letterlijk te zijn. Je kunt ook vragen om een haiku te maken die een tekst beschrijft:

De code kun je bekijken in het bestand gptcode-dl4.txt, te downloaden via deze pagina.

We hebben als gebruikersprompt gewoon de lead van een artikel van de website van NRC ingevoerd. Het taalmodel maakt daarvan de volgende haiku:

Wagnerstrijders gaan,

Onder de rook van Moskou,

Putsch nek omgedraaid.

Op deze manier zou je een programma kunnen schrijven dat je elke ochtend het nieuws in de vorm van haiku’s toont.

Universele vertaalmachine

De taalmodellen van OpenAI zijn getraind op teksten in allerlei talen en die talen worden zelfs automatisch herkend. Merk op dat we in de systeemprompt van ons vertaalscript niet vroegen om de tekst van het Engels naar het Nederlands te vertalen. We vroegen simpelweg om de tekst naar het Nederlands te vertalen. Dat had ook gewerkt als we een Franse tekst of een tekst in een andere taal hadden opgegeven als gebruikersprompt.

Taalbarrière?

Met een vertaalapparaat kom je er altijd uit

Die mogelijkheid om de taal te herkennen kunnen we ook gebruiken. We vragen dan eerst wat de taal is van de gegeven tekst en vragen dan pas om die te vertalen. We kunnen die laatste opdracht zelfs nog explicieter maken door te vragen om uit de herkende taal te vertalen. Dat ziet er dan als volgt uit, met enkele voorbeelden in verschillende talen:

De code kun je bekijken in het bestand gptcode-dl4.txt, te downloaden via deze pagina.

Zoals je ziet, zijn we in LANGUAGE_PROMPT vrij expliciet geweest. Als we gewoon vragen “What language is this?”, krijgen we antwoorden als “This is Chinese” of “This language is Italian”. Dat willen we niet. Ook een antwoord als “French.” met een punt op het einde willen we zo vermijden, maar zelfs na het expliciet te vragen blijft het taalmodel dit meestal met een punt eindigen. Daarom dat we met rstrip(".") dit nog verwijderen.

Sla een andere toon aan

Je kunt met taal allerlei registers bespelen. In een formele sollicitatiebrief sla je een andere toon aan dan in een appje naar je vrienden. Ook daarmee kunnen de taalmodellen van OpenAI aan de slag. Je kunt een tekst eenvoudig naar een andere toon omzetten. Een voorbeeld maakt dit duidelijk:

De code kun je bekijken in het bestand gptcode-dl4.txt, te downloaden via deze pagina.

Computertalen omzetten

Op dezelfde manier kunnen we computertalen vertalen. Maar een omzetting van bijvoorbeeld JSON naar HTML doe je beter met een Python-bibliotheek die daarin gespecialiseerd is. Waar taalmodellen wel goed in zijn, is het omzetten van een tekstuele beschrijving van een gebruiker naar een computertaal. Stel dat je in een programma bestellingen van een gebruiker opneemt, dan kun je het resultaat naar een tabel in HTML laten omzetten:

De code kun je bekijken in het bestand gptcode-dl4.txt, te downloaden via deze pagina.

Het resultaat is inderdaad een HTML-bestand met een tabel met de juiste gegevens.

Maak een HTML-tabel op basis van een tekst.

En verder

Teksten transformeren, in alle mogelijke vormen, is een krachtige functie waarvoor je ChatGPT en dus ook de achterliggende taalmodellen via de OpenAI-API kunt inzetten. Zo breid je eenvoudig je eigen programma’s uit met allerlei transformaties van teksten. We hebben hier nog maar een kleine greep van de mogelijkheden getoond. Titels beschrijven in emoji’s? Handleidingen naar gedichten omzetten? Tweeten in de stijl van Donald Trump? Het is zo gebeurd.

Volgende week maandag het vijfde en laatste deel van deze reeks! Hierin gaan we de OpenAI-API nog interactiever toepassen en echte gesprekken voeren.

Lees ook:

▼ Volgende artikel
Black Friday bij Keukenloods: kortingen op topkeuze inbouwapparatuur
Huis

Black Friday bij Keukenloods: kortingen op topkeuze inbouwapparatuur

Tijdens Black Friday pakt Keukenloods uit met hoge kortingen op populaire inbouwapparatuur van merken als Siemens en Bosch. Wij lichten hier vijf modellen uit die nu extra interessant zijn: stuk voor stuk slimme keuzes voor wie zijn keuken wil vernieuwen of uitbreiden.

Partnerbijdrage - in samenwerking met Keukenloods

Siemens ED851BS16E – kookplaat met geïntegreerde afzuiging

De Siemens ED851BS16E combineert koken en afzuigen in één strak oppervlak. De vier inductiezones zijn flexibel inzetbaar dankzij de combiZone, waarmee je twee zones kunt samenvoegen tot één groter kookvlak. Met de powerBoost-functie breng je water extra snel aan de kook, en de quickStart- en reStart-functies zorgen dat de kookplaat direct reageert of je instellingen behoudt als je hem kort uitzet. De ingebouwde afzuiging verwijdert kookdampen direct bij de bron: je hebt dus geen aparte afzuigkap meer nodig.

Siemens EX875LVB1E – inductiekookplaat met flexzones

De Siemens EX875LVB1E is een ruime inductiekookplaat met vijf kookzones die tegelijk gebruikt kunnen worden. De flexInductie-zone herkent automatisch het formaat van de pan en past het verwarmingsoppervlak daarop aan. Dankzij de dual lightSlider-bediening stel je elke zone met een vloeiende beweging nauwkeurig in, van sudderen tot aanbraden. De powerBoost-functie verhoogt het vermogen tot wel 50 procent, zodat je in korte tijd grote hoeveelheden water of gerechten kunt verhitten. De kookplaat beschikt over zeventien vermogensstanden, een warmhoudfunctie en een overkookbeveiliging, wat koken preciezer én veiliger maakt.

Siemens CM724G1B2 – combi-oven met magnetronfunctie

De Siemens CM724G1B2 is een compacte combi-oven met een inhoud van 45 liter en vijftien verwarmingssystemen, waaronder hetelucht, circulatiegrill en onder- en bovenwarmte. Dankzij de combinatie van oven- en magnetronfuncties bereid je gerechten in minder tijd, zonder dat ze hun structuur of smaak verliezen. Via HomeConnect bedien je hem op afstand, en met de oven-assistent gebruik je spraakcommando's om bijvoorbeeld de voorverwarming te starten. Het TFT-touchdisplay biedt een helder overzicht van programma's en temperaturen, terwijl de soft-close-deur en ledverlichting hem nóg gebruiksvriendelijker maken.

Siemens SN63HX36TN – volledig geïntegreerde vaatwasser

De Siemens SN63HX36TN is een volledig geïntegreerde vaatwasser met ruimte voor twaalf couverts en een geluidsniveau van slechts 46 dB. Het apparaat beschikt over zes programma's en vier speciale functies, waaronder VarioSpeed Plus om sneller te wassen en HomeConnect voor bediening via wifi. Dankzij de MachineCare-functie blijft de binnenruimte schoon en fris, en met de Infolight zie je via een lichtprojectie op de vloer of het programma nog loopt. Het verstelbare bovenrek en de flexibele indeling zorgen dat ook grote pannen of glazen eenvoudig passen.

Bosch SMH4ECX28E – stille inbouwvaatwasser

De Bosch SMH4ECX28E valt op door zijn stille werking (42 dB) en energieklasse A. De vaatwasser biedt ruimte voor veertien couverts en beschikt over zes programma's en vijf functies, waaronder Extra Droog en SpeedPerfect+. De VarioLade bovenin biedt extra plek voor bestek en klein servies, terwijl het RackMatic-systeem het bovenrek in hoogte verstelbaar maakt. Met HomeConnect bedien je de machine via de app, en de doseerassistent zorgt dat afwasmiddel gelijkmatig wordt verdeeld voor een optimaal resultaat. De roestvrijstalen kuip en de automatische deuropening na afloop van het programma dragen bij aan een grondig en efficiënt droogresultaat.

Of je nu kiest voor een kookplaat met geïntegreerde afzuiging, een smarte combi-oven of een fluisterstille vaatwasser: tijdens Black Friday is het bij Keukenloods hét moment om te investeren in een moderne keuken! Op de speciale Keukenloods Black Friday-pagina vind je alle aanbiedingen!

Over Keukenloods

In de 16 fysieke showrooms en via Keukenloods.nl – de grootste online winkel voor inbouwapparatuur in Nederland – helpt Keukenloods dagelijks klanten bij het samenstellen van hun ideale keuken. Dankzij deskundig advies in de winkels, een uitgebreid online aanbod, scherpe prijzen en betrouwbare levering  weet je zeker dat jouw nieuwe inbouwapparatuur perfect past bij je keuken én je wensen.

▼ Volgende artikel
Maximaal leescomfort: zo werk je prettiger op een Mac
© Kaspars Grinvalds - stock.adobe.com
Huis

Maximaal leescomfort: zo werk je prettiger op een Mac

Een lange werkdag achter het scherm eindigt vaak met vermoeide ogen en een stijve nek. macOS biedt gelukkig talloze verborgen opties waarmee je het beeld, de tekst en zelfs de cursor precies op jouw voorkeuren afstemt. Door deze slim te combineren, verbeter je de leesbaarheid van de tekst op je scherm. Je hebt zelfs geen extra software nodig om binnen een paar minuten meer fijner met macOS te werken.

Omdat een te hoge resolutie voor piepkleine letters zorgt en een te lage voor kartelige pictogrammen, begin je met het vinden van de juiste balans - en die is voor iedereen anders. Open Systeeminstellingen via het Apple-logo linksboven of de losse app, kies Beeldschermen en probeer de verschillende opties die je ziet even uit. Elke optie geeft een andere pixelverhouding weer: de uiterst linkse vergroot, de uiterst rechtse verkleint.

Gebruik je een externe monitor? Dan kun je per scherm een andere schaal kiezen, zodat het ingebouwde Retina-scherm loepzuiver blijft terwijl de 4K-monitor comfortabel grote elementen toont. Bij Geavanceerd vind je overigens nog wat instellingen over hoe je muis omgaat met meerdere schermen. Experimenteer een paar minuten en geef je ogen even de tijd om aan een nieuwe instelling te wennen.

Als je letters en vensters vaak te klein of te groot vindt, kun je de algehele schermresolutie aanpassen.

Tekstvergroting in apps

Als de systeemschaal goed staat, maar je in Safari of Mail nog steeds moeite hebt de letters te lezen, kun je ook alleen de tekst vergroten. Start Safari, open een pagina en druk op Cmd+Plusteken (Cmd++) tot de letters prettig groot zijn. Klik vervolgens in de menubalk op Safari en kies Instellingen / Websites en vervolgens Zoomniveau aan de linkerkant. Kies nu voor elke openstaande website het standaard-zoomniveau.

Mail werkt vergelijkbaar: open Mail, kies Instellingen / Lettertype en kleur en klik op Selecteer om het font groter te maken.

Omdat Finder in macOS Ventura is samengevoegd met Voorvertoning, krijg je ook daar consistente resultaten; open een map, druk op Cmd+J en stel onder in het menu bij Tekstgrootte een grotere tekstgrootte in. Door per app te werken, voorkom je het rare effect dat randmenu’s reusachtig worden terwijl artikelkolommen nog onleesbaar klein blijven.

Ook in de Mail-app heb je voldoende invloed op de grootte van de tekst.

Hoog contrast en kleurfilters

Tekst wordt pas echt leesbaar wanneer het contrast tussen letters en achtergrond groot genoeg is. Ga naar Systeeminstellingen / Toegankelijkheid / Beeldscherm en schakel Verhoog contrast in. MacOS verhoogt dan onmiddellijk het onderscheid tussen wit en zwart, maar behoudt subtiele schaduwen, zodat pictogrammen herkenbaar blijven. Als je liever de kleuren aanpast in plaats van het licht-donkerverschil, activeer dan Keer kleuren om of zet helemaal onderaan de slider bij Kleurfilters aan, open het menu Filtertype en selecteer Protanopie, Deuteranopie of Tritanopie voor specifieke kleurenblindheid. Klik op het uitklapmenu Intensiteit en versleep de schuif tot je zonder moeite rode koppen van blauwe links onderscheidt. De instellingen gelden voor je hele systeem, zodat games, pdf-lezers en zelfs virtuele machinevensters profiteren.

Heb je moeite met specifieke kleuren? Die kun je in de systeeminstellingen helemaal naar wens aanpassen.

Retina, pixels en puntdichtheid uitgelegd

Bij het afstemmen van leesbaarheid stuit je vaak op termen als Retina en ppi (pixels per inch). Een klassiek lcd-scherm toont tekst met relatief weinig pixels per letter, terwijl een Retina-display het aantal pixels per element verdubbelt of verdrievoudigt, zodat individuele pixels bij normaal gebruik niet meer zichtbaar zijn. MacOS beschrijft resolutie daarom in punten: een punt is de logische eenheid waarop het besturingssysteem interface-elementen tekent. Op een 27inch-iMac wordt één punt bijvoorbeeld gerenderd door twee-bij-twee fysieke pixels, terwijl een niet-Retina externe monitor nog steeds een-bij-een werkt. Wanneer je in Beeldschermen een schaaloptie kiest, rendert macOS de interface op een alternatieve interne resolutie die vervolgens wordt geschaald naar de fysieke pixels, waarbij slimme anti-aliasing wordt toegepast om de scherpte te behouden. Het verklaart ook waarom sommige resoluties in de lijst er wazig uitzien: het zijn tussenwaarden waarbij de pixelverhouding niet gelijk is aan die van het scherm. Kies dus altijd een schaal die tot een exact veelvoud leidt, bijvoorbeeld 1920 × 1080 op een 4K-scherm (dat heeft exact viermaal zoveel pixels). 

Donkere modus, Night Shift en True Tone

De donkere modus vermindert lichtschittering en is daarom onmisbaar bij comfortabel werken in schemerige omgevingen. Open Systeeminstellingen / Weergave en kies bij Weergave voor Donker of Automatisch. Bij die laatste koppelt macOS de omschakeling aan het dag-nachtritme. Ga vervolgens terug naar de instellingen voor Beeldschermen, klik onderaan op Night Shift en zet het dropdown-menu bij Schema op Zonsondergang tot zonsopgang. Het systeem past nu ‘s avonds de kleurtemperatuur warm aan, waardoor blauw licht wordt gefilterd.

Gebruik de schuif Kleurtemperatuur om het effect subtiel te houden; te veel oranje of blauw maakt bijvoorbeeld foto-editing onmogelijk. True Tone is ten slotte de sensorfunctie die witpunten gelijkstelt aan het omgevingslicht. Zet deze optie op dezelfde pagina aan en kijk hoe het scherm minder fel oplicht wanneer een wolk voor de zon schuift.

Vergeet niet dat een externe monitor soms eigen logica heeft voor de kleurtemperatuur; zet in dat geval de fabrieksinstelling op neutraal en laat macOS de rest doen. Door de drie technologieën samen te laten werken, blijft tekst op elk moment van de dag helder maar vriendelijk voor de ogen.

Krijg je vooral ‘s avonds last van je ogen? Dan komt Night Shift goed van pas.

Zoomen, vergroting en Hover Text

 Voor wie regelmatig kleine cijfers in spreadsheets moet controleren, is de ingebouwde zoomfunctie een absolute zegen. Navigeer naar Systeeminstellingen / Toegankelijkheid / Zoomen en selecteer Schermzoom. Kies bij Stijl de optie Beeld-in-beeld, zodat alleen het vergrootglasvenster inzoomt en de rest van het bureaublad overzichtelijk blijft. Stel met de schuiven Maximale vergroting en Minimale vergroting onder Geavanceerd een comfortabele factor in en bevestig met OK. Vervolgens druk je tijdens het werken op Option+Command+= om in te zoomen en op Option+Command+- om weer uit te zoomen. Loop ook zeker nog even door de rest van de instellingen in het Geavanceerd-scherm.

Je kunt er bijvoorbeeld instellen dat de zoomfactor wordt gereset bij het opnieuw opstarten van je Mac, dat kleuren in het beeld-in-beeld-venster worden omgedraaid voor een beter contrast, of dat het schermpje op een vaste plaats blijft staan, ongeacht de bewegingen van je muis. Je kunt zelfs trackpadgebaren instellen om de cursor te verplaatsen als je ingezoomd bent.

Zoomen werkt niet alleen in specifieke apps, je kunt er ook een Mac-brede instelling voor gebruiken.

Toegankelijkheid voor iedereen

Toegankelijkheid klinkt misschien als iets dat vooral bedoeld is voor mensen met een visuele of motorische beperking, maar in werkelijkheid profiteert vrijwel iedereen van deze functies. Heb je weleens moeite gehad met het lezen van kleine tekst op een Retina-scherm, of gemerkt dat je ogen vermoeid raken na een paar uur achter je laptop? Dan ben je niet de enige. Situaties zoals fel zonlicht, contrastarme websites of gewoon een lange werkdag kunnen het leescomfort flink beïnvloeden. Toegankelijkheidsinstellingen zoals grotere lettertypes, hogere contrasten, kleurfilters of zelfs schermlezeropties zoals VoiceOver kunnen dan ineens verrassend handig zijn.

Deze functies helpen je niet alleen om beter te lezen, maar zorgen er ook voor dat je productiever en met minder inspanning werkt. Door toegankelijkheid te zien als een vorm van personalisatie, wordt duidelijk dat het niet alleen gaat om toegang in de letterlijke zin, maar ook om comfort, rust en controle over je digitale omgeving.

Muisinstellingen

Een verloren cursor zoeken kost tijd en frustreert, vooral op grote schermen. Open daarom Systeeminstellingen / Toegankelijkheid / Beeldscherm en vergroot de aanwijzer met de slider Aanwijzergrootte. Houd het voorbeeldvenster in de gaten totdat de aanwijzer opvalt. Zet vervolgens Schud de muisaanwijzer om deze te vinden aan; een snelle zigzagbeweging vergroot de aanwijspijl tijdelijk, zodat je ‘m makkelijk kunt vinden. Wie contrastrijke muiskleuren wil, kiest bij Contourkleur aanwijzer bijvoorbeeld een fluorescerend groen en bij Vulkleur aanwijzer diepzwart. De combinatie versnelt navigatie in complexe grafische of codeprojecten aanzienlijk.

MacOS biedt verschillende toegankelijkheidsinstellingen voor zowel je muis als je trackpad.

Spraak, VoiceOver en Live Captions 

Als lezen vermoeiend is, kan luisteren uitkomst bieden. Activeer Systeeminstellingen / Toegankelijkheid / Live spraak. Je ziet nu een schermpje boven in beeld waarin je tekst kunt typen of plakken. Met de Afspeelknop kun je de systeemstem het stuk tekst uit laten spreken. Voor volledige schermnavigatie schakel je onder Toegankelijkheid / VoiceOver de gelijknamige functie in. De snelle rondleiding legt de belangrijkste toetscombinaties uit; onthoud vooral Ctrl+Option+PijltjeRechts om naar de volgende regel te springen.

In videoconferenties kan verminderde gehoorcapaciteit een probleem vormen. Zet dan onder Systeeminstellingen / Toegankelijkheid / Horen de optie Ondertiteling aan. MacOS plaatst automatisch ondertiteling onder elk FaceTime-venster en in vele apps van derden, zolang de taal op Nederlands staat. Let op: niet elke Mac ondersteunt deze functie.

Je kunt tekst laten voorlezen door de systeemstem.

Comfortabeler kijken zit in de details

Met enkele kleine aanpassingen verander je het beeldscherm in een productievere werkomgeving. Door eerst resolutie en tekstgrootte goed te zetten, kun je letters makkelijker lezen. Contrast- en kleurfilters brengen duidelijkheid, terwijl de donkere modus met Night Shift de lichtbelasting verlaagt. Zoom en een opvallende cursor houden details zichtbaar, zelfs bij complexe projecten. VoiceOver en Live Captions geven je ogen rust door teksten te laten uitspreken.