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 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 .

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 .

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 .

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 .

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 .

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
PS5- en Xbox Series-versies van Kingdom Come: Deliverance uitgebracht
Huis

PS5- en Xbox Series-versies van Kingdom Come: Deliverance uitgebracht

Uitgever Deep Silver en ontwikkelaar Warhorse Studios hebben een PlayStation 5- en Xbox Series X en S-versie van de openwereldgame Kingdom Come: Deliverance uitgebracht.

Er gingen al geruchten over de komst van een current-gen versie van de in 2018 verschenen game, en die blijken nu dus te kloppen. Mensen die de game op de PS4 of Xbox One hebben, kunnen gratis upgraden. Op 15 mei komt ook een fysieke versie uit van de PS5- en Xbox Series-versies.

De vernieuwde editie van de game, die oorspronkelijk in 2018 op pc, PS4 en Xbox One uitkwam en in 2024 ook op Switch, heeft een 4k-resolutie, verbeterde framerate (60 fps), textures in een hogere resolutie en diverse andere verbeteringen.

In Kingdom Come: Deliverance besturen spelers Henry, een zoon van een smid, die middenin het middeleeuwse Bohemen in een burgeroorlog terecht komt. De game staat bekend om zijn enorme realisme, waarbij alles wat spelers doen invloed heeft op de wereld om hun heen en de verloop van missies. Ook het (zwaard)vechten is erg realistisch en vergt een hoop oefening.

In 2025 kwam een vervolg uit, Kingdom Come: Deliverance 2, dat de franchise nog bekender bij het grote publiek maakte. Warhorse heeft aangekondigd dat dit vervolg inmiddels al meer dan vijf miljoen keer is verkocht.

Watch on YouTube
▼ Volgende artikel
Waar voor je geld: vijf 27-inch monitoren met 240Hz verversingssnelheid
© ID.nl
Huis

Waar voor je geld: vijf 27-inch monitoren met 240Hz verversingssnelheid

Ben je op zoek naar een grote computermonitor met een hoge beeldverversingsfrequentie? Wij vonden vijf betaalbare modellen voor je op Kieskeurig.nl. Zulke monitoren zijn bij uitstek geschikt voor foto- en videobewerking maar komen goed van pas bij fanatiek gamen, want hoe lager de responstijd, des te soepeler het beeld is.

AOC C27G2ZE/BK

Als je op zoek bent naar een nieuwe - en gebogen - 27‑inch-monitor met 240 Hz verversingssnelheid, valt de AOC C27G2ZE/BK op door zijn combinatie van snelheid en schermgrootte. Dit gebogen scherm gebruikt een VA‑paneel, wat zorgt voor een hoog statisch contrast van 3000:1. De Full‑HD‑resolutie (1920 × 1080) maakt het mogelijk om met een gemiddeld computersysteem te spelen zonder dat de grafische belasting extreem wordt.

Dankzij een responstijd van 0,5 ms kun je snelle games spelen zonder merkbare vertraging. Het scherm heeft een 1500R‑kromming voor een natuurlijke kijkhoek. Voor synchronisatie met de grafische kaart is AMD FreeSync aanwezig, en de monitor beschikt over meerdere HDMI‑ en DisplayPort‑aansluitingen, zodat je eenvoudig verschillende apparaten kunt aansluiten.

Verder zijn er ingebouwde instellingen voor een kruisvormige richtlijn, verschillende beeldmodi en flikkervrije achtergrondverlichting. Je kunt het scherm kantelen voor een fijne kijkhoek, maar hoogte‑ of draaibaarheid is bij dit model niet mogelijk. Voor audio‑doorgave is er een 3,5 mm‑uitgang zodat je je hoofdtelefoon direct kunt aansluiten.

HP OMEN 27s

De HP OMEN 27s is een 27‑inch Full‑HD‑ gamingmonitor die zich richt op gamers die een hoge verversingssnelheid zoeken met een toegankelijk formaat. Het IPS‑paneel biedt een brede kijkhoek en geeft kleuren gelijkmatig weer. Met een resolutie van 1920 × 1080 pixels en een verversingssnelheid van 240 Hz kunnen beelden vloeiend worden weergegeven. Volgens de specificaties bedraagt de responstijd 1 ms, waardoor je snelle actie kunt volgen met minimale vertraging. Het scherm is compatibel met NVIDIA G‑SYNC om tearing te voorkomen. Je kunt de monitor kantelen en in hoogte verstellen, wat bijdraagt aan een ergonomische opstelling. Aan aansluitingen ontbreekt het niet: er zijn twee HDMI 2.0‑poorten, een DisplayPort 1.4 en een usb‑hub.

De ingebouwde RGB‑verlichting aan de achterkant kun je via software aanpassen om het uiterlijk van je werkplek aan te passen. Er zijn geen ingebouwde luidsprekers, maar er is wel een 3,5 mm‑aansluiting voor een hoofdtelefoon. Deze monitor is bedoeld voor gebruik vanaf 2023; het ontwerp gebruikt dunne randen zodat je hem eventueel naast een tweede scherm kunt zetten. Met zijn matte afwerking is reflectie beperkt, en de monitor is voorzien van flikkervrije techniek om vermoeide ogen te voorkomen.

Responstijden

Wanneer je een (gaming)monitor koopt, wordt er vaak gebruik gemaakt van afkortingen voor het weergeven van de responstijd van de pixels op het scherm. MPRT staat voor Motion Picture Response Time en geeft aan hoe lang een pixel zichtbaar blijft tijdens bewegend beeld. Deze waarde zegt vooral iets over de hoeveelheid bewegingsonscherpte die je ziet bij snelle bewegingen op het scherm. Hoe lager de MPRT, hoe scherper bewegende beelden ogen.

Fabrikanten verlagen de MPRT vaak met technieken zoals het kort uitschakelen van de achtergrondverlichting tussen beelden. MPRT is niet hetzelfde als de bekende GtG-responstijd: GtG meet hoe snel pixels van kleur veranderen, terwijl MPRT puur draait om zichtbare scherpte bij beweging.

Lenovo Y27f‑30

Met de Lenovo Y27f‑30 krijg je een 27‑inch monitor gericht op gamers en multimedia. Het IPS‑paneel combineert Full‑HD‑resolutie (1920 × 1080) met een verversingssnelheid van 240 Hz voor soepel beeld. De responstijd 0,5 is ms, zodat snelle acties zonder motion blur worden weergegeven. Het scherm ondersteunt HDR‑content en heeft een helderheid tot 400 nits, waardoor beelden dynamischer worden ervaren. Met een kleurdekking van 99 % sRGB en 1,07 miljard kleurtinten is het paneel geschikt voor gaming en lichte fotobewerking.

De monitor beschikt over twee HDMI 2.0‑poorten, een DisplayPort 1.4 en een usb‑hub. Er zijn geïntegreerde luidsprekers en een hoofdtelefoonaansluiting, zodat je zonder extra accessoires geluid kunt beluisteren. De hoogte‑ en kantelinstelling maken een ergonomische opstelling mogelijk, en via VESA‑montage kun je hem ook aan een arm bevestigen.

FreeSync‑Premium‑Pro‑ondersteuning helpt synchronisatieproblemen met AMD‑grafische kaarten te voorkomen. Een opvallende extra is dat het scherm volgens de specificaties overklokt kan worden tot 280 Hz, mocht je grafische kaart dat ondersteunen. Omdat de rand dun is, kun je meerdere schermen naast elkaar plaatsen voor een groter werkoppervlak.

Samsung 27 Odyssey OLED G8 G81SF

Voor wie een 240Hz‑verversingssnelheid combineert met hoge resolutie, heeft Samsung de Odyssey OLED G8 G81SF. Deze 27‑inch monitor gebruikt een QD‑OLED‑paneel en biedt een 4K‑resolutie van 3840 × 2160 pixels. Door de verversingssnelheid van 240 Hz en het OLED‑paneel krijg je een combinatie van scherpe pixels en vloeiend beeld.

De monitor is gecertificeerd voor DisplayHDR TrueBlack 400, wat inhoudt dat donkere tinten diep zwart zijn terwijl lichte delen helderder ogen. Het scherm heeft een antireflectiecoating, en Samsung gebruikt een “Dynamic Cooling System” om het OLED‑paneel op een constante temperatuur te houden. FreeSync Premium Pro is ingebouwd om haperingen te voorkomen. Qua aansluitingen is er één DisplayPort 1.4‑poort, een HDMI 2.1‑poort en een usb-c-aansluiting met 65 W‑voeding, zodat je een laptop kunt opladen terwijl je beeldscherm gebruikt.

De monitor ondersteunt CoreLighting+ aan de achterkant: door middel van een lichtstrip kun je de verlichting aanpassen aan de inhoud op je scherm. Je kunt het scherm in hoogte verstellen en kantelen; daarnaast is er een geïntegreerde standaard met kabelbeheer. Het OLED‑paneel heeft een dichtheid van 166 PPI voor scherpe tekst. Samsung levert ook een afstandsbediening zodat je toegang krijgt tot ingebouwde apps en streamingdiensten via Smart Hub.

ASUS ROG Swift PG27AQDM

De ASUS ROG Swift PG27AQDM is een 27‑inch gaming‑monitor met QHD‑resolutie (2560 × 1440 pixels) en een OLED‑paneel. Ondanks dat ASUS het scherm als 27 inch aanduidt, heeft het feitelijk een diagonaal van 26,5 inch, maar door de dunne rand valt dit nauwelijks op. Met een verversingssnelheid van 240Hz en een responstijd van 0,03 ms biedt dit model een van de snelste paneelreacties in zijn klasse.

Het OLED‑paneel kan diepe zwartwaarden produceren en volgens de specificaties geeft het 1,073 miljard kleuren weer. De monitor ondersteunt zowel NVIDIA G‑SYNC als AMD FreeSync, zodat je de weergave kunt synchroniseren met bijna elke moderne grafische kaart. Voor verbinding zijn er DisplayPort 1.4, twee HDMI‑poorten en een usb‑hub. Het scherm kan in hoogte worden versteld, gedraaid en gekanteld, en het is geschikt voor VESA‑montage.

Om inbranden te voorkomen gebruikt ASUS een speciale warmteafvoer en automatische helderheidsaanpassingen. De behuizing is voorzien van een rondom lopende RGB‑strip die je naar wens kunt instellen. Met een standaard die een handvat heeft, is het scherm gemakkelijk te verplaatsen. Het relatief hoge energiegebruik van een OLED‑gamingmonitor is aanwezig; er is echter een ECO‑modus. Deze monitor is vooral bedoeld voor veeleisende gamers of professionals die vloeiende bewegingen en hoge contrastwaarden zoeken.