Your web browser is out of date. Update your browser for more security, speed and the best experience on this site.

Zo maak je applicaties slimmer door toepassingen van OpenAI te integreren

Als er één technologie is die het voorbij jaar overheerste, dan is het de “slimme zoekmachine” ChatGPT wel. Toch zal alles pas echt versnellen wanneer men ChatGPT in andere applicaties integreert. Rutger Van der Auwera, frontend developer bij Axxes, vertelde op Haxx hoe zoiets werkt.

Deel dit artikel
Front End Software & Services

Toen Rutger Van der Auwera in 2012 als frontend developer begon, stond artificiële intelligentie nog in haar kinderschoenen. Siri was een paar weken oud, en niemand leek de zoekmachine van Google ooit te kunnen kloppen. Flash forward naar een decennium later, en er is heel wat veranderd. Rutger is tegenwoordig via Axxes aan de slag bij het fleetmanager platform Alphabet, waar hij het liefst in Angular werkt. Zijn job is helemaal anders dan toen hij begon, want de lancering van ChatGPT heeft het speelveld helemaal omgegooid.

ChatGPT is een van de vele chatbots gebaseerd op een Large Language Model, technologie die in staat is om menselijke taal te begrijpen, te genereren en te manipuleren. Je kan de tool enerzijds gebruiken door naar de site van OpenAI te surfen, maar anderzijds kan je ze ook integreren in je bestaande applicaties.

Artificiële intelligentie - en dat gaat breder dan ChatGPT - kan je systemen namelijk een stevige upgrade geven. Het kan de UX verbeteren, voor meer gepersonaliseerde resultaten zorgen, een platform toegankelijker maken door bijvoorbeeld teksten automatisch te vertalen… het zorgt er met andere woorden voor dat gebruikers makkelijker en meer gebruik maken van je app of tool. Het is nu eenmaal gemakkelijker om tegen ‘iemand’ te praten en zo interactie te hebben dan een lijst te doorzoeken of filters te gebruiken. En net zoals ieder bedrijf na de lancering van de iPhone de vraag kreeg of ze een app hebben, moet men nu aan iedereen uitleggen wat ze met AI doen.

Op onze interne Haxx-conferentie toonde Rutger hoe je zelf een slimme chatbot kan maken, en hoe je ChatGPT via API’s in je webapplicaties kan integreren. Hij presenteerde ook een demo van een slimme chatbot die op basis van een paar eenvoudige vragen films of series uit een database van Kaggle kan aanbevelen. Rutger maakte naast de technologie van OpenAI gebruik van Supabase, een clouddatabase van Postgres, en Angular en Tailwind.

Api

Zo werkt de API van OpenAI

OpenAI heeft verschillende toepassingen, waarvan de text generation via ChatGPT de meest bekende is: je vraagt iets en de tool geeft antwoord. Via finetuning kan je ook een eigen model van ChatGPT maken. Dall-E is dan weer een toepassing om beelden te genereren op basis van een geschreven input, terwijl Vision gebruikt kan worden om te beschrijven wat op een afbeelding staat. Whisper doet hetzelfde maar dan met geluid.

De API’s van OpenAI aanspreken is vrij simpel en gebeurt via een post request. Je stuurt algemene informatie mee, de zogenaamde role, en de content die van een tekst tot een URL van beelden kan bestaan. Je moet je API Key, die je krijgt van zodra je een account aanmaakt, en bepaalde parameters meegeven.

In het geval van text generation zal je bijvoorbeeld moeten aangeven welk model van ChatGPT je gebruikt. Het meest bekende is GPT 3.5-turbo, maar intussen zijn er opvolgers die ook beelden kunnen inlezen. De modellen hebben daarnaast nog een bijkomend nummer, dat verwijst naar de datum waarop het uitkwam of tot wanneer de data loopt die door ChatGPT gekend is.

Andere data die je meestuurt zijn bijvoorbeeld de gesprekken die je met ChatGPT voert en de temperatuur. Die parameter heeft niets te maken met hoe warm of koud het is, maar het is een cijfer tussen nul en een dat aantoont hoe creatief ChatGPT mag zijn. Via de Presence Penalty geef je aan of ChatGPT meermaals dezelfde zin mag zeggen, en de Frequency Penalty toont hoe makkelijk de tool over nieuwe onderwerpen zal praten. Je bepaalt ook hoeveel tokens en aantal antwoorden de tool mag geven. Doordat je pricing gebaseerd is op dat laatste, kan het relevant zijn om dat te limiteren.

Afbeelding1

Embeddings, beelden en moderatie

Naast het genereren van teksten kan de technologie van OpenAI zoals gezegd nog een pak meer. Zo kan je via Embeddings tekst omzetten naar een reeks nummers. Mensen kunnen die niet lezen, maar artificiële intelligentie wel. Op basis van die nummers kan men de gelijkheid van teksten bepalen. Zo kan de tool nagaan of bepaalde woorden semantisch bij elkaar horen, wat handig is voor zoekopdrachten.

Ook hier bevat je call weer een post met input. Afhankelijk van waarvoor je ze wil gebruiken, zal je nog een aantal zaken moeten duiden. Wie met Postgres werkt, moet bijvoorbeeld een extensie toevoegen zodat het deze input herkent. In je tabel voeg je een kolom toe voor de embeddings die je via de API terugkrijgt en zo kan opslaan. In zijn demo toonde Rutger aan dat hij een functie kon aanmaken om films te matchen via een stored procedure. Wie de functie oproept, geeft hem een embedding mee, waarna de chatbot weet welke film hij moet aanbevelen.

Om dat doel te bereiken, moest Rutger eerst zijn data voorbereiden. De titels en beschrijvingen van een film worden naar de embeddings API gestuurd, waarna ze als nummers werden opgeslagen in de embeddingskolom. Als een gebruiker een query invult zal die query via de embeddings API de juiste film terugkrijgen.

Wil je de beeldgenerator van OpenAI gebruiken? Ook dat is vrij eenvoudig: in je call geef je je model mee, samen met een prompt en het aantal beelden dat je wil terugkrijgen. Ook de grootte van de gewenste afbeelding kan je hier bepalen. De data die je terugkrijgt is een lijst van URL's naar beelden die je kan gebruiken. Vervolgens gaat de AI zelf een beeld genereren.

Tot slot heeft OpenAI ook een tool om bepaalde content te modereren. Door een tekst mee te geven via de API zal die software kunnen aangeven of het bijvoorbeeld grensoverschrijdend is of niet. Je krijgt ook de scores en de regels die overschreden worden mee.

Pexels sanket mishra 16629368

Zo bekom je het beste resultaat

Het is even wennen om als gebruiker met de toepassingen van OpenAI aan de slag te gaan, maar hoe beter je leert prompten, des te beter het resultaat. Zo zijn er, aldus Rutger, een aantal trucjes die je kan toepassen. Hoe meer details je meegeeft, hoe beter je resultaat zal zijn. Geef bijvoorbeeld mee welke respons je graag krijgt, want ChatGPT geeft vaak dezelfde antwoorden.

De context speelt ook een rol. Als je bijvoorbeeld films wil aanbevolen krijgen is het belangrijk om mee te geven waarom en hoe je die films wil gebruiken. Het blijft experimenteren, maar je kan ook ChatGPT gebruiken om je prompt te verbeteren. Schets in dat geval je gewenste output, en vraag aan ChatGPT welke vraag je daarvoor moet stellen.

Er zijn verschillende modellen die je perfect naast elkaar kunt gebruiken. Pricing speelt een rol, maar de goedkope zullen in veel gevallen een even goed resultaat geven. En nog een gouden tip: wees beleefd. Als je vriendelijk bent, zal ChatGPT zich baseren op online antwoorden waar op geantwoord is, en dat zijn doorgaans vragen die men vriendelijk stelde.-

Breng alles samen

Door je embeddings en je query te combineren kan je je respons ook baseren op data die je meegeeft aan ChatGPT. In het geval van Rutger kun je ChatGPT zo vragen om films voor te stellen uit de database met series en films. Als je dan een query typt, zal hij die omzetten naar embeddings, die gebruiken om een film te zoeken in een database en daarna die respons teruggeven aan ChatGPT op basis van de beschikbare films.

Nog een handige toepassing om alles samen te brengen zijn de Function calls. Daarmee geef je aan ChatGPT een lijst van functies in je code mee die hij kan aanroepen. Op basis van je query kiest de tool zelf welke functie hij, op basis van je lijst met functies, moet aanroepen om data terug te krijgen.

OpenAI ontwikkelde daarvoor Assistants, een ChatGPT-instance met specifieke instructies en tools. Daarbij hoort ook een thread, dat is een lijst met berichten uit je conversatie. Tot slot is er ook een run, het eigenlijke processen van die threads.

Pexels pixabay 60504

Veiligheid en prijs

Als je ChatGPT gebruikt in je applicatie, moet je uiteraard ook rekening houden met bepaalde veiligheidsissues. Je kan er veel mee doen, maar als je data doorstuurt naar ChatGPT is het belangrijk dat je die gegevens eerst anonimiseert. Stuur daarnaast ook geen data van gebruikers door naar ChatGPT. In theorie kan je ChatGPT SQL queries laten genereren zodat hij rechtstreeks naar de database kan gaan, maar limiteer wat de tool daar kan. Monitor anderzijds ook de queries van je gebruikers, zodat je misbruik kan tegengaan.

Hoeveel het kost om ChatGPT te gebruiken varieert afhankelijk van het model dat je gebruikt en hoe vaak je ermee aan de slag gaat. Het genereren van beelden kost wat meer, zeker als je ze in high definition wil hebben.

Volgens Rutger zullen Large Language Models steeds meer gebruikt worden, al betwijfelt hij of dat vooral via OpenAI zal zijn. Je weet namelijk niet wat er met de data gebeurt. Daarom kiezen steeds meer bedrijven voor een oplossing waarbij je zo’n Large Language Model lokaal laat draaien.

Elke maand op de hoogte gebracht worden van de nieuwste Insights? Schrijf je in!

Rutger Van Der Auwera

Rutger Van Der Auwera

Frontend Consultant

Onze andere Insights al bekeken?

Bekijk ze hier
Axxes