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
Super Mario-medley wint een Grammy
Huis

Super Mario-medley wint een Grammy

Een medley gebaseerd op soundtracks uit Super Mario-games van het Jazzorkest 8-Bit Big Band heeft afgelopen zondagnacht een Grammy gewonnen.

De medley ‘Super Mario Praise Break’ won een Grammy Award voor beste arrangement (instrumentaal of a capella). In de medley zijn nummers als Gusty Garden Galaxy uit Super Mario Galaxy en Bomb-Omb Battlefield uit Super Mario 64 te horen.

De 9-Bit Big Band is afkomstig uit New York en heeft al eens eerder een Grammy gewonnen voor gamemuziek. In 2022 won het orkest een Grammy voor het nummer Meta’s Knight’s Revenge uit de SNES-game Kirby Superstar.

View post on X

De Grammy Awards

De Grammy Awards worden al sinds 1959 georganiseerd en worden gezien als een van de belangrijkste prijzen voor muziek ter wereld. Ze worden vaak vergeleken met de Oscars, die worden uitgereikt aan films. Dit jaar won Bad Bunny de prijs van album van het jaar, en ging Billie Eilish er vandoor met een Grammy voor nummer van het jaar. Overigens won Austin Wintory een Grammy in de categorie beste gamesoundtrack voor de soundtrack van Sword of the Sea.

De Super Mario-reeks van Nintendo valt op diverse spelcomputers van het bedrijf te spelen, waaronder de Nintendo Switch 2 en Nintendo Switch. Onder de meest recente grote hoofddelen vallen Super Mario Wonder en Super Mario Odyssey.

Nieuw op ID: het complete plaatje

Misschien valt het je op dat er vanaf nu ook berichten over games, films en series op onze site verschijnen. Dat is een bewuste stap. Wij geloven dat technologie niet stopt bij hardware; het gaat uiteindelijk om wat je ermee beleeft. Daarom combineren we onze expertise in tech nu met het laatste nieuws over entertainment. Dat doen we met de gezichten die mensen kennen van Power Unlimited, dé experts op het gebied van gaming en streaming. Zo helpen we je niet alleen aan de beste tv, smartphone of laptop, maar vertellen we je ook direct wat je erop moet kijken of spelen. Je vindt hier dus voortaan de ideale mix van hardware én content.

▼ Volgende artikel
Column: De PlayStation 6 mag nog jaren op zich laten wachten
Huis

Column: De PlayStation 6 mag nog jaren op zich laten wachten

De PlayStation 6 zou wel eens pas ergens na 2028 uit kunnen komen, zo claimde een analist onlangs. Dat betekent dat we minstens acht jaar met de PlayStation 5 opgescheept zitten. Maar niet getreurd: dat is juist goed nieuws voor de gemiddelde gameliefhebber.

Dat de PlayStation 6 in ontwikkeling is bij Sony, mag voor zich spreken. Nadat een nieuwe spelcomputer is uitgekomen, beginnen consolebedrijven vaak al snel met de research voor diens opvolger. Onderzoek naar de juiste specificaties en features van consoles beslaat vaak meerdere jaren, om nog maar te zwijgen over het maken van afspraken met bedrijven die de componenten daadwerkelijk leveren, en natuurlijk het produceren ervan.

Het is dan ook waarschijnlijk dat de specificaties van de PlayStation 6 al geruime tijd vastliggen, en dat Sony intern ook een schatting heeft gemaakt voor een releaseperiode voor de langverwachte console. Misschien was het bedrijf er zelfs van overtuigd dat het de console volgend jaar uit zou kunnen brengen.

Watch on YouTube

Verlengde levenscyclus

Onlangs meldde MST Financial-analist David Gibson dat Sony nu echter overweegt om de PS6 pas ergens na 2028 te leveren. “Sony verwacht dat de levenscyclus van de PlayStation 5 wordt verlengd, en dat de PlayStation 6-release langer op zich laat wachten dan de meesten voorspellen.” Dat zou betekenen dat de PS6 misschien pas ergens in 2029 of zelfs later in de winkels ligt.

De eerdere voorspellingen van ingewijden mikten voorheen vooral op eind 2027 of in de loop van 2028, op basis van wanneer de productie oorspronkelijk zou beginnen. De PlayStation 5 kwam in het najaar van 2020 uit, dus dat zou de console al een levenscyclus van ruim zeven jaar geven voordat de opvolger op de markt komt. Dat is in principe een zeer ruime levensloop voor een spelcomputer, en een release in 2027 of 2028 zou dan ook volkomen logisch zijn.

©PXimport

Stijgende RAM-prijzen

Maar de wereld houdt geen rekening met consolereleases, en gezien de huidige ontwikkelingen is de komst van een PlayStation 6 in 2027 of 2028 helemaal niet zo logisch meer. Dat heeft voor een groot deel te maken met de prijzen van RAM (Random Access Memory), die steeds hoger oplopen. RAM is namelijk in grote getale nodig om de alsmaar populairder wordende AI-assistenten als ChatGPT en Gemini draaiende te houden.

Als gevolg daarvan wordt RAM steeds schaarser en dus duurder, en laten spelcomputers nu ook net RAM nodig hebben. In deze periode een nieuwe spelcomputer uitbrengen zou dan ook betekenen dat de prijs van de console mogelijk erg hoog komt te liggen, wat de verkoop niet bepaalt stimuleert. Een dergelijke ‘valse’ start van de levenscyclus van een spelcomputer is iets dat veel bedrijven willen vermijden.

Ook de importheffingen die de Amerikaanse president Donald Trump op producten die buiten de Verenigde Staten worden gemaakt doorvoert, zorgen voor veel onzekerheid. Eerder moesten de prijzen van diverse spelcomputers, waaronder de PlayStation 5, al stijgen om dit op te vangen. Trump is – unieke politieke ontwikkelingen buiten beschouwing gelaten – de komende jaren nog aan de macht, dus ook dat maakt het uitbrengen van een nieuwe console bepaald geen veilige onderneming. De komende jaren een console lanceren is kortom dus een gigantisch risico, dat Sony volgensgeruchten zo klein mogelijk wil houden.

Trage consolegeneratie

Sony hoopt wellicht dat de economie eind dit decennium kalmeert. Dat zou echter wel betekenen dat we nog meerdere jaren op de komst van de PlayStation 6 moeten wachten. Wat mij betreft is dat niet iets om over te treuren, maar juist goed nieuws. Het geeft ontwikkelaars namelijk de kans om echt alles uit de PlayStation 5 te halen. Een kans die ze hopelijk met beide handen aangrijpen.

Hoewel de PS5 in november van 2020 uitkwam – ruim vijf jaar geleden – heb ik nog altijd het gevoel dat deze consolegeneratie nog maar net is begonnen. De generatie kwam sowieso vrij traag op gang, omdat deze middenin de coronapandemie viel. Dat was ook voor spelontwikkelaars een ingewikkelde tijd waarin halsoverkop naar thuiswerkmogelijkheden gekeken moest worden, waardoor veel games die in ontwikkeling waren vertraging op liepen.

Sony’s eigen game-line-up is de afgelopen vijf jaar ook wat karig geweest. Dat heeft deels te maken met een focus op liveservicegames, waarbij diverse projecten die bij Sony’s meest prominente studio’s in ontwikkeling waren uiteindelijk werden geannuleerd. Denk bijvoorbeeld aan de The Last of Us-multiplayergame die na jaren productie in de prullenbak werd gegooid.

Daarbij is de ‘cross-generation’-periode van deze generatie uitzonderlijk lang. Nog altijd komen diverse games niet alleen op PlayStation 5, maar ook op PlayStation 4 uit. Nu is dat iets wat in de toekomst alleen maar vaker voor zal komen – de grenzen tussen consolegeneraties vervagen en daarmee is het ook makkelijker om de prestaties van games terug of juist op te schalen.

Toch zorgt het er ook voor dat er onder gamers een gevoel groeit dat nog lang niet het uiterste uit de PS5 is gehaald. Er is méér met dat apparaat mogelijk, vooral met de bestaande PS5 Pro in het achterhoofd. Een verlengde levenscyclus voor de console geeft ontwikkelaars de kans om een aantal schitterende spellen af te leveren in de laatste jaren van de spelcomputer – de ontwikkeltijd van games wordt immers ook steeds langer. Met toppers als Grand Theft Auto 6, The Witcher 4 en Intergalactic: The Heretic Prophet nog in het verschiet, is er meer dan genoeg potentie om het de komende jaren uit te zingen met de PS5.

Niet zonder risico’s

Natuurlijk brengt het uitstellen van een consolelancering ook risico’s met zich mee, zowel voor Sony als voor de consument. Het is namelijk helemaal niet zeker dat de wereldeconomie er eind dit decennium beter voor staat. Daarnaast zet het Sony voor een moeilijke keuze: gooit het jaren aan research voor de PS6 weg om de console eind dit decennium met moderne specificaties uit te kunnen brengen, of behoudt het simpelweg de huidige specs zodat deze op release mogelijk al deels zijn verouderd?

De eventuele keuze om de PlayStation 6 uit te stellen zal dan ook niet over één nacht ijs gaan. Het is aan de goedbetaalde mensen in topposities binnen het bedrijf om die knoop door te hakken. Maar puur vanuit mijn eigen, egoïstische liefde voor games gezien, heb ik er totaal geen moeite mee om nog een jaar of drie, vier op de PlayStation 5 te spelen. Laat maar eens zien wat die console nog kan, en blaas ons in 2029 of 2030 weg met een nieuwe consolegeneratie die écht een flinke technologische stap zet!