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
Waar voor je geld: 5 betaalbare smartphones voor minder dan 300 euro
Huis

Waar voor je geld: 5 betaalbare smartphones voor minder dan 300 euro

In de rubriek Waar voor je geld gaan we op zoek naar producten waar je niet de hoofdprijs voor betaalt. Een aantal keer per week geven we je een overzicht van deze producten. Dit keer: vijf moderne smartphones die voor minder dan 300 euro in de winkel liggen.

Een nieuwe smartphone hoeft niet duur te zijn. Wie goed zoekt, vindt voor minder dan 300 euro verrassend complete toestellen met scherpe schermen, snelle hardware en degelijke camera’s. In dit overzicht vind je vijf recente smartphones die binnen dit budget vallen. Ze bieden elk hun eigen balans tussen prestaties, opslagruimte en accuduur. De één blinkt uit in schermkwaliteit, de ander juist in snelheid of camera-opties. Hieronder lees je wat je van elk toestel kunt verwachten, zonder poespas of verkooppraatjes.

Samsung Galaxy A56

Met de Galaxy A56 richt Samsung zich op gebruikers die een groot scherm en snelle 5G-connectiviteit willen zonder de prijs van een topmodel. Dit toestel heeft een 6,7-inch Super AMOLED-scherm met een resolutie van 1080 × 2340 pixels. Binnenin draait een Samsung Exynos-processor met 8 GB werkgeheugen en 128 GB opslag, uitbreidbaar via een geheugenkaart. De hoofdcamera heeft een resolutie van 50 megapixel, aangevuld met ultragroothoek- en dieptesensoren. De batterij van 5000 mAh ondersteunt 25 W snelladen. Het toestel werkt met Android 14 en biedt ondersteuning voor dual-sim en 5G-netwerken.

Energy Label B
Specificaties

Schermgrootte: 6,7 inch
Soort scherm: Super AMOLED
Werking op volle accu:
44u34min
Aantal megapixels:
50
Opslag:
128 GB

OPPO Reno 12 5G

De Reno 12 heeft een afgerond OLED-scherm van 6,7 inch met een verversingssnelheid van 120 Hz. Het toestel draait op de MediaTek Dimensity 7300-processor met 12 GB RAM en 256 GB opslagruimte. De hoofdcamera telt 50 megapixel en wordt bijgestaan door een ultragroothoek- en dieptecamera. De batterij heeft een capaciteit van 5000 mAh en ondersteunt 80 W snelladen via USB-C. Deze telefoon draait op Android 14 met ColorOS. Het toestel ondersteunt 5G, dual-sim en Wi-Fi 6, en beschikt over een vingerafdrukscanner onder het scherm.

Energy Label F
Specificaties

Schermgrootte: 6,7 inch
Soort scherm:
OLED
Werking op volle accu:
niet opgegeven
Aantal megapixels:
50 MP
Opslag:
256 GB

Motorola Edge 50 Neo

De Motorola Edge 50 Neo beschikt over een 6,55-inch P-OLED-display met een resolutie van 2400 × 1080 pixels en een verversingssnelheid van 120 Hz. Binnenin zit de Qualcomm Snapdragon 7s Gen 2, gekoppeld aan 12 GB RAM en 512 GB interne opslag. De hoofdcamera heeft een 50-megapixelsensor met optische beeldstabilisatie, de tweede lens is een 13-megapixel ultragroothoek. De batterij heeft een capaciteit van 5000 mAh en ondersteunt 68 W snelladen. De telefoon draait op Android 14 en heeft 5G, NFC en dual-sim.

Energy Label A
Specificaties

Schermgrootte: 6,5 inch
Soort scherm: P-OLED
Werking op volle accu:
50u44m
Aantal megapixels:
50 MP
Opslag:
512 GB

Samsung Galaxy A16

De Galaxy A16 is een toestel met een 6,5-inch PLS-LCD-scherm met een resolutie van 1600 × 720 pixels. De telefoon werkt met de MediaTek Helio G85-processor en 4 GB werkgeheugen, met 128 GB opslag. De camera achterop bestaat uit drie lenzen, waarvan de hoofdcamera 50 megapixel heeft. De batterij van 5000 mAh ondersteunt 15 W snelladen. Het toestel draait op Android 14 met One UI. De telefoon heeft een 3,5-mm-aansluiting en ruimte voor twee simkaarten.

Energy Label B
Specificaties

Schermgrootte: 6,5 inch
Soort scherm: LCD
Werking op volle accu:
43u30m
Aantal megapixels:
50 MP
Opslag:
128 GB

Xiaomi Redmi Note 14 5G

De Redmi Note 14 5G heeft een 6,6-inch AMOLED-scherm met een verversingssnelheid van 120 Hz. Binnenin zit de Snapdragon 4 Gen 2-chip, samen met 8 GB RAM en 256 GB opslagruimte. De hoofdcamera aan de achterkant heeft 108 megapixel, terwijl de frontcamera 16 megapixel levert. De batterij van 5000 mAh ondersteunt 33 W snelladen via USB-C. Het toestel biedt ondersteuning voor 5G, Bluetooth 5.3, NFC en een infraroodzender. Android 14 met MIUI vormt de softwarebasis.

Energy Label D
Specificaties

Schermgrootte: 6,6 inch
Soort scherm:
AMOLED
Werking op volle accu:
38u56m
Aantal megapixels:
108 MP
Opslag:
256 GB

▼ Volgende artikel
LG komt met 6K-monitor
Huis

LG komt met 6K-monitor

LG heeft een nieuwe monitor aangekondigd voor creatieve professionals: de UltraFine evo 6K (model 32U990A). Dit scherm valt op als de eerste 6K-monitor met Thunderbolt 5-ondersteuning en richt zich op gebruikers die werken met zware videoprojecten, grafisch ontwerp of andere veeleisende taken.

De 32U990A heeft een resolutie van 6.144 bij 3.456 pixels en een pixeldichtheid van 224 PPI. Dat zorgt voor bijzonder scherpe tekst en een hoge detailweergave. Volgens LG is het scherm in de fabriek gekalibreerd voor consistente kleuren binnen macOS. De monitor dekt bijna de volledige DCI-P3- en Adobe RGB-kleurruimte, wat hem geschikt maakt voor foto- en videobewerking en drukwerk. Ook voldoet hij aan de VESA DisplayHDR 600-standaard, wat zorgt voor een goede helderheid en kleurechtheid. Daarnaast heeft LG een Studio Mode toegevoegd, met drie kleurprofielen die speciaal zijn bedoeld voor Mac-gebruikers.

De UltraFine evo 6K biedt 2,5 keer zoveel pixels als een 4K-scherm, en wie twee van deze monitoren naast elkaar gebruikt, krijgt bijna vijf keer zoveel werkruimte. Via Thunderbolt 5 kunnen gebruikers bovendien eenvoudig meerdere schermen koppelen. De monitor kan ook dienen als hub, met ingebouwde KVM-switch en diverse aansluitingen, waarmee snel tussen Mac- en Windows-systemen kan worden gewisseld.

Dankzij de Thunderbolt 5-ondersteuning haalt de monitor overdrachtssnelheden tot 120 Gbps, drie keer sneller dan Thunderbolt 4. Dat maakt hem geschikt voor het werken met zware 8K-RAW-bestanden en real-time 4K-rendering. Het ontwerp is strak en vrijwel randloos, en het scherm kan in hoogte worden versteld of verticaal worden gedraaid – handig voor wie veel met verticale content werkt. Er zijn minder kabels nodig, wat zorgt voor een opgeruimde werkplek.

“Nu veel videomakers meerdere projecten tegelijk beheren, is de behoefte aan ultrahoge resolutie, nauwkeurige kleuren en snelle verbindingen groter dan ooit,” zegt YS Lee, hoofd van de IT-divisie van LG Media Entertainment Solution Company. “Met de UltraFine evo 6K bieden we een toekomstbestendig scherm van compromisloze kwaliteit, waarmee professionals sneller, slimmer en beter kunnen werken.”

Beschikbaarheid en prijzen

De LG UltraFine evo 6K-monitor wordt in oktober in Europa en de VS uitgebracht, maar een adviesprijs is nog niet bekendgemaakt.