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 smartphones met eSim onder de 400 euro
Huis

Waar voor je geld: 5 smartphones met eSim onder de 400 euro

Bij ID.nl zijn we gek op producten waar je niet de hoofdprijs voor betaalt. Een paar keer per week speuren we daarom binnen een bepaald thema naar zulke deals. Op zoek naar een betaalbare smartphone, maar dan wel eentje met een virtuele simkaart? De redactie van ID.nl is voor je op zoek gegaan naar smartphones met een prijskaartje van onder de 400 euro.

Met een eSim ben je niet meer afhankelijk van een fysiek simkaartje en heb je geen gepriegel meer met het plaatsen van je sim in de telefoon. Je kunt daardoor snel van provider wisselen zonder gedoe. Ideaal als je veel op reis bent, omdat je op deze manier eenvoudig internationale abonnementen kunt activeren. Daarnaast kun je op die manier ook gebruik maken van meerdere telefoonnummers op een enkel toestel, bijvoorbeeld eentje voor werk en prive. De mooiste toestellen met eSim en onder de 400 euro vind je hier.

Sony Xperia 10 VI

De Sony Xperia 10 VI is een compacte smartphone met een focus op multimedia. Het 6,1-inch FHD+ OLED-scherm met een 21:9 beeldverhouding is ideaal voor het bekijken van films. Aangedreven door de Snapdragon 6 Gen 1-chipset en uitgerust met 8 GB RAM, biedt het toestel soepele prestaties.

De 48 MP hoofdcamera legt gedetailleerde foto's vast, terwijl de 5000 mAh batterij zorgt voor langdurig gebruik. Met IP68-certificering is het toestel bestand tegen water en stof.

Samsung Galaxy A26 5G

De Galaxy A26 5G combineert een slank ontwerp met krachtige prestaties. Het 6,7-inch FHD+ Super AMOLED-display biedt levendige kleuren en vloeiende beelden dankzij de 120 Hz verversingssnelheid. Onder de motorkap bevindt zich de Exynos 1380-chipset, ondersteund door 4 tot 8 GB RAM, wat zorgt voor soepele multitasking.

De 50 MP hoofdcamera met optische beeldstabilisatie legt scherpe foto's vast, zelfs bij weinig licht. Met een batterijcapaciteit van 5000 mAh en IP67-certificering is dit toestel zowel duurzaam als betrouwbaar. Bovendien belooft Samsung tot zes jaar beveiligingsupdates, wat de levensduur van het apparaat verlengt.

Motorola Edge 60 Fusion 

De Motorola Edge 60 Fusion is een elegant middelklasse-smartphone die indruk maakt met zijn moderne design en degelijke prestaties. Hij beschikt over een indrukwekkend 6,67‑inch pOLED‑scherm met Super‑HD-resolutie (1 220 × 2 712 pixels), 120 Hz ververssnelheid en HDR10+, beschermd door Gorilla Glass 7i — en dat op alle vier de schermranden. De 50 MP hoofdcamera met optische beeldstabilisatie (OIS) en 13 MP ultragroothoeklens leveren scherpe beelden, terwijl de 32 MP frontcamera mooie selfies maakt.

Motorola Moto G35 5G

De Motorola Moto G35 5G biedt solide prestaties voor een betaalbare prijs. Het 6,72-inch LCD-scherm met een verversingssnelheid van 120 Hz zorgt voor vloeiende beelden. De 50 MP Quad Pixel-camera levert scherpe foto's, zelfs bij weinig licht.

Met een batterijcapaciteit van 5000 mAh en ondersteuning voor 5G-connectiviteit blijf je de hele dag verbonden. Hoewel de Unisoc T760-processor niet de snelste is, biedt het toestel voldoende kracht voor dagelijks gebruik.

Samsung Galaxy A35 5G

De Galaxy A35 5G biedt premium functies in een betaalbaar jasje. Het 6,6-inch FHD+ Super AMOLED-display met een verversingssnelheid van 120 Hz zorgt voor heldere en vloeiende beelden. De 50 MP hoofdcamera met optische beeldstabilisatie legt scherpe foto's vast, terwijl de 13 MP selfiecamera zorgt voor duidelijke zelfportretten.

Aangedreven door de Exynos 1380-chipset en beschikbaar met tot 12 GB RAM, biedt het toestel krachtige prestaties. De 5000 mAh batterij ondersteunt 25W snelladen, en Samsung belooft tot vijf jaar beveiligingsupdates.

▼ Volgende artikel
Nieuwe Fairphones standaard geleverd met 'digitaal rijbewijs' voor jongeren
© insta_photos
Huis

Nieuwe Fairphones standaard geleverd met 'digitaal rijbewijs' voor jongeren

Fairphone gaat vanaf deze maand elk nieuw toestel in Europa standaard leveren met ChatLicense, een app die jongeren en ouders helpt verantwoord om te gaan met de eerste smartphone. De samenwerking moet bijdragen aan meer digitale weerbaarheid en sluit aan bij Fairphones missie om technologie niet alleen duurzaam te produceren, maar ook bewust te gebruiken.

ChatLicense is bedoeld voor gezinnen die hun kind een eerste smartphone geven. De app neemt kinderen mee in een leertraject met korte video's, animaties en quizvragen over onderwerpen als sociale media, chat-apps en online veiligheid. Bij elke stap verdienen ze een stukje van hun 'digitale rijbewijs'. Voor ouders is er een begeleidende gids met gespreksstarters en uitleg, zodat het gesprek thuis vanzelf op gang komt. De methode is gebaseerd op onderzoek van de Erasmus Universiteit Rotterdam en legt de nadruk op leren en weerbaarheid, in plaats van alleen beperken en controleren.

Lees hier onze review van de Fairphone 6

Fairphone Moments

Voor Fairphone sluit de samenwerking aan op eerdere stappen richting bewuster gebruik. Bij de introductie van de Fairphone 6 kwam ook Fairphone Moments, een fysieke knop waarmee gebruikers hun toestel direct in een minimalistische modus kunnen zetten. In die stand worden meldingen en apps sterk teruggebracht, zodat schermtijd vanzelf afneemt. Dat blijkt niet alleen handig voor jongeren, maar ook voor volwassenen die wat meer rust zoeken. Met ChatLicense komt daar nu een educatieve laag bovenop, die vooral gezinnen met jonge kinderen helpt bij de eerste kennismaking met een smartphone.

©Fairphone

Zorgen over schermtijd

De timing is niet helemaal toevallig. Steeds meer ouders maken zich zorgen over hoeveel tijd hun kinderen online doorbrengen en of ze wel voldoende zijn voorbereid op risico's als cyberpesten of misleidende informatie. Uit onderzoek blijkt dat kinderen vaak al rond hun tiende of elfde verjaardag een eigen toestel krijgen, terwijl duidelijke afspraken thuis niet altijd aanwezig zijn. Scholen en gemeenten proberen die digitale opvoeding wel te ondersteunen, maar het gesprek blijft in gezinnen vaak lastig. Door ChatLicense standaard mee te leveren bij elk toestel, hoopt Fairphone een praktische drempel weg te nemen en gezinnen direct iets in handen te geven.

Wat is ChatLicense?

ChatLicense werd eind 2023 in Nederland gelanceerd en heeft zich sindsdien uitgebreid naar meerdere Europese landen. De app kreeg goede beoordelingen in de appstores, onder meer door de speelse insteek en het ontbreken van advertenties of dataverzameling voor commerciële doeleinden. Voor veel ouders is dat een geruststelling, omdat juist die afhankelijkheid van techbedrijven vaak een punt van zorg is. De makers benadrukken dat de inhoud in samenwerking met wetenschappers en pedagogen wordt ontwikkeld, zodat kinderen niet alleen technische kennis opdoen, maar ook vaardigheden om bewust en kritisch online te zijn.

©Fairphone

Een bredere standaard

Met de bundeling van ChatLicense en Fairphone krijgen kinderen die hun eerste smartphone ontvangen voortaan dus niet alleen een mooie nieuwe telefoon, maar ook een digitale opleiding. Daarmee gaat Fairphone verder dan alleen het maken van duurzame hardware; het bedrijf wil immers ook bijdragen aan bewuster gebruik van zo'n toestel. Of het daadwerkelijk leidt tot een nieuwe standaard in de industrie, zal de komende jaren moeten blijken. Maar hé, een stukje bewustwording kan natuurlijk sowieso geen kwaad.