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
Review Comfy warmte van Beurer – Laat de winter maar komen!
© AK | ID.nl
Huis

Review Comfy warmte van Beurer – Laat de winter maar komen!

Nog niet zo heel lang geleden was een elektrische deken vooral iets voor omaatjes. Maar sinds de gasprijzen eind 2021 enorm opliepen, hebben we allemaal de warmtekussen en -dekens omarmd. Welk deel van je lichaam je ook wilt verwarmen: het aanbod is enorm. Tijd voor een uitgebreide test dus. Zaten we er warmpjes bij?

Het van oorsprong Duitse bedrijf Beurer richt zich vooral op producten die te maken hebben met beauty, medical en wellbeing. Dat loopt van haardrogers tot weegschalen en bloeddrukmeters. Maar van oorsprong – en we hebben het dan over 1919(!) – hield Beurer zich bezig met de productie van warmtekussens. Het is dan ook niet vreemd dat het bedrijf een aanzienlijk aantal warmteproducten in het assortiment heeft. Voor deze test probeerden we vier producten uit: een verzwaarde warmtemat (HK 145), een oplaadbaar warmtekussen (Heaty HK 77), een voetenwarmer met massagefunctie (FWM 45) en tot slot een elektrische bovendeken (HD 82 Stockholm). 

Voor gerichte warmte: HK 145 Cosy Weight Green Planet

We beginnen met de HK 145. Hoewel de HK 145 Cosy Weight door Beurer zelf als verwarmingskussen wordt aangeduid, zouden wij het toch eerder een warmtemat noemen. Dat komt door de langwerpige vorm (60x30 centimeter) en de geringe dikte (iets minder dan 9 centimeter). Heel geschikt dus om op specifieke delen van je lichaam te leggen – denk aan een stijve schouder of pijnlijke knieën. Ook als je bijvoorbeeld menstruatiekrampen hebt, kan de HK 145 helpen.

Bij het uit de doos halen viel meteen het gewicht van de mat op: ongeveer anderhalve kilo. Door de vulling van glaskralen is hij een stuk zwaarder dan traditionele warmtekussens. Wie wel eens onder een verzwaringsdeken heeft geslapen, weet hoe rustgevend dat werkt. Bovendien zorgen de kralen ervoor dat de warmte langer wordt afgegeven. Fijn is dat de mat gemaakt is van superzachte materiaal (100% gerecycled – de HK 145 maakt deel uit van de duurzame Green Planet-lijn).

©AK | ID.nl

De werking is heel simpel: stekker in het stopcontact en de gewenste stand kiezen. In totaal zijn er zes warmtestanden. Omdat wij enorme koukleumen zijn, vonden we de hoogste stand het lekkerst, maar dat is een persoonlijk iets. We hebben het kussen eerst uitgeprobeerd op onze de buik. Dat voelde door het verzwarende effect vooral heel ontspannend. Daarna was onze schouder aan de beurt (de combinatie een zekere leeftijd + 40 uur per week achter de laptop zitten is daar niet al te best voor). De warmte werkte snel en gericht: na een minuut of vijftien voelde de schouder duidelijk soepeler. Langer doorgaan was minder prettig, vooral door het gewicht en de harde rand van de mat, die in onze nek begon te drukken.

Eindoordeel:🔥🔥🔥🔥

Dat de HK 145 warmtemat niet in elke stand even comfortabel blijft aanvoelen, is eigenlijk het enige wat we aan te merken hebben. Ben je op zoek naar warmte voor heel je lichaam, dan is deze warmtemat niet het juiste product voor je. Heb je met enige regelmaat echt gerichte warmte nodig, dan is dit een aanrader.

Om mee te knuffelen: HK 77 Heaty warmtekussen

Zeg je cosy warmte, dan zeg je al snel: warmtekussen. Maar dan wel eentje die in je interieur past. Dat hebben ze bij Beurer goed begrepen: het HK 77 Heaty kussen is verkrijgbaar met een corduroy hoes (in crème, oudroze, blauwgroen) of een velvet hoes (in taupe, roze. blauw). De hoes is wasbaar.

Net als bij de andere producten in deze test wordt ook de Heaty (wij probeerden de velvetblauwe versie) geleverd met een handleiding met een duidelijke schematische tekening waarop alle onderdelen en functies staan uitgelegd. Het enige wat we in de handleiding niet helemaal duidelijk vonden, was of je de accu kunt opladen terwijl hij nog in het zakje van het binnenkussen zat, of dat je hem eerst moet verwijderen. Voor de veiligheid hebben wij hem eruit gehaald. Het opladen zelf wijst zich vanzelf. Drie witte ledjes op het bedieningspaneel (het bruine label aan de buitenzijde) geven de voortgang van het opladen aan. Is de accu helemaal opgeladen, dan regel je via de drukknop op het paneel de hoogte van de warmte. Als het kussen aan staat, zie je zowel de ingestelde temperatuur-indicator als de ledjes van het batterijniveau.

©AK | ID.nl

Om met die warmte te beginnen: we kunnen niet anders concluderen dan dat het ultiem comfort is, snuggelen met een warm kussen. Wij als koukleumen opteerden natuurlijk voor de hoogste stand, maar ook na terugschakelen naar een lagere stand gaf het kussen nog steeds behaaglijke warmte af.

Wel vonden we dat de accu redelijk snel leegliep.Na ongeveer een uur op de hoogste warmtestand waren al twee van de drie witte ledlampjes uit. Volgens Beurer heeft de accu een maximale gebruiksduur van vier uur, maar dat geldt alleen voor de laagste stand. Op de hoogste stand haal je dus waarschijnlijk nét het einde van een romantische kerstfilm niet.

Eindoordeel:🔥🔥🔥🔥

De accuduur is eigenlijk het enige minpunt dat we aan het HK 77 Heaty warmtekussen hebben kunnen ontdekken. En minpunt is misschien te sterk. Minderpunt is een betere benaming. Het is en blijft namelijk een heerlijk knuffelkussen!

Warmte en ontspanning voor je voeten: FWM 45 voetenwarmer

Wie vaak koude voeten heeft, heeft niets aan een warmtekussen. Speciaal voor die mensen is er de FWM 45: een voetenwarmer met een teddyvoering, die twee verschillende warmtestanden heeft én twee verschillende massagestanden. Je kunt zowel de warmte als de massage afzonderlijk of tegelijkertijd gebruiken. Variatie genoeg dus.

Op een thuiswerkdag waarop het buiten behoorlijk koud was hebben wij de voetenzak onder het bureau gezet. Stekker in het stopcontact, even laten opwarmen en voeten erin. Aanvankelijk hielden we daarbij onze sokken aan. Dat voelde oké, maar echt warm: nee. Met blote voeten ging dat wat beter, hoewel het van ons nog wel wat warmer had gemogen. Jammer is dat de warmte alleen van een verwarmingselement aan de onderkant komt en dat de bovenkant niet elastisch sluit, waardoor er een opening blijft waardoor koude lucht naar binnen glipt. Kleine tip: vouw de teddyvoering uit in plaats van die over de zak te laten hangen, zodat je onderbenen beter bedekt zijn. Doen, wat ons betreft.

©AK | ID.nl

Bijzonder aan deze voetenwarmer (geschikt voor voeten tot en met maat 47) is dat er een massagefunctie op zit. Je kunt daarbij kiezen uit twee standen: rustgevend en verkwikkend. De rustgevende modus (stand 1) doet precies wat hij belooft. Je voelt de trilling in je voeten en kuiten. Het is niet hinderlijk en vooral ontspannend. We kunnen ons voorstellen dat dit een prettige stand is bij het tv-kijken na een dag hard werken. Tv-kijken terwijl de verkwikkende modus (stand 2) aan staat, zouden we zelf niet zo snel doen. Het masseren gaat in deze stand namelijk een stuk harder (en maakt ook wat meer geluid). Voelt het vervelend? Nee, dat niet. Maar het voelt ook niet heel lekker – je bent je vooral heel de tijd bewust van het getril onder je voeten. Wij vonden het lastig om ons tijdens deze stand te focussen op ons werk.

Eindoordeel:🔥🔥🔥

Wat ons betreft had de FWM 45 voetenwarmer meer warmte mogen afgeven, en dan het liefst ook vanaf de bovenkant. Massagestand 1 (rustgevend) is een fijne bonus, maar stand 2 vonden we minder plezierig.

Om nooit meer onderuit te kruipen: HD 82 Stockholm warmtedeken

Reviewen is soms hard werken, maar soms is het een feestje. Het uitproberen van de HD 82 warmtedeken was zo'n feestje. Dankzij zijn afmetingen (130x180 centimeter) kun je er helemaal in wegkruipen. Op de handig verlichte bedieningseenheid kun je kiezen uit zes warmtestanden, waarbij koukleumen zoals wij ook bij een lagere stand dan de hoogste nog heerlijk warm blijven.

©AK | ID.nl

De deken is heel zacht (fleece) en ziet er luxueus uit. Geen deken die je na gebruik opbergt omdat hij lelijk staat in je interieur, maar echt een deken om standaard op de bank te hebben liggen. Een fijn idee daarbij is dat er een veiligheidssysteem is ingebouwd: bij een storing schakelt de deken automatisch uit. Ook wanneer hij drie uur heeft aangestaan, schakelt hij automatisch uit. Dat voorkomt dat je hem zelf vergeet uit te zetten. Scheelt weer op je energierekening! Niet veel, want een gemiddelde warmtedeken verbruikt ongeveer 100 watt per uur. Na drie uur is dat dus ongeveer 0,3 kWh. Bij een gemiddelde elektriciteitsprijs van 0,28 euro per kWh (niveau november 2025; bron: ANWB) kom je uit op net iets meer dan 9 cent. Dat is veel goedkoper dan drie uur de kachel aan… 

Eindoordeel:🔥🔥🔥🔥🔥

Wil je je gasrekening deze winter laag houden? Dan is de HD 82 Stockholm een must-have. We hebben aan deze warmtedeken geen enkel minpunt kunnen ontdekken. Heerlijk warm en supercomfortabel: het liefst zouden we er heel de winter onder willen bivakkeren.

ProductSoortAantal warmtestandenOplaadbaarAutomatische uitschakelingWasbaar
HK 145 Cosy Weight Green PlanetWarmtemat6NeeJa, na 90 minutenJa
HK 77 HeatyWarmtekussen3JaJa, na 90 minutenJa (kussenhoes)
FWM 45Voetenwarmer2 (+ 2 massagestanden)NeeNeeJa (teddy voetenzak)
Beurer HD 82 StockholmElektrische bovendeken6NeeJa, na 3 uurJa
▼ Volgende artikel
FRITZ! introduceert compacte wifi 7-stopcontactset voor sneller internet in huis
© FRITZ!
Huis

FRITZ! introduceert compacte wifi 7-stopcontactset voor sneller internet in huis

FRITZ! heeft de Mesh Set 1700 uitgebracht, een nieuwe wifi 7-oplossing die je gewoon in het stopcontact prikt. De compacte set bestaat uit kleine repeaters die samen één groot draadloos netwerk vormen, bedoeld om in elke hoek van het huis snel en stabiel internet te bieden.

De set draait om de vernieuwde FRITZ!Repeater 1200 AX, nu uitgerust met wifi 7 en goed voor snelheden tot 3.600 Mbit/s op de 2,4- en 5GHz-banden – een toename van ongeveer 600 Mbit/s ten opzichte van het vorige model. Dankzij multigigabit-wifi kunnen meer apparaten tegelijk verbonden zijn zonder dat de snelheid merkbaar daalt. De nieuwe wifi 7-functie Multi-Link Operation maakt het mogelijk om data gelijktijdig via beide frequentiebanden te versturen, wat de stabiliteit verder verbetert. Voor vaste apparaten is er bovendien een gigabitpoort aanwezig.

Omdat de repeaters direct in het stopcontact worden gestoken, nemen ze nauwelijks ruimte in en zijn ze eenvoudig te installeren. Gebruikers kunnen kiezen voor een set met twee of drie repeaters, afhankelijk van de grootte van de woning. De FRITZ!Mesh Set 1700 werkt het best samen met een FRITZ!Box, maar kan ook worden gekoppeld aan routers van andere merken. In dat geval fungeert de eerste repeater als centrale wifi-regelaar.

Goed om te weten: alle FRITZ!Box-routers en repeaters worden in Europa geproduceerd, krijgen vijf jaar garantie krijgen en ontvangen gratis beveiligings- en functie-updates.

Beschikbaarheid

De FRITZ!Mesh Set 1700 is per direct verkrijgbaar als set van twee of drie repeaters. De afzonderlijke repeater is ook los te koop onder de naam FRITZ!Repeater 1700.

Wat doet Multi-Link Operation?

Multi-Link Operation is een technologie specifiek binnen wifi 7 waarmee apparaten gelijktijdig gebruikmaken van meerdere frequentiebanden. Hierdoor kan data sneller en stabieler worden verzonden, vooral bij druk gebruik van het netwerk.