Als developer aan de slag met AI en ChatGPT

Artikel
SWIS
10 mei 2023

Hét onderwerp van dit jaar is Artificial Intelligence (AI) en ChatGPT. Veel developers zijn hier al mee aan de slag gegaan. Maar hoe ingewikkeld is dat eigenlijk? We spraken Joris van SWIS. Hij bouwde een chat-applicatie op basis van 200.000 artikelen, voor een klant van SWIS. We vroegen hem hoe dat in z’n werk gaat, en hoe hij de toekomst ziet.

Wat heb je gebouwd?

Een klant van ons is een uitgever van medisch-wetenschappelijke content. Zij hebben duizenden, kwalitatief hoogwaardige artikelen online staan. We wilden eens kijken of het mogelijk is om hier een chatbot voor te maken, die betere antwoorden geeft dan ChatGPT.

Inmiddels is de chatbot af, en het werkt erg goed. De bot geeft je goede antwoorden met een duidelijke bronvermelding. Allemaal op basis van AI.

Hoe bouw je zoiets?

Onze oplossing bestaat uit twee onderdelen. We vinden het belangrijk dat de antwoorden van de chatbot zijn gebaseerd op alléén de artikelen van onze klant, en niet op andere bronnen die we niet kennen. Daarom gebruiken we die artikelen als input.

Stap één is daarom het vinden van de meest relevante artikelen bij een zoekopdracht. Ten tweede zorgen we dat ChatGPT op basis van die artikelen een antwoord op de vraag formuleert.

Hoe vind je die meest relevante artikelen?

We gebruiken een slimme zoekmethode, genaamd Semantic Search, die beter is dan de traditionele zoekopdrachten die je vaak op websites ziet. Met Semantic Search maken we gebruik van AI-modellen om het meest passende artikel bij de zoekopdracht te vinden, gebaseerd op de betekenis van de woorden.

Om dit te doen, zetten we de tekst om in iets dat we een 'vector' noemen. Een vector is een door kunstmatige intelligentie gemaakt reeks van 1500 getallen die de betekenis van de tekst bevat. Je kunt het zien als een soort coördinaat op een kaart, maar in plaats van twee coördinaten, gebruikt het model er 1500.

We maken de vector via AI en bewaren deze in onze database, samen met een verwijzing naar het originele artikel.

Oke, en dan typt een bezoeker iets in. Wat gebeurt er dan?

Vervolgens zetten we ook de zoekopdracht om naar een vector. Die vergelijken we met alle vectors in de database, en zo vinden we de 10 teksten die semantisch gezien het dichtst bij de zoekopdracht liggen.

Daarmee gaan we naar ChatGPT. Eerst vertellen we ChatGPT dat het een chatbot is die medische vragen gaat beantwoorden op basis van de artikelen die wij het geven. Belangrijk is dat het alléén die artikelen als input gebruikt. Zo weten we zeker dat het antwoord op de betrouwbare artikelen van onze klant gebaseerd is.

Vervolgens geven we de zoekopdracht, plus de eerder opgehaalde artikelen, en vragen ChatGPT om op basis daarvan een antwoord op de vraag te formuleren, met verwijzingen naar de juiste artikelen.

Schematisch ziet dat er zo uit:

Schematische weergave van het Ask NTvG proces

Was het lastig om dit aan de praat te krijgen?

Dat viel erg mee. We hebben eerst handmatig wat artikelen ingevoerd, en de system prompt ingesteld. Daaruit kregen we al nuttige antwoorden. Toen hebben we de eerste 50.000 artikelen omgezet naar een vector. Dat zorgde al voor veel betere antwoorden dan ChatGPT zelf ons kon geven.

Nu alle artikelen zijn opgenomen, krijgen we erg relevante antwoorden. Veel beter dan een ‘normale’ zoekmachine op een website zou geven. Ten eerste omdat de artikelen veel relevanter zijn. Ten tweede is het geformuleerde antwoord ook veel gebruiksvriendelijker dan de gebruikelijke lijst met linkjes.

"Zorg als developer dat je dit onder de knie krijgt, dan heb je de komende jaren genoeg uitdagend werk."

ChatGPT screenshot

Kan iedereen hiermee aan de slag?

Zeker weten. Ook beginnende developers kunnen met AI aan de gang. De API is erg toegankelijk, en met de playgrounds van ChatGPT kun je snel system prompts en user prompts uittesten.

Er zijn API clients beschikbaar voor vrijwel iedere programmeertaal. Die werken vrij simpel, en stellen jou als developer in staat om snel met AI aan de slag te gaan.

Als je, zoals wij voor ons project, een vectordatabase nodig hebt, kun je kijken naar hosted opties zoals Pinecone, of zelf hosten in een PostgreSQL database.

Wat kost dat?

Je kunt de API sowieso een maand gratis uitproberen. Wij hebben de API gebruikt om duizenden artikelen om te zetten naar vectors. De kosten hiervoor vallen erg mee.

Wat zie je verder nog voor mogelijkheden?

Er zijn nog veel meer mogelijkheden. Zo willen we bijvoorbeeld alle artikelen op een soort kaart plaatsen om te ontdekken of er onderwerpen zijn die nog niet zijn besproken. Op die manier kan onze klant zien welke thema's ze nog niet genoeg hebben behandeld.

Wat voor soort projecten lenen zich voor een AI sausje?

De mogelijkheden zijn eindeloos. Ik zie nu vooral veel kansen voor websites met veel content. Met ChatGPT maak je die informatie veel beter toegankelijk voor je bezoekers.

Joris is hier hard aan het werk
Joris Meijer

Met al die AI ontwikkelingen vraag ik me wel af: heb ik straks nog wel een baan?

Ik denk dat het werk van developers de komende jaren enorm gaat veranderen. Je zult veel meer bezig zijn met het opzetten van AI en chatinterfaces.

Welke kansen zie jij voor developers?

De komende jaren gaat er echt veel gebeuren op dit vlak. Veel klanten zullen ook aan de slag willen met AI. Zorg als developer dat je dit onder de knie krijgt, dan heb je de komende jaren genoeg uitdagend werk.

Je hoort steeds meer zorgen over de ethische kant van AI. Hoe zie jij dat?

Ik snap die zorgen heel goed. Ik ben zelf betrokken bij een werkgroep die hierover nadenkt en met aanbevelingen komt voor overheden en softwarebedrijven. Zo hebben we een paper geschreven over het testen in hoeverre een AI handelt in lijn met de menselijke normen en waarden.