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 waterdichte smartwatches met GPS-functie
Gezond leven

Waar voor je geld: 5 waterdichte smartwatches met GPS-functie

Bij ID.nl zijn we dol op kwaliteitsproducten waar je niet de hoofdprijs voor betaalt. Daarom speuren we een paar keer per week binnen een bepaald thema naar zulke deals. Wanneer je met een smartwatch je gezondheid in de gaten wilt houden en bijvoorbeeld tijdens activiteiten je hartslag wilt meten, is het handig als zo'n slim horloge ook waterdicht is. En met een GPS-functie kun je ook goed bijhouden welke afstand je hebt afgelegd.

Een smartwatch is meer dan alleen een horloge: het is een slimme assistent om je pols. Met een smartwatch kun je eenvoudig meldingen van je smartphone ontvangen, zoals berichten, oproepen en agenda-afspraken. Veel modellen bieden daarnaast functies zoals stappentellen, hartslagmeting, slaapregistratie en GPS-tracking. Dat maakt ze ideaal voor wie zijn gezondheid en activiteiten wil bijhouden. Sommige horloges ondersteunen zelfs contactloos betalen of muziekbediening, zodat je minder vaak je telefoon uit je zak hoeft te halen.

Een ander belangrijk voordeel is de waterbestendigheid, wat bij smartwatches wordt aangeduid met een zogeheten ATM-classificatie. ATM staat voor 'atmosfeer' en geeft aan hoe hoog de druk op het horloge mag zijn. Een smartwatch met 5 ATM is bijvoorbeeld bestand tegen waterdruk die overeenkomt met 50 meter diepte. Dat betekent dat je ermee kunt douchen, zwemmen of in de regen lopen, maar dat de watch niet per se geschikt is voor diepzeeduiken.

Amazfit Cheetah Square

De Amazfit Cheetah Square is een smartwatch met een rechthoekig AMOLED-scherm van 1,75 inch. Het model biedt uitgebreide sportondersteuning met meer dan 150 modi en beschikt over dual-band GPS voor nauwkeurige plaatsbepaling. Daarnaast zijn er sensoren voor hartslag, SpO₂ (het percentage zuurstof in je bloed dat via een saturatiemeter wordt gemeten, en aangeeft hoeveel van je rode bloedcellen verzadigd zijn met zuurstof), slaap en stress. De behuizing is lichtgewicht en de horlogeband is van siliconen. De waterdichtheid van 5 ATM maakt hem geschikt voor gebruik in het water. De batterijduur varieert afhankelijk van het gebruik, met tot 8 dagen bij gemiddeld gebruik en tot 28 uur met GPS ingeschakeld.

🚿 Waterdichtheid: 5 ATM
🔋 Typische gebruiksduur
: Tot 8 dagen
📱 Schermdiagonaal
: 1,75 inch

Huawei Watch Fit 2

De Huawei Watch Fit 2 is een relatief compacte smartwatch met een AMOLED-display van 1,74 inch. Het model ondersteunt verschillende trainingsmodi en beschikt over sensoren voor onder andere hartslag, SpO₂ en slaapmonitoring. Hoewel deze watch geen ingebouwde GPS heeft, maakt hij gebruik van verbonden GPS via een smartphone. De batterijduur is met maximaal 10 dagen redelijk lang. De smartwatch is waterbestendig tot 5 ATM en is beschikbaar in verschillende edities en kleuren.

🚿 Waterdichtheid: 5 ATM
🔋 Typische gebruiksduur
: Tot 10 dagen
📱 Schermdiagonaal
: 1,74 inch

Fitbit Sense 2

De Fitbit Sense 2 biedt een combinatie van gezondheidsmetingen, zoals een ECG-app, cEDA-sensor voor stressdetectie en SpO₂-metingen. Het horloge is uitgerust met een 1,58 inch AMOLED-scherm en een ingebouwde GPS. De batterij gaat bij normaal gebruik ongeveer 6 dagen mee. Daarnaast is de Sense 2 waterbestendig tot 50 meter (5 ATM). Het model ondersteunt contactloze betalingen via Fitbit Pay, maar mist functies zoals muziekopslag of volledige ondersteuning voor apps van derden.

🚿 Waterdichtheid: 5 ATM
🔋 Typische gebruiksduur
: Tot 6 dagen
📱 Schermdiagonaal
: 1,58 inch

Garmin Venu 2

De Garmin Venu 2 heeft een 1,3 inch AMOLED-display en legt de nadruk op gezondheid en sport. De smartwatch beschikt over onder meer hartslagmeting, ademhalingsregistratie, Body Battery, stressmeting en Pulse Ox. GPS is ingebouwd, en de batterij gaat tot 11 dagen mee in smartwatch-modus. Bij gebruik van GPS en muziek is dit korter. Het horloge is waterdicht tot 5 ATM, wat standaard is voor dit soort toepassingen.

🚿 Waterdichtheid: 5 ATM
🔋 Typische gebruiksduur
: Tot 11 dagen
📱 Schermdiagonaal
: 1,3 inch

OnePlus Watch 2

De OnePlus Watch 2 draait op Wear OS 4 en gebruikt een dubbele chipsetstructuur om prestaties en batterijduur te balanceren. Met een 1,43 inch AMOLED-scherm, ondersteuning voor dual-band GPS, en sensoren voor hartslag en slaap is hij geschikt voor dagelijks gebruik. De batterijduur is echter niet heel lang, maar het horloge is wel IP68-gecertificeerd en bestand tegen waterdruk tot 5 ATM.

🚿 Waterdichtheid: IP68 / 5 ATM
🔋 Typische gebruiksduur
: Tot 100 uur
📱 Schermdiagonaal
: 1,43 inch

▼ Volgende artikel
Review Harman Kardon Enchant 1100 – Stijlvolle en detailrijke Atmos-soundbar
© Harman Kardon
Huis

Review Harman Kardon Enchant 1100 – Stijlvolle en detailrijke Atmos-soundbar

De Enchant 1100 is de nieuwste top-soundbar van Harman Kardon. Ondersteuning voor Dolby Atmos en een streepje Scandi-design maken het een interessante optie.

Fantastisch
Conclusie

De Enchant 1100 is een soundbar die zeer gelikt oogt en sterk presteert. Kamervullend de soundtrack van een film of tv-serie neerzetten doet hij goed, net als muziek afspelen. Zonder extra apparaten levert de Harman Kardon al een topprestatie, waarbij detail en helderheid de grootste troeven zijn. Spraak en geluidseffecten klinken duidelijk en zijn goed gepositioneerd. Al mag het niet een basmonster zijn, je wordt goed ondergedompeld in een film.

Plus- en minpunten
  • Scherpe prijs (voor een topmodel)
  • Minimalistisch design
  • Brengt geluid breed in de kamer
  • Heldere app en installatie
  • Goede helderheid en plaatsing van geluidseffecten
  • Kalibratiefunctie (enkel soundbar) is heel effectief
  • Textiel trekt stof aan
  • Kalibratie niet beschikbaar met extra subwoofer

De grotere Enchant 1100 soundbar werd begin dit jaar samen met de kleinere Enchant 900 voorgesteld. Het is een echt topmodel dat veel speakers inzet om omhullende 3D-geluid te bieden, inclusief twee aan de bovenzijde. Dit is niet de eerste of enige soundbar van Harman Kardon die de naam 'Enchant' draagt, maar eigenlijk lijkt hij meer op de voorgaande Citation-reeks van Harman Kardon. Citation was bedoeld als een volledig antwoord op Sonos, met multiroom-functionaliteit en met een design dat luxueuze textiel van Kvadrat toepaste. 

De Enchant 1100 neemt veel van de Citation-eigenschappen over, waaronder het design (maar zonder Kvadrat-stofjes) en de uitbreidbaarheid. Hij gebruikt ook een knappe techniek van Harman, Multibeam, om geluid breed de kamer in te sturen. Met ondersteuning voor Dolby Atmos en DTS:X, veel streamingopties, een extra HDMI-ingang (geschikt voor 4K en Dolby Vision) en uitbreidingsopties spreken we hier over een veelzijdige soundbar. 

©Jamie Biesemans

Uitbreiden met speakers kan

Wie meer wil, kan de Enchant 1100 uitbreiden met de Enchant Sub (adviesprijs 399 euro) en/of een paar Enchant-draadloze speakers (adviesprijs 229 euro/stuk). Het is daarmee een directe uitdager van de Sonos Arc Ultra, nog een topmodel dat je op eigen tempo kunt uitbreiden met extra speakers. De Harman Kardon is wel nog iets scherper geprijsd. Het koppelen met speakers in andere kamers kan via Google Cast of AirPlay 2. Een pluspunt: dat kan ook met luidsprekers van verschillende merken.

Zacht en harmonieus design

Ontsnappen aan de klassieke balkvorm van een soundbar doet de Enchant 1100 niet. Maar omdat de afgeronde behuizing helemaal bedekt is door een fraai zwart stofje en verder geen opvallende elementen toont, verdwijnt hij netjes in de achtergrond. Minimalisme ten top, totdat je het volume of een optie aanpast. Dan zie je een grote display in een coole dotmatrix-stijl oplichten. Dat zorgt dan weer voor vleugje retro-gevoel. In tegenstelling tot bij de Citation-soundbars, lijkt er deze keer geen lichtgrijze versie te bestaan.

Onder het strakke uiterlijk zitten aardig wat speakers verborgen: elf stuks. Twee daarvan zitten bovenaan en zorgen voor de driedimensionale geluidservaring. De Enchant 1100 is slechts 6,5 cm hoog en kan dus bij een tv op een voet geplaatst worden. Maar het beste resultaat krijg je als je hem 10 à 20 cm vóór het scherm zet, zodat de bovenliggende speakers vrij naar het plafond gericht zijn. Ook de zijkanten moeten helemaal vrij blijven. Aan elke zijde is er een opening waar je een speaker kunt zien; die zorgen voor een heel breed geluidsbeeld rond de tv.

©Harman Kardon

Aan weerszijden is er een opening met een tweeter die schuin gemonteerd is.

Ontspannen kan ook

In de doos vind je een kleine afstandsbediening, maar je kunt ook de Harman Kardon One-app gebruiken. Welke optie je ook kiest: het volume regelen, een aantal audio-instellingen veranderen en muziek pauzeren zijn mogelijk. Een unieke optie heet Moment, dat zelfs zijn eigen knop op de remote heeft.

Als je hierop drukt, rollen er uit de soundbar rustgevend geluiden. Je kunt via de app kiezen of je dan even kunt relaxen met het geluid van regen, een bos of de zee. Misschien wel leuk voor meditatieoefeningen, maar wel een apart iets om zo'n prominente plek te geven.

Muziek spelen kan op vele manieren

In een app kun je muziek en internetradio afspelen van bepaalde diensten, waaronder Amazon Music, Napster, Qobuz, Tidal en TuneIn. Bij Amazon en Tidal wordt zelfs het afspelen van muziek in Dolby Atmos-formaat ondersteund, dat kom je zelden tegen.

In het lijstje ontbreken natuurlijk heel wat belangrijke diensten, zoals Apple Music of Spotify. Ze afspelen kan echter makkelijk via AirPlay, Chromecast of Spotify Connect. De soundbar kan ook bediend worden met Roon, de audiofiele muzieksoftware van een Harman Kardon-zusterbedrijf die vooral in de hifi-wereld wordt gebruikt. Ten slotte is de Enchant 1100 uitgerust met bluetooth. Manieren genoeg dus om muziek af te spelen.

Eenvoudige installatie

Het instellen van de Enchant 1100 gebeurt via de One-app. Een visueel stappenplan maakt het heel eenvoudig. Wat je ook in de app (of via de remote) kunt doen is het geluid "kalibreren". De soundbar verspreidt dan twintig seconden luide testgeluiden om zo de woonkamer te leren kennen. Na deze meting wordt de weergave aanpast zodat de soundbar beter klinkt. Zo'n functie wordt stilaan standaard op een high-end soundbar; hier blijkt het zeer effectief in het balanceren van bassen en helderheid. 

©Jamie Biesemans

In de Harman Kardon One-app vind je heldere uitleg.

Geslaagd in 3D

Bij het bekijken van demovideo's van Dolby en een aantal filmfragmenten valt in de eerste plaats de zuivere weergave van de Enchant 1100 op. Het klinkt luchtig en ruim, waardoor geluidseffecten los in de kamer verschijnen. Bij de Shattered-demo bewegen de geluiden van brekend glas echt van rechts naar ver links.

©Jamie Biesemans

De Enchant 1100 heeft goede dialogenweergave.

Ook bij drukke actiescènes, zoals tijdens de finale veldslag op Scarif in Star Wars: Rogue One – waarvan Andor op Disney+ de prequel vormt – houdt de Harman Kardon een goede controle. Het is een goed resultaat dat vooral heel detailrijk en gebalanceerd overkomt, met name na de kalibratie. Wel is het in onze woonkamer wat minder 'cinematisch' (of je mag ook zeggen 'bombastisch') bij bijvoorbeeld de race in Ready Player One. Je wordt wel omgeven door geluid, inclusief hoog boven de tv, dat wel. Maar het is niet zo knallend of dynamisch als bij bijvoorbeeld JBL.

Een subwoofer erbij of niet?

Het toevoegen van een subwoofer of extra speakers kan daar iets aan doen. Dat verloopt eveneens via de app. Je hebt er wel even tijd voor nodig, want elk toestel moet met de wifi verbonden worden. Vervolgens moet er nog een update worden geïnstalleerd, wat ook even kan duren. Ten slotte combineer je bijvoorbeeld de Enchant 1100 met de Enchant Sub via de app. Dat ging tijdens het testen vlot, en de app maakt het proces ook heel transparant. Wel spijtig: de kalibratiefunctie werkt niet langer als je een sub toevoegt aan een soundbar. Hopelijk komt die mogelijkheid er nog.

©JORDI HUISMAN

De Enchant Sub zet je bij voorkeur naast de soundbar.

Mét Enchant Sub wordt de Enchant 1100 een stukje spectaculairder, al blijft het vooral het mooie detail en de controle die indruk maken bij het zeer intense vuurgevecht in het Witte Huis in Civil War. Dit zijn goede prestaties, ook voor gaming. Toch is de stap naar een extra sub geen verplichting. De Enchant Sub is niet zo krachtig of verfijnd, dus in een kleinere woonkamer ga je aan de soundbar zelf voldoende hebben. Positief wel is dat die Sub vergeleken met optionele subs bij sommige concurrenten relatief goedkoop is.

Conclusie

De Enchant 1100 is een soundbar die zeer gelikt oogt en sterk presteert. Kamervullend de soundtrack van een film of tv-serie neerzetten doet hij goed, net als muziek afspelen. Zonder extra apparaten levert de Harman Kardon al een topprestatie, waarbij detail en helderheid de grootste troeven zijn. Spraak en geluidseffecten klinken duidelijk en zijn goed gepositioneerd. Al mag het niet een basmonster zijn, je wordt goed ondergedompeld in een film.