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 zéér goedkope soundbars van max 200 euro
© ID.nl
Huis

Waar voor je geld: 5 zéér goedkope soundbars van max 200 euro

Bij ID.nl zijn we dol op kwaliteitsproducten waar je niet de hoofdprijs voor betaalt. Een paar keer per week speuren we binnen een bepaald thema naar zulke deals. Ben je op zoek naar een goedkope soundbar waarmee je het tv-geluid kunt verbeteren? Vandaag hebben we vijf interessante modellen voor je gespot.

Denon DHT-S216

Zoek je een betaalbare soundbar van een bekend hifimerk? In dat geval is de Denon DHT-S216 een interessante kandidaat. Ondanks zijn lage prijskaartje oogt de behuizing erg chic. De stoffen afwerking aan de voorzijde geeft dit audiosysteem een luxe uitstraling. Vanwege de bescheiden hoogte van slechts zes centimeter zet je de DHT-S216 probleemloos voor de meeste televisies neer. Daarnaast kun je het apparaat ook ophangen. Je combineert deze soundbar bij voorkeur met een middelgrote of grote smart-tv, want de behuizing meet 89 centimeter lang.

Een pluspunt is dat je de soundbar op vrijwel elke televisie kunt aansluiten. De achterzijde telt twee HDMI-poorten, een optische ingang en een analoge aansluiting. Dat is erg netjes voor een product in deze prijsklasse. Mooi meegenomen is dat de DHT-S216 videostreams met een meerkanaals audiospoor kan verwerken, zoals Dolby Digital en DTS Virtual:X. De betere films en series klinken hierdoor ruimtelijk. Verder kun je ook nog muziek streamen. Koppel een smartphone of tablet via bluetooth en kies in een willekeurige muziek-app een leuke afspeellijst.

JBL Bar 2.0 All-in-One MK2

Deze compacte soundbar van JBL matcht prima met een wat kleinere televisie. De strak vormgegeven behuizing meet namelijk 61,4 × 5,6 × 9 centimeter. Nuttig voor wie bijvoorbeeld het geluid van een slaapkamer-tv wil upgraden. Met een uitgangsvermogen van 80 watt is de Bar 2.0 All-in-One MK2 behoorlijk krachtig. Je verbindt dit audiosysteem via HDMI of een optische ingang met een beeldbuis. Bij geschikte films, series en tv-programma’s kan de soundbar een Dolby Digital-audiospoor verwerken. Verder is er een bluetooth-adapter ingebouwd, waardoor je rechtstreeks vanaf een mobiel apparaat liedjes streamt.

De Bar 2.0 All-in-One MK2 is maar 5,6 centimeter hoog, zodat hij waarschijnlijk niet jouw tv-scherm blokkeert. Ophangen kan trouwens ook, want de fabrikant levert een eenvoudige muurmontageset mee. Gebruik voor de bediening de knoppen bovenop de behuizing of de inbegrepen afstandsbediening. Benieuwd naar ervaringen van andere gebruikers? Deze onafhankelijke reviewers komen tot een gezamenlijk oordeel van een 8,2.

Bose TV Speaker

Normaal gesproken hebben producten van de Britse audiospecialist Bose een behoorlijke prijs, maar dat valt bij deze soundbar alleszins mee. Een enkele webshop duikt zelfs net onder de prijsgrens van tweehonderd euro. Buiten een schappelijk prijskaartje heeft de Bose TV Speaker ook nog eens een goede reputatie. Zo krijgt dit product van ruim dertig Kieskeurig.nl-bezoekers een gemiddelde beoordeling van een 8,3. Een pluspunt is dat je het apparaat op verschillende manieren met een televisie kunt verbinden. Kies tussen HDMI, de optische aansluiting of de analoge 3,5mm-geluidsingang. Een nuttige functie is dat je met de dialoogfunctie menselijke stemmen kunt versterken. Daarnaast heeft de afstandsbediening een knop om het basniveau op te voeren.

Zoals je van een Bose-product mag verwachten, leent het audiosysteem zich ook goed voor het luisteren van muziek. Verbind een smartphone of tablet via bluetooth en laat je favoriete afspeellijsten op deze soundbar los. Met een maximaal vermogen van honderd watt realiseert de TV Speaker in een kleine tot middelgrote kamer een vol geluid. De stijlvolle behuizing is voor soundbar-begrippen erg compact. Zo bedragen de afmetingen slechts 59,4 × 5,6 × 10,2 centimeter. Houd er rekening mee dat de fabrikant geen HDMI-kabel meelevert.

Lees ook: Zo vind je de ideale soundbar voor jouw televisie

Sharp HT-SBW182

De Sharp HT-SBW182 is een goedkope soundbar met een losse subwoofer. Je zet deze basspeaker neer op een willekeurige plek op de vloer. Een kabel trekken is niet nodig, want de subwoofer communiceert draadloos met de soundbar. Logischerwijs is dit audiosysteem een goede keuze voor liefhebbers van een flinke portie bas. De HT-SBW182 voorziet films en series van een diepe laagweergave. Het totale vermogen bedraagt maximaal 160 watt, waardoor je het volume flink kunt opschroeven.

Met een lengte van 74 centimeter is deze soundbar niet zo lang. Je kunt hem met een kleine of middelgrote smart-tv combineren. Verbind beide apparaten met een optische kabel of HDMI-snoertje. Daarnaast is er nog een analoge 3,5mm-audiopoort. Tot slot bevindt zich in de behuizing een bluetooth-ontvanger, zodat je muziek vanaf een mobiel apparaat kunt streamen. Je past met de aanwezige equalizer de geluidsinstellingen naar eigen smaak aan.

TCL S45H

TCL timmert in de drukbezette televisiemarkt de laatste jaren stevig aan de weg. Bij ID.nl zijn we gek op producten die veel bieden voor weinig, en de TCL S45H (ook wel S45HE) past perfect in dat plaatje. Voor een bedrag ver onder de honderd euro haal je met deze soundbar een flinke audio-upgrade in huis. Verwacht geen losse subwoofer die de vloer laat trillen; dit is een compact 2.0-kanaals alles-in-één systeem. Toch weet TCL indruk te maken met ondersteuning voor zowel Dolby Atmos als DTS Virtual:X, features die je doorgaans pas in veel duurdere modellen terugvindt.

Dankzij het slimme ‘Dual Bass’-systeem en de speciale akoestische kamers klinken films en series een stuk voller en ruimtelijker dan via je standaard tv-speakers. Bovendien is hij met HDMI eARC, optische aansluiting en Bluetooth 5.2 helemaal bij de tijd. Zoek je een betaalbare oplossing voor de slaapkamer of een kleine woonkamer zonder gedoe met extra kabels en kasten? Dan biedt dit model absoluut waar voor je geld.

▼ Volgende artikel
Vingerafdruk, pincode of gezichtsherkenning: wat is het veiligste manier om je smartphone te beveiligen?
© ID.nl
Huis

Vingerafdruk, pincode of gezichtsherkenning: wat is het veiligste manier om je smartphone te beveiligen?

Je smartphone is tegenwoordig veel meer dan een telefoon; het is de kluis van je digitale leven. Bankzaken, privéfoto's, e-mails en locatiegegevens: het staat er allemaal op. Het goed beveiligen van die toegang is dus geen overbodige luxe. Maar kies je voor het ouderwetse wachtwoord, je vingerafdruk of toch je gezicht? Wij leggen de voor- en nadelen van elke methode naast elkaar.

De klassieker: pincode of wachtwoord

Elke telefoon vraagt erom bij het opstarten: een code. Dit is de basisbeveiliging. Zonder code kun je vaak geen gezichtsherkenning of vingerafdruk instellen. Maar is het ook de beste methode voor dagelijks gebruik?

©ID.nl

Pincode of wachtwoord: de voordelen

• Veiligheid in eigen hand

Het sterke aan een code is dat het in je hoofd zit. Maar een code als 1234 of 0000 is zo gekraakt. Maar kies je voor een langere cijferreeks? Dan is het voor iemand die je smartphone in handen krijgt digitaal gezien nagenoeg onmogelijk om de code te kraken. Voeg je ook letters toe, (zie kader), dan is dit digitaal gezien de moeilijkste methode om te kraken.

• Juridisch sterker

Een interessant weetje: in veel rechtsgebieden val je met een toegangscode onder het zwijgrecht. De politie mag je vaak niet dwingen je code af te staan. Je vinger op een scanner leggen kan in sommige situaties wel als dwangmiddel worden ingezet.

💡 Tip: Gebruik letters voor extra veiligheid

Veel mensen denken dat ze bij het vergrendelen van hun telefoon vastzitten aan een cijfercode, maar dat is niet zo. Je kunt ook kiezen voor een alfanumeriek wachtwoord (een combinatie van cijfers, letters en tekens). Dit is vele malen moeilijker te kraken dan een traditionele cijfer-pincode.

Zo stel je het in:

iPhone: Ga naar Instellingen > Face ID en toegangscode > Wijzig toegangscode. Tik vervolgens op het blauwe tekstje 'Toegangscode-opties' en kies voor 'Aangepaste alfanumerieke code'.

Android: Ga naar Instellingen > Beveiliging > Schermvergrendeling. Kies hier niet voor 'Pincode', maar voor de optie 'Wachtwoord'.

Pincode of wachtwoord: de nadelen

• Afkijken

Iemand die in de trein over je schouder meekijkt, heeft je pincode zo gezien. Ook vette vingers op het scherm kunnen je patroon verraden.

• Gemak

Tachtig keer per dag een lange code intikken gaat vervelen. Mensen kiezen daardoor vaak voor een te simpele code, en dat maakt het juist onveilig.

©ID.nl

2. Lekker snel (maar niet altijd even veilig): vingerafdrukscanner

De vingerafdrukscanner is mateloos populair vanwege het enorme gebruiksgemak: in één soepele beweging pak je je telefoon en ben je vrijwel direct binnen. Toch is het belangrijk om te weten dat de ene scanner de andere niet is en dat dit systeem zowel sterke als zwakke punten heeft.

Vingerafdrukscanner: de voordelen

• Snelheid

Het is vaak de snelste manier om je telefoon te openen, zeker als de scanner in de aan-knop verwerkt zit.

• Betrouwbaarheid (bij de juiste techniek)

Heb je een toestel met een fysieke scanner (achterop/zijkant) of een moderne ultrasone scanner (zoals in de Samsung S-serie)? Dan is de beveiliging uitstekend. Ultrasone scanners maken een 3D-map van je vinger en zijn zeer moeilijk te foppen.

Vingerafdrukscanner: de nadelen

• Natte vingers en pleisters

Heb je natte handen? Dan weigeren veel scanners dienst. Ook met een pleister om je vinger herkent de telefoon je niet. Tip: zorg daarom dat je vingerafdrukken van allebei je handen opslaat.

• Ongewenste toegang

Een klein (maar reëel) risico is dat iemand toegang krijgt terwijl je slaapt of bewusteloos bent, door voorzichtig je vinger op de scanner te leggen.

• Onveilige optische scanners

Veel budget-telefoons hebben een 'optische scanner' onder het scherm. Deze maakt een 2D-foto van je vinger. Dit is minder veilig en makkelijker te foppen dan de ultrasone varianten.

©ID.nl

Gezichtsherkenning: gemak of schijnveiligheid?

Telefoon ontgrendelen door ernaar te kijken voelt als magie. Maar pas op: hier zit de grootste valkuil voor consumenten.

Gezichtsherkenning: de voordelen

• Ultiem gemak

Je hoeft niets aan te raken. Kijken is openen. Ideaal als je bijvoorbeeld handschoenen draagt in de winter.

• Extreem veilig (alleen bij 3D)

Heb je een iPhone (FaceID) of een dure Android met 3D-sensoren? Dan worden er duizenden onzichtbare puntjes op je gezicht geprojecteerd om diepte te meten. Dit is amper te misleiden.

Gezichtsherkenning: de nadelen

• Schijnveiligheid (bij 2D)

Veel goedkopere Android-telefoons gebruiken simpelweg de selfiecamera (2D-herkenning). Dit is niet veilig. Soms is een foto van jou (van Facebook of Instagram) al genoeg om in te breken. Gebruik dit type gezichtsherkenning zeker nooit voor je bank-app.

• Toegang tijdens slaap

Als je niet oplet, kan iemand je telefoon voor je gezicht houden terwijl je slaapt om hem te ontgrendelen. Tip: Zet in de instellingen altijd de optie "Aandacht vereist" of "Ogen open" aan. Dan werkt het alleen als je echt naar het scherm kijkt.

Hoe zit het met privacy?

Een veelgehoorde zorg: "Ik wil niet dat mijn biometrische gegevens in de cloud staan." We kunnen je geruststellen. Bij moderne smartphones worden je gezicht of vinger lokaal opgeslagen in een speciale, zwaarbeveiligde chip in de telefoon (de Secure Enclave). Deze data verlaat je telefoon nooit. Er wordt ook geen foto van je vinger opgeslagen, maar een versleutelde wiskundige code. Zelfs als de servers van de fabrikant gehackt worden, liggen jouw biometrische gegevens niet op straat.

Vingerafdruk, pincode of gezichtsherkenning: wat is het best?

Wat de slimste keuze is, hangt volledig af van je toestel. Heb je een iPhone of een high-end Android-telefoon met 3D-scan? Dan kun je gerust gebruikmaken van gezichtsherkenning; dat is niet alleen snel en makkelijk, maar ook veilig. Bezit je echter een middenklasse- of budgettoestel, kies dan liever voor de vingerafdrukscanner. De gezichtsherkenning op deze modellen is namelijk vaak onveilig.

Vergeet ook de basis niet: zorg altijd voor een sterke toegangscode (liefst alfanumeriek of langer dan vier cijfers) als back-up. Start je telefoon bovendien af en toe opnieuw op. Hierdoor wordt de biometrische beveiliging tijdelijk uitgeschakeld, waardoor je telefoon op zijn veiligst is.

📱Ook interessant: Help! Ik ben het wachtwoord van mijn Apple ID vergeten


Bescherm je smartphone optimaal met een stevig telefoonhoesje.

Zo blijft je toestel in topconditie, hoe je het ook ontgrendelt!