Een praktijkvoorbeeld van Retrieval Augmented Generation

Wat als je de kracht van grote taalmodellen zou kunnen combineren met kennis uit je eigen organisatie? Dat kan, dankzij Retrieval Augmented Generation (RAG). Maar hoe werkt RAG onder de motorkap? Hoe kun je zelf aan de slag met het ontwikkelen van een RAG? En zijn er al praktijkvoorbeelden waar je van kunt leren? In deze podcast gaat Jerrel Arkes in gesprek met Chief AI Architect Willem Meints en Area lead Data & AI Niels Naglé.

In dit artikel belichten we een van de onderwerpen die zijn besproken: de ontwikkeling van een RAG-systeem binnen Info Support, met de naam Ricardo.

Het doel van Ricardo is om medewerkers van Info Support te ondersteunen bij het beantwoorden van technische vragen en het schrijven van code. Het systeem is gebaseerd op het GPT-taalmodel van OpenAI, aangevuld met een vector database gevuld met interne documentatie en codevoorbeelden. De gebruikersinterface is geïntegreerd in een web interface, zodat medewerkers op een laagdrempelige manier vragen kunnen stellen.

Ricardo startte oorspronkelijk als een gimmick. Willem: “Ik sprak met onze CTO over de mogelijkheden van RAG en ik liet vallen dat ik zo’n systeem in één weekend zou kunnen ontwikkelen voor Info Support. Dat geloofde hij aanvankelijk niet, dus ik pakte die handschoen op. En het is gelukt: de eerste versie van Ricardo is in een weekend gebouwd. En inmiddels draait het systeem al bijna een jaar mee.”

Bij de ontwikkeling van Ricardo is gekozen voor een iteratieve/agile aanpak. Willem: “We zijn begonnen met een proof of concept om te valideren dat het idee werkt en om buy-in te creëren binnen de organisatie. Vervolgens hebben we stap voor stap de functionaliteit uitgebreid en verbeterd op basis van feedback van gebruikers.”

De functionaliteiten van Ricardo

Een jaar na de implementatie kan Ricardo al helpen bij het schrijven van teksten, het genereren van code en het beantwoorden van vragen over kwalitatief goede softwareontwikkeling. Deze functionaliteiten zijn specifiek afgestemd op de behoeften van Info Support en maken gebruik van de interne documentatie en richtlijnen van het bedrijf.

Een van de belangrijkste databronnen voor Ricardo is het Guidance Framework, een interne kennisbank met technische documentatie en best practices. Willem: ”Denk daarbij aan interne technische documentatie waarin staat hoe je volgens Info Support kwalitatief goede software bouwt, hoe je met beveiliging omgaat, dat soort zaken.” “Info Support-collega’s werken aan veel verschillende projecten bij veel verschillende klanten”, vult Niels aan. “Daar leren we allemaal net een ander stukje van de puzzel. Het Guidance Framework helpt ons om die puzzelstukjes bij elkaar te leggen. Gestolde ervaring noemen we het ook wel eens; we leggen onze ervaring vast zodat we van elkaar kunnen leren. En van die input kan Ricardo op een gestructureerde manier informatie halen.”

De implementatie van Ricardo heeft verschillende voordelen opgeleverd voor Info Support en haar medewerkers: met name tijdsbesparing en een verhoogde efficiëntie. “Ricardo kun je zien als een virtuele assistent die onze collega’s ondersteunt in hun dagelijkse werkzaamheden”, aldus Willem. “Door snel en accuraat antwoord te geven op vragen en relevante informatie te verstrekken, bespaart Ricardo waardevolle tijd die anders besteed zou worden aan het handmatig opzoeken van informatie. Daarnaast draagt Ricardo bij aan de consistentie en kwaliteit van het werk binnen Info Support. Door gebruik te maken van goedgekeurde documentatie en richtlijnen, zorgt Ricardo ervoor dat medewerkers altijd toegang hebben tot de meest actuele en betrouwbare informatie. Dit vermindert de kans op fouten en inconsistenties en bevordert de naleving van best practices binnen Info Support.”

Lessons learned en toekomstplannen

Een van de belangrijkste lessen was het belang van gebruikersfeedback en continue iteratie. Willem: “We verzamelen voortdurend feedback en gebruiken die om de prompts en code van de agent constant te verbeteren.”

Een andere waardevolle les was het belang van het vinden van de juiste balans tussen het gebruik van bestaande tools en het ontwikkelen van maatwerkoplossingen. “Hoewel het verleidelijk kan zijn om alles vanaf nul op te bouwen, zagen we dat het slim gebruik maken van bestaande frameworks en technologieën het ontwikkelproces aanzienlijk kon versnellen. Tegelijkertijd was er ruimte voor maatwerk om Ricardo naadloos te laten aansluiten bij de specifieke behoeften en systemen van Info Support.”

Info Support heeft ambitieuze plannen om Ricardo nog verder te ontwikkelen. Een van de belangrijkste verbeterpunten is het uitbreiden van de databronnen waaruit Ricardo kan putten. Willem: “We willen onderzoeken of we Ricardo ook in staat kunnen stellen om afbeeldingen en andere multimodale content te verwerken. Ook verkennen we manieren om de gebruikerservaring van Ricardo verder te verbeteren, bijvoorbeeld door het toevoegen van een chatgeschiedenis en de mogelijkheid voor gebruikers om hun eigen prompts te definiëren. Dit zou de flexibiliteit en personalisatiemogelijkheden van Ricardo vergroten.”

 

Lees ook de eerdere afleveringen van deze serie:

Hoe werkt Retrieval Augmented Generation?

Hoe ga je aan de slag met Retrieval Augmented Generation?