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 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 .

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 .

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 .

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 .

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 .

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
Logitechs Superstrike-gamingmuis is inderdaad sneller dan de rest
Huis

Logitechs Superstrike-gamingmuis is inderdaad sneller dan de rest

Fabrikanten claimen graag een revolutionaire techniek te hebben uitgevonden, al helemaal als het gameaccessoires betreft. Vaak zijn de verbeteringen minimaal, maar met de Pro X2 Superstrike heeft Logitech daadwerkelijk een technologische doorbraak gemaakt – die in de handen van professionele spelers absoluut verschil kan maken.

Fantastisch
Conclusie

De Logitech Pro X2 Superstrike is oprecht een indrukwekkend stukje techniek die in de juiste handen daadwerkelijk betere gameprestaties oplevert. Voor de gemiddelde speler is het echter vooral een hele luxe muis.

Plus- en minpunten
  • Revolutionaire kliktechniek voelt daadwerkelijk snel
  • Software biedt veel opties en visualisatie
  • Snelste sensor op de markt
  • Scrolwiel is opvallend ‘gemiddeld’
Column AColumn B
Afmetingen125 × 63,5 × 40 mm
Gewicht61 gram
Aantal knoppen5
Ingebouwd geheugenJa (voor geavanceerde functies is Logitech G HUB-software vereist; te downloaden via logitechg.com/ghub)
SensorHero 2
Resolutie (tracking)100–44.000 DPI
Maximale versnelling88 G
Maximale snelheid888 IPS
Maximale bekabelde rapportagesnelheid1000 Hz (1 ms)
Maximale LIGHTSPEED-rapportagesnelheid8000 Hz (0,125 ms)
TrackingGeen vertraging, versnelling of filtering
BatterijduurTot 90 uur
VereistenOptionele internettoegang voor Logitech G HUB-software
CompatibiliteitWindows of macOS met een beschikbare USB 2.0-poort of hoger

Bij nieuwe gamemuizen richt men zich vaak op de vorm, het gewicht of de sensor. Want sneller is volgens bedrijven altijd beter. In de praktijk zijn sensorsnelheden de menselijke limieten allang overschreden, en betekenen statistieken over dots per inch (dpi) en polling rate (hoe vaak de muis per seconde gegevens naar een pc stuurt) in de praktijk weinig. De Superstrike richt zich echter op een onderontwikkeld gebied: de muisklik zelf.

Geen echte klik

Muisknoppen werken namelijk met schakelaars, mechanisch of optisch. Die eerste is de klassieke muisklik met bijkomend gevoel en geluid, die tweede op basis van een infraroodsensor die sneller en duurzamer moet zijn. In beide gevallen kent de schakelaar echter twee standen: aan of uit. De beweging daartussen wordt normaal gesproken dus niet geregistreerd.

Logitechs grote vernieuwing zit hem dan ook in het zogenaamde haptive indictive trigger system, dat in staat is om de afgelegde weg van uit naar aan, en weer terug vast te leggen dankzij een magnetisch inductiesysteem. Met andere woorden: omdat er geen fysiek contact is zoals bij een traditionele schakelaar, kan een ‘klik’ veel eerder worden vastgelegd en zijn spelers fysiek sneller – volgens Logitech tot zeker 30 milliseconden.

Daarvoor moet je wel even in de GHUB-software duiken, Logitechs programma voor game-accessoires. De instellingen voor de X2 Superstrike zijn daarbij verrassend simpel en goed gevisualiseerd. Je hebt de beschikking over tien registratiepunten en vijf resetpunten: allemaal van invloed op hoe snel respectievelijk een klik en een ‘uitklik’ worden geregistreerd. Hoe hoger je registratieniveau, hoe langer je vinger en knop moeten bewegen voordat een klik wordt geregistreerd.

Voor e-sporters en zeer fanatieke gamers is het omgekeerde natuurlijk relevant: hoe lager je niveau, hoe sneller je klikt. In de praktijk is dat verrassend merkbaar: zet de muis op z’n snelst, en je vinger een haartje bewegen levert al een klik op. Test je dit met een pure kliks-per-seconde-test, dan klik je met wat oefening inderdaad sneller ten opzichte van een traditionele muis.

Voor wie?

De vraag is echter voor wie die kliksnelheid relevant is, en hoe dat zich naar de praktijk vertaalt. In feite is de muisklik uiteraard slechts één factor in je reactietijd tijdens bijvoorbeeld Counter-Strike 2. Fysieke reactietijd, beeldschermvertraging, server-ping: er zijn voldoende andere factoren die bepalen hoe snel je in een game reageert. E-sporters zijn nu eenmaal al veel sneller dan de gemiddelde speler.

In de praktijk is de invloed van het nieuwe systeem daarom lastig aan te tonen. Ja, de muis voelt heel snel, zeker na wat oefening. Al gauw blijkt namelijk dat je vrij eenvoudig per ongeluk klikt – al helemaal als je hem ook buiten games gebruikt - en je die fijne beweging zeer gecontroleerd moet maken. Voor beginners is niveau 3 bijvoorbeeld prettig: het voelt nog steeds snel, maar je geeft niet je positie weg door per ongeluk je wapen te vuren.

Het gevoel van snelheid in combinatie met een rauwe kliksnelheid is voor sommigen misschien al de moeite waard, maar eerlijkheid gebiedt te zeggen dat je als gemiddelde speler geen wonderen mag verwachten. Logitech claimt dat ook reguliere gamers van de Superstrike profiteren, maar in de twee weken dat we de muis testten kunnen we dat nog niet met volledige zekerheid zeggen.

Muisstil

Een bijkomend voordeel is dat de Superstrike behoorlijk stil is – als je dat wilt. De vernuftige trilmotor die een echte muisklik nabootst is namelijk ook af te stellen, waardoor deze ook kan veranderen in een subtiele ‘tik’. Helemaal bijzonder is het uitschakelen van de trilfunctie, waarbij je geen feedback meer krijgt op je kliks en in de gemiddelde game feitelijk blind bent.

Verder heeft de Superstrike alles wat je van een professionele gamemuis mag verwachten: de ultrasnelle Hero 2-sensor met een polling rate van8000 Hz en een maximale snelheid van 888 inch per seconde. De behuizing zelf is met 61 gram niet de lichtste, maar verder zeer luxe afgewerkt met witte en zwarte kleuren, en twee zijknoppen. Qua vorm valt deze verder niet op: hij is rond en voor onze smaak zelfs tamelijk klein, maar blijkbaar precies goed voor de gemiddelde e-sporter.

Slide
Slide
Slide

Het enige wat we op mechanisch vlak nog aan te merken hebben op de muis is dat het scrolwiel grappig genoeg net wat minder ‘premium’ aanvoelt dan de rest van de Superstrike, al zullen de meesten daar in de praktijk weinig van merken.

Maar dat is wel een beetje het punt van de X2 Superstrike: het is daadwerkelijk een topmuis met een baanbrekende technologie, bedoeld voor een kleine groep gamers. In de gemiddelde hand voelt de Superstrike snel aan, maar degenen die hun brood verdienen met het spelen van videogames zullen de grootste voordelen ervan merken – precies waar pro-accessoires voor zijn bedoeld.

De Logitech Pro X2 Superstrike is nu beschikbaar.

▼ Volgende artikel
Nieuwe The Mummy-trailer legt nadruk op horror
Huis

Nieuwe The Mummy-trailer legt nadruk op horror

De eerste volledige trailer van de nieuwe versie van The Mummy is uitgebracht door Warner Bros.

Begin dit jaar verscheen er al een teaser trailer, maar nu valt hieronder dus de eerste volledige trailer van de aankomende bioscoopfilm te bekijken.

De nieuwe film staat volledig los van eerdere The Mummy-films en wordt geregisseerd door Evil Dead Rise-regisseur Lee Cronin. Cronin wil in plaats van de luchtige avonturensfeer uit de The Mummy-films van eind jaren negentig juist de focus op horror leggen.

In de film verdwijnt een jonge dochter van een journalist spoorloos in de woestijn. Acht jaar later keert ze opeens terug, maar ze is overduidelijk niet helemaal dezelfde persoon als voordat ze verdween.

The Mummy draait vanaf 16 april in de bioscoop. Overigens werden onlangs plannen aangekondigd om een nieuwe The Mummy-film met Brendan Fraaser en Rachel Weisz - die ook de hoofdrollen speelden in de film uit 1999 - te maken. Dat staat volledig los van deze film.

Watch on YouTube