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
Vertrokken Lucasfilm-baas geeft update over aankomende Star Wars-films
Huis

Vertrokken Lucasfilm-baas geeft update over aankomende Star Wars-films

Kathleen Kennedy, de voorzitter van Lucasfilm die eerder deze week aankondigde te vertrekken bij het bedrijf, heeft een update gegeven over verschillende Star Wars-films die er aan zitten te komen.

Nieuw op ID: het complete plaatje

Misschien valt het je op dat er vanaf nu ook berichten over games, films en series op onze site verschijnen. Dat is een bewuste stap. Wij geloven dat technologie niet stopt bij hardware; het gaat uiteindelijk om wat je ermee beleeft. Daarom combineren we onze expertise in tech nu met het laatste nieuws over entertainment. Dat doen we met de gezichten die mensen kennen van Power Unlimited, dé experts op het gebied van gaming en streaming. Zo helpen we je niet alleen aan de beste tv, smartphone of laptop, maar vertellen we je ook direct wat je erop moet kijken of spelen. Je vindt hier dus voortaan de ideale mix van hardware én content.

Dat deed ze in een interview met Deadline, waarin ze ook terugblikt op haar tijd bij Lucasfilm. We wisten al van het bestaan van de aankomende films die ze vervolgens aanhaalde, maar op deze manier wordt er iets meer duidelijkheid gecreëerd over de status van deze projecten.

Mogelijke projecten

Zo werken James Mangold en Beau Willimon aan een script voor een film over het ontstaan van de Jedi - mogelijk genaamd Dawn of the Jedi. Volgens Kennedy heeft het duo een geweldig script geschreven, maar ligt de progressie rondom de film nu tijdelijk stil.

Daarnaast heeft ook Taika Waititi - bekend van de moderne Thor-films, What We Do in the Shadows en Jojo Rabbit - een script ingeleverd die blijkbaar "hilarisch" is. "Het is alleen niet mijn besluit (wat ermee gebeurt), zeker nu ik wegga." Steve Soderbergh en (acteur) Adam Driver willen daarnaast een script van Scott Burns verfilmen. Eerder werd er al een film rondom Drivers personage Ben Solo afgeschoten.

Tot slot is er nog de mogelijkheid dat Rian Johnson, de maker van The Last Jedi, terugkeert. Kennedy legt uit dat Johnson het erg druk heeft met de Knives Out-films, en dat hij ook bang is geworden van de kritiek die online werd geplaatst rondom zijn meest recente Star Wars-film. In eerste instantie zou Johnson een geheel nieuwe Star Wars-trilogie regisseren, maar dat lijkt nu dus onwaarschijnlijk. Kennedy kon dan ook geen uitsluitsel geven.

Aankomende bevestigde Star Wars-films

Er is in ieder geval veel onduidelijk over de staat van de toekomstige Star Wars-films, maar gelukkig weten we van enkele films dat ze sowieso uitkomen - mede omdat ze al zijn opgenomen.

Zo is daar de Mandalorian-film - The mandalorian and Grogu - geregisseerd door Jon Favreau - die in mei uitkomt - en volgend jaar Star Wars: Starfighter. In die film hebben onder andere Ryan Gosling, Flynn Gray en Matt Smith rollen. Fans kunnen zich de komende jaren dus nog opmaken voor meer dan genoeg Star Wars.

Het vertrek van Kathleen Kennedy

Zoals gezegd treedt Kathleen Kennedy dus af als voorzitter van Lucasfilm. Zij speelde zo'n veertien jaar lang een belangrijke rol binnen deze gigantische franchise. Ze zal wel deels betrokken blijven bij de reeks, onder andere als producent van The Mandalorian and Grogu en Starfighter.

Dave Filoni en Lynwen Brennan nemen het stokje van Kennedy over. Filoni gaat zich richten op de creatieve koers van Lucasfilm en Star Wars, terwijl Brennan de zakelijke kant op zich neemt. Beiden zullen onder leiding staan van Disney-voorzitter Alan Bergman.

▼ Volgende artikel
Waar voor je geld: 5 slimme thermostaat-sets voor een automatisch warm huis
© MG | ID.nl
Energie

Waar voor je geld: 5 slimme thermostaat-sets voor een automatisch warm huis

Bij ID.nl zijn we gek op producten voor een mooie prijs of die iets bijzonders te bieden heeft. Een paar keer per week gaan we daarom op zoek naar zulke producten. Niets is zo veranderlijk als het weer; het ene moment schijn de zon en een week later vriest het en ligt er sneeuw. Hoe fijn is het dan als jouw huia automatisch wordt verwarmd op het moment dat het nodig is? Een slimme thermostaat is dan wel handig. Wij zonden vijf slimme startersets met radiatorkraan.

Om je huis wat energiezuiniger te maken is het gebruik van de CV-ketel en de verwarming een goed begin om deze wat beter reguleren. En in plaats van dat je dat zelf helemaal handmatig moet bijhouden, kun je kiezen voor een slimme thermostaat die dat voor je doet. Wij vonden vijf handige startersets met slimme thermostaat en extra apparatuur zoals radiatorkranen waarmee je direct aan de slag kunt.

Netatmo Slimme Thermostaat

Met deze uitgebreide Netatmo-bundel haal je in één keer een complete zoneregeling in huis. De set combineert de iconische Netatmo Slimme Thermostaat met maar liefst drie extra slimme radiatorkranen. Dit is de perfecte oplossing als je niet alleen je woonkamer, maar ook drie andere vertrekken (zoals een werkkamer, badkamer of slaapkamer) individueel wilt verwarmen.

Het design, ontworpen door Philippe Starck, is minimalistisch en tijdloos. De thermostaat zelf is eenvoudig te bedienen en werkt met vrijwel alle CV-ketels (aan/uit). De kracht zit echter in de combinatie met de radiatorkranen: deze meten de temperatuur per kamer en kunnen de radiator dichtdraaien als de gewenste temperatuur bereikt is, zelfs als de thermostaat in de woonkamer nog om warmte vraagt.

Dankzij de slimme Auto-Adapt functie leert het systeem de isolatie van je huis en de buitentemperatuur kennen, zodat het precies weet wanneer de verwarming aan moet om op tijd warm te zijn. Alles is aan te sturen via de gebruiksvriendelijke app of via spraak (Apple HomeKit, Google Assistant en Alexa). Met functies als open-raamdetectie en maandelijkse besparingsoverzichten helpt deze set je actief om energie te besparen zonder in te leveren op comfort.

TP‑Link KE100 KIT

Met deze set van TP‑Link maak je je radiatoren afzonderlijk aanstuurbaar. De doos bevat twee thermostatische radiatorkranen en een hub. Die hub vormt het hart van het systeem: je verbindt hem met je wifi en plaatst de radiatorkranen op de bestaande ventielen. Vervolgens kun je via de Kasa Smart‑app voor iedere ruimte een eigen temperatuur instellen. Dankzij het ingebouwde schema stel je vaste tijdstippen in waarop de radiatoren opwarmen of juist lager worden gezet. De apparaten communiceren draadloos met de hub, waardoor je ook meerdere kamers kunt bedienen.

Je kunt tot wel 32 radiatoren op één hub aansluiten. De set werkt samen met stemassistenten zoals Google Assistant, Amazon Alexa en Siri, zodat je de temperatuur per kamer kunt aanpassen zonder je telefoon erbij te pakken. Er is een vorstbeschermingsmodus die de radiator inschakelt als de temperatuur te laag wordt, handig bij koude winters. Via meegeleverde adapters passen de radiatorkranen op de meeste ventielen. En omdat ze op batterijen werken hoef je geen stroompunt in de buurt te hebben.

Imou TRV1 Kit

Dit starterspakket van Imou is bedoeld voor wie één of meerdere radiatoren los wil regelen en via internet wil bedienen. In de doos zit een thermostatische radiatorkraan en een gateway; de gateway verbindt de kraan met je thuisnetwerk via Zigbee. De kraan meet de temperatuur en stuurt het ventiel nauwkeurig aan tussen 5 °C en 35 °C, met stappen van een halve graad. Je programmeert via de Imou Life‑app een tijdschema of stelt handmatig de gewenste temperatuur in. De gateway heeft een bereik van honderd meter, zodat je de set eventueel met extra kranen kunt uitbreiden tot een maximaal aantal van 32 radiatoren.

Handige functies zijn open‑raamdetectie, antivriesstand en een kinderslot. Wanneer er een raam openstaat schakelt de kraan automatisch lager om energie te besparen. Batterijen leveren de stroom; Imou levert AA‑batterijen en diverse adapters mee. De set werkt samen met Amazon Alexa en Google Assistant zodat je via spraakcommando’s de verwarming aanstuurt. Dankzij de heldere led‑ring op de knop zie je in één oogopslag welke modus actief is. Hierdoor is het systeem geschikt voor wie op een eenvoudige manier per kamer wil verwarmen zonder ingrijpende installatie.

Hombli Smart Radiator Thermostat Starterkit

Hombli biedt een set met twee radiatorthermostaten en een bridge om de knoppen via de Hombli‑app te bedienen. Je plaatst de knoppen op de bestaande ventielen, waarna je met de bridge de verbinding maakt tussen de knoppen en je wifi‑netwerk. Met de app stel je per kamer een weekprogramma in, zodat je bijvoorbeeld ’s avonds in de woonkamer verwarmt en overdag juist in de werkkamer. De thermostaten hebben een energieverbruiksmonitor waarmee je ziet hoeveel warmte elke radiator gebruikt. Er is ook een geofencing‑optie: als je het huis verlaat, gaat de verwarming automatisch lager.

Open‑raamdetectie voorkomt onnodig stoken als er geventileerd wordt. De knoppen communiceren via bluetooth low energy; daardoor gaan de AA‑batterijen volgens Hombli tot anderhalf jaar mee. Je bedient het systeem met de app of via spraakassistenten zoals Google Assistant, Amazon Alexa en Siri. Omdat de bridge meerdere knoppen kan koppelen, kun je later uitbreiden naar extra radiatoren. Via de app kun je ook alle gekoppelde knoppen gelijktijdig aanpassen, waardoor het systeem geschikt is voor blok‑ of stadsverwarming.

Tado Slimme Radiatorknop Starterskit V3+

Deze starterskit van tado° is bedoeld voor woningen waar elke radiator apart geregeld moet worden zonder centrale thermostaat. De verpakking bevat één slimme radiatorkraan en een internetbridge. Je vervangt de bestaande knop door de slimme kraan en koppelt de bridge aan je router. Via de tado°‑app regel je de temperatuur per kamer en stel je uitgebreide programma’s in, zoals een week- of weekendprogramma. De app gebruikt geolocatie, open‑raamdetectie en weersinformatie om de verwarming automatisch aan te passen.

De set werkt met spraakbesturing via Amazon Alexa, Apple HomeKit en Google Assistant. Dankzij de internetbridge kun je extra radiatorkranen toevoegen om meer kamers aan te sturen. tado° adviseert om per radiator een slimme knop te plaatsen voor optimale werking. Volgens de fabrikant kun je tot 31 % energie besparen doordat de app de verwarming afstemt op je aanwezigheid. Batterijen zorgen voor de stroomvoorziening. Voor geavanceerde functies zoals automatische geofencing heb je een optioneel abonnement nodig, maar de basisbediening via de app blijft beschikbaar zonder extra kosten.