Hackathon 2023: De mogelijkheden en beperkingen van ChatGPT integratie

Deze 6 obstakels kwamen wij tegen

Inmiddels staat ChatGPT al een tijdje live. De mogelijkheden zijn duidelijk eindeloos en de verwachting is dan ook dat de komende jaren steeds meer bedrijven gebruik zullen gaan maken van deze supertool. Wij planden een dag in de agenda om met zijn allen te werken aan drie ideeën op basis van de ChatGPT api. Doel: in 1 dag een werkende app maken (en in dat proces uiteraard met zijn allen proeven aan nieuwe technieken en ervaring opdoen).

  • Linda

Geschreven door Linda

Eerst productdesign

De afgelopen weken hebben we ideeën verzamelt en vandaag beginnen we in 3 groepjes (van 4 of 5 mensen) met het uitwerken van drie van die ideeën. Voor sommigen wat onwennig. Normaal krijgen we het productdesign aangeleverd van onze klanten, dus helemaal van scratch iets verzinnen is voor veel van ons nieuw. De meest vage schetsjes passeren de revue, maar de ideeën krijgen snel vorm.

Eindelijk bouwen

De groepen weten wat ze willen gaan maken, hebben taken verdeelt op basis van ‘wie heeft waar zin in’ en het coderen kan gaan beginnen. Waar de een in documentatie duikt om te kijken wat de mogelijkheden zijn van een specifieke tool, tuigt een ander een backend op en is weer iemand anders op zoek naar de laatste versie van Node.

Uitbesteden aan AI

In stijl van deze hackathon wordt er van alles uitbesteed aan Artificial Intelligence. Zo hoef je natuurlijk geen naam te verzinnen als je ChatGPT vraagt om een lijst met opties, is de body van je website in een oogwenk geschreven, kan je een logo genereren met Logomaster en kan je ChatGPT zelfs vragen om een prompt te genereren die dan weer later teruggestuurd wordt naar ChatGPT als input (een soort ChatGPT-ception).

Het ‘hack’ gedeelte van de hackathon

Waar we normaal gesproken bezig zijn met zaken als de stabiliteit van software, beveiligingsstandaarden en het zo schoon mogelijk oplossen van problemen, is dat vandaag allemaal niet aan de orde. Oplossingen mogen ‘vies’ en hardcoded, als het (op de korte termijn) maar werkt. Er hoeven bijvoorbeeld ook geen tests geschreven te worden om kwaliteit te waarborgen. Die vrijheid vinden sommigen heerlijk: “het hoeft eindelijk niet netjes!”, maar weer anderen hebben daar meer moeite mee: “Dit hoort écht niet zo.” Het is in ieder geval een welkome afwisseling en het helpt dat we weten dat we niet door hoeven te ontwikkelen op deze bende.

Tegen deze 6 specifieke dingen liepen wij aan

  1. ChatGPT heeft de neiging om lange stukken response zonder aankondiging af te kappen. Vooral als je vraagt om een specifieke response kan dat er voor zorgen dat je hele applicatie niet meer werkt. Ook dit probleem? Zoek online naar Langchain OutputFixingParser (of vraag een van ons je te helpen).
  2. Er is geen manier binnen ChatGPT om chathistorie op te slaan en die op een later moment aan te spreken met de API, dus zal je alles wat je wilt bewaren op een andere manier moeten opslaan.
  3. De ‘gateway timeout’ (hoe lang een server wacht op een antwoord) is standaard 30 seconden. ChatGPT doet met grote regelmaat (veeeeeeeeel) langer over zijn response dan dat. Standaard deployment werkt ook niet omdat je overal langer op moet wachten. Daar hebben we dus een aantal alternatieven voor moeten verzinnen.
  4. ChatGPT heeft geen flauw idee wat zijn eigen beperkingen zijn. Je kan vragen om specifieke dingen die ChatGPT zégt te kunnen, maar vervolgens is het antwoord onlogisch, inconsistent of zelfs helemaal afwezig.
  5. Fictie in combinatie met intelligente creativiteit is moeilijk. We vroegen ChatGPT een raadsel te schrijven (wat echt een prachtig raadsel werd overigens), maar vervolgens bleek de chat eigenlijk geen antwoord op dat raadsel te hebben.
  6. De eindgebruiker moet (door de traagheid van ChatGPT) lang wachten op een resultaat. We zijn gewend dat resultaten onmiddellijk beschikbaar zijn, maar je hebt redelijk snel te maken met wachttijd van 2+ minuten. Een van onze oplossingen was om in het laadscherm Davinci te gebruiken voor het genereren van feitjes, omdat die vaak wel binnen 10 seconden response geeft.

Het resultaat

Om kwart over 6 is het zo ver: de presentatie van de diverse applicaties die vandaag gebouwd zijn. Van de drie groepjes hebben twee een werkend eindproduct weten te produceren. Hieronder kan je zien wat de verschillende teams hebben gemaakt. De conclusie van vandaag was onder de developers in ieder geval duidelijk: een hackathon is leuk, mega intensief en het is tof om een keer ‘productie te rammen’ zonder echt te letten op kwaliteit. Als bijkomend voordeel hebben we veel geleerd over de mogelijkheden (en beperkingen) van ChatGPT en kunnen we niet wachten om deze kennis te implementeren in één van onze toekomstige projecten.

Interactive story - RPG-style

Groepsleden: Bauke, Adriaan, Martijn, Remco, Rick

Het idee is om GPT te gebruiken als interactieve verhalenverteller. Een of meerdere spelers moeten een karakter kunnen maken, een setting kunnen kiezen, en eventueel een genre. Het doel is dat het verhaal luistert naar input van de speler(s) en op basis daarvan een vervolg scene genereert.

In deze case kwamen heel duidelijk de belemmeringen van ChatGPT naar voren en dan voornamelijk op het gebied van consistentie van antwoorden. Doorborduren op een eerder gegenereerd verhaal bleek onmogelijk, door de chat bedachte raadsels hadden geen oplossing en de verhalen bleven erg vaag en onsamenhangend. De groep kwam er achter dat je enorm veel restricties en eisen aan je prompt mee moet geven en dat daar dan nog steeds geen goed verhaal uit komt. Wat wel goed ging was het genereren van ‘player cards’ door middel van een text-to-image API.

Reisbureau voor rondreizen

Groepsleden: Roland, Raymond, Robin, Siebe

Het idee is om GPT te gebruiken om een rondreis voor te stellen. De gebruiker kiest een bestemming en een aantal dagen. Vervolgens maakt GPT een reisschema met locaties en highlights van die locaties.

Door eerst ChatGPT te vragen om de content voor een website op te leveren (inclusief USP’s van het product en drie reviews), zag de website van ‘JournAI’ er al heel snel heel flashy uit. Het team heeft lang gewerkt met hardcoded reizen (je kon alleen maar naar Vietnam) om te zorgen dat er aan verschillende aspecten gewerkt kan worden, ook als de API integratie nog niet optimaal werkt.

Een prachtige eerste basis van een applicatie om reizen mee voor te bereiden. Je kan in het textvlak invullen wat je precies wilt en daar komt dan een kaart uitrollen met een prima reis (al is volgens chatGPT een ‘strandvakantie’ er een waar je de hele mediteraanse kust afreist in 6 dagen).

E-learning

Groepsleden: Ewout, Bren, Merel, Olaf, Ted

Het idee is om GPT te gebruiken om automatisch een soort DuoLingo e-learning programma te presenteren aan de gebruiker voor een zelf op te geven tekst of onderwerp. De gebruiker voert bijv. de Wikipedia tekst over olifanten in en vervolgens maakt GPT er een cursus van inclusief quizvragen.

Omdat je na het invullen van de oorspronkelijke informatie een tijd moet wachten voor ChatGPT een e-learning in elkaar heeft gezet besloot deze groep al vrij snel ‘iets’ toe te voegen aan het laadscherm. Door te kiezen voor feitjes over het zojuist ingevulde onderwerp en dit te vragen aan Davinci, heeft de eindgebruiker binnen 10 seconden al ‘iets te doen’ in plaats van alleen naar het laadscherm te kijken.

Na een flinke tijd wachten rolt er een prachtige e-learning uit. Met cursussen op 3 niveaus en een quizvraag bij elk stukje tekst. Vragen zijn soms wel hilarisch zoals: “wat is jouw lievelings dinosaurus?” (die vraag hadden we fout overigens). Ook worden antwoorden op multiple choice vragen creatief ingevuld: een van de opties bij een vraag over de functie van de oren van een olifant was “om te vliegen”.

Linda
Tips voor onze volgende hackathon?

Laat het me vooral weten! Dan kunnen we er snel weer een organiseren ;)