

De wereld van chatbots en Large Language Models (LLM's) heeft onlangs een spectaculaire evolutie doorgemaakt. Met ChatGPT, ontwikkeld door OpenAI, als een van de meest opmerkelijke voorbeelden, is de technologie erin geslaagd om meer dan 1.000.000 gebruikers te bereiken in slechts vijf dagen. Deze stijging onderstreept de groeiende interesse in conversational AI en de ongekende mogelijkheden die LLM's bieden.
LLM's en ChatGPT: Een korte introductie
Grote taalmodellen (LLM's) en chatbots zijn concepten die tegenwoordig onmisbaar zijn geworden in de wereld van kunstmatige intelligentie. Ze vertegenwoordigen de toekomst van mens-computerinteractie, waarbij LLM's krachtige AI-modellen zijn die natuurlijke taal begrijpen en genereren, terwijl chatbots programma's zijn die menselijke gesprekken kunnen simuleren en taken kunnen uitvoeren op basis van tekstuele invoer. ChatGPT, een van de opmerkelijke chatbots, heeft in korte tijd enorm aan populariteit gewonnen.
LangChain: de brug naar LLM-gebaseerde toepassingen
LangChain is een van de frameworks waarmee de kracht van LLM's kan worden benut voor het ontwikkelen en ondersteunen van toepassingen. Deze open-source bibliotheek, geïnitieerd door Harrison Chase, biedt een generieke manier om verschillende LLM's aan te spreken en uit te breiden met nieuwe gegevens en functionaliteiten. LangChain is momenteel beschikbaar in Python en TypeScript/JavaScript en is ontworpen om eenvoudig verbindingen te maken tussen verschillende LLM's en gegevensomgevingen.
LangChain Kernconcepten
Om LangChain volledig te begrijpen, moeten we enkele kernconcepten verkennen:
- Ketens: LangChain is gebouwd op het concept van een keten. Een keten is eenvoudigweg een generieke opeenvolging van modulaire componenten. Deze ketens kunnen worden samengesteld voor specifieke use cases door de juiste componenten te selecteren.
- LLMChain: Het meest voorkomende type keten binnen LangChain is de LLMChain. Deze bestaat uit een PromptTemplate, een Model (dat een LLM of een chatmodel kan zijn) en een optionele OutputParser.
Een PromptTemplate is een sjabloon dat wordt gebruikt om een prompt voor de LLM te genereren. Hier is een voorbeeld:
Met deze template kan de gebruiker een onderwerp invullen, waarna de ingevulde prompt als input naar het model wordt gestuurd.
LangChain biedt ook kant-en-klare PromptTemplates, zoals Zero Shot, One Shot en Few Shot prompts. - Model en OutputParser: Een model is de implementatie van een LLM-model zelf. LangChain heeft verschillende implementaties voor LLM modellen, waaronder OpenAI, GPT4All en HuggingFace.
Het is ook mogelijk om een OutputParser toe te voegen om de uitvoer van het LLM-model te verwerken. Er is bijvoorbeeld een ListOutputParser beschikbaar om de uitvoer van het LLM-model om te zetten in een lijst in de huidige programmeertaal.
Gegevensconnectiviteit in LangChain
Om de LLM Chain toegang te geven tot specifieke gegevens, zoals interne gegevens of klantinformatie, gebruikt LangChain verschillende concepten:
- Documentladers
Met documentloaders kan LangChain gegevens ophalen uit verschillende bronnen, zoals CSV-bestanden en URL's. - Tekst Splitter
Deze tool splitst documenten op in kleinere stukken zodat ze makkelijker verwerkt kunnen worden door LLM modellen, rekening houdend met beperkingen zoals tokenlimieten. - Inbeddingen
LangChain biedt verschillende integraties om tekstuele gegevens om te zetten in numerieke gegevens, zodat ze gemakkelijker te vergelijken en te verwerken zijn. Het populaire OpenAI Embeddings is hier een voorbeeld van. - VectorStores
Hier worden de ingesloten tekstuele gegevens opgeslagen. Dit kunnen bijvoorbeeld gegevensvectoropslagplaatsen zijn, waarbij de vectoren de ingesloten tekstuele gegevens vertegenwoordigen. FAISS (van Meta) en ChromaDB zijn enkele populaire voorbeelden. - Retrievers
Retrievers maken de verbinding tussen het LLM-model en de gegevens in VectorStores. Ze halen relevante gegevens op en breiden de prompt uit met de benodigde context, waardoor contextbewuste vragen en opdrachten mogelijk worden.
Een voorbeeld van zo'n contextbewuste prompt ziet er als volgt uit:
Demo toepassing
Om de kracht van LangChain te illustreren, kunnen we een demotoepassing maken die de volgende stappen volgt:
- Gegevens ophalen op basis van een URL.
- De gegevens opsplitsen in hanteerbare blokken.
- De gegevens opslaan in een vector database.
- Een LLM toegang verlenen tot de vector database.
- Een Streamlit-toepassing maken die gebruikers toegang geeft tot de LLM.
Hieronder laten we zien hoe je deze stappen in code uitvoert:
1. Gegevens ophalen
Gelukkig vereist het ophalen van gegevens van een website met LangChain geen handmatig werk. Hieronder lees je hoe we dat doen:

2. Gegevens splitsen
Het dataveld hierboven bevat nu een verzameling pagina's van de website. Deze pagina's bevatten veel informatie, soms te veel voor de LLM om mee te werken, omdat veel LLM's met een beperkt aantal tokens werken. Daarom moeten we de documenten opsplitsen:

3. Gegevens opslaan
Nu de gegevens zijn opgesplitst in kleinere contextuele fragmenten, slaan we ze op in een vectordatabase om de LLM efficiënt toegang te geven tot deze gegevens. In dit voorbeeld gebruiken we Chroma:

4. Toegang verlenen
Nu de gegevens zijn opgeslagen, kunnen we een "Chain" bouwen in LangChain. Een keten is simpelweg een reeks LLM-uitvoeringen om het gewenste resultaat te bereiken. Voor dit voorbeeld gebruiken we de bestaande RetrievalQA-keten die LangChain biedt. Deze keten haalt relevante contextfragmenten op uit de nieuw gebouwde database, verwerkt deze samen met de vraag in een LLM en levert het gewenste antwoord:

5. Streamlit toepassing maken
Nu we de LLM toegang hebben gegeven tot de gegevens, moeten we de gebruiker een manier bieden om de LLM te raadplegen. Om dit efficiënt te doen, gebruiken we Streamlit:

Agenten en hulpmiddelen
Naast de standaardketens biedt LangChain ook de mogelijkheid om Agents te maken voor geavanceerdere toepassingen. Agents hebben toegang tot verschillende tools die specifieke functionaliteiten uitvoeren. Deze tools kunnen variëren van een "Google Search" tool tot Wolfram Alpha, een tool voor het oplossen van complexe wiskundige problemen. Hierdoor kunnen Agents geavanceerdere redeneertoepassingen bieden, waarbij ze beslissen welk hulpmiddel ze moeten gebruiken om een vraag te beantwoorden.
Alternatieven voor LangChain
Hoewel LangChain een krachtig raamwerk is voor het bouwen van LLM-gestuurde toepassingen, zijn er andere alternatieven beschikbaar. Een populair hulpmiddel is bijvoorbeeld LlamaIndex (voorheen GPT Index), dat zich richt op het verbinden van LLM's met externe gegevens. LangChain daarentegen biedt een completer framework voor het bouwen van applicaties met LLM's, inclusief tools en plugins.
Conclusie
LangChain is een spannend raamwerk dat de deuren opent naar een nieuwe wereld van conversationele AI en applicatieontwikkeling met grote taalmodellen. Met de mogelijkheid om LLM's te koppelen aan verschillende gegevensbronnen en de flexibiliteit om complexe toepassingen te bouwen, belooft LangChain een essentieel hulpmiddel te worden voor ontwikkelaars en bedrijven die willen profiteren van de kracht van LLM's. De toekomst van conversational AI ziet er rooskleurig uit en LangChain speelt een cruciale rol in deze evolutie.
What others have also read


Bij ACA zijn de Ship-IT Days no-nonsense innovatiedagen.
Lees verder

Maak het concreet voor alle belanghebbenden Data Mesh wordt vaak gezien als iets zeer abstract en theoretisch, waardoor belanghebbenden onzeker zijn over de precieze implicaties en mogelijke oplossingen ervan. Daarom willen we het bij ACA Group zo concreet mogelijk maken voor business stakeholders, technische stakeholders en andere belanghebbenden in de organisatie. Wij raden aan om drie belangrijke uitdagingen tegelijkertijd aan te pakken: IDENTIFICEER BEDRIJFSWAARDE – Definieer hoe Data Mesh exact bijdraagt aan de bedrijfswaarde door data als een product te beschouwen. ORGANISEER TEAMS – Specificeer de rol van elk team, teamlid en persona binnen de context van Data Mesh. BUILD PLATFORM – Laat zien hoe data mesh de technische architectuur beïnvloedt. Uitdaging 1: De bedrijfswaarde van Data Mesh identificeren Een van de eerste uitdagingen bij de introductie van Data Mesh is het uitleggen en bewijzen van de waarde voor de business. Bij ACA Group beginnen we met het identificeren van potentiële dataproducten, domeinen en use cases. Dit proces is gebaseerd op zakelijke input en resulteert in een dataproductlandschap. De figuur hieronder geeft een voorbeeld vanuit een e-commerce bedrijf (rechthoeken zijn applicaties, hexagonen zijn data producten, kleuren geven domeinen die ownership nemen). Dit landschap dient als navigatiekaart, inspireert nieuwe innovatieve zakelijke ideeën en laat de meerwaarde zien die Data Mesh voor de organisatie kan bieden. Door te laten zien hoe Data Mesh nieuwe mogelijkheden kan creëren, verduidelijken we de relevantie ervan voor zakelijke belanghebbenden. Data Mesh Oplossingen Afstemmen op Organisatiedoelen Om het maximale uit Data Mesh te halen, is afstemming op de algemene doelstellingen en strategie van de organisatie van het grootste belang. Het is cruciaal om ervoor te zorgen dat de investering in technologie en processen aansluit bij de bredere bedrijfsdoelstellingen. Door deze afstemming blijft de steun en het momentum behouden, wat cruciaal is voor het succes van een Data Mesh-initiatief. Data Mesh Opportuniteiten Identificeren met Gamestorming Bij ACA Group passen we gamestorming-technieken toe om domeinen en dataproducten te ontdekken. Dit proces begint met de identificatie van business mogelijkheden en datagebruiksscenario's. Dat doen we aan de hand van workshops, zoals het in kaart brengen van de impact. Door Data Mesh op deze aspecten af te stemmen, identificeren we een dataproductlandschap vanuit twee perspectieven. Een inventarisatie van beschikbare data en potentiële dataproducten inspireert en genereert nieuwe zakelijke ideeën, terwijl de gewenste zakelijke impact en doelstellingen helpen bij het identificeren van de benodigde data en dataproducten. Uitdaging 2: Teams Organiseren en Individuen Empoweren Data Mesh gaat niet alleen over technologie; het gaat over het transformeren van de manier waarop teams en teamleden binnen de organisatie opereren. ACA Group gelooft in het effectief organiseren van teams om de kracht van Data Mesh te benutten. We gaan in gesprek met bestaande teams en teamleden en positioneren hun waardevolle rollen en expertise binnen een Data Mesh-teamorganisatie. Meestal zijn hierbij platformteams, domeinteams, faciliterende teams en een gefedereerd governanceteam betrokken. Daarnaast onderzoeken we de verschillende gebruikerstrajecten en ervaringen voor elke persona, om ervoor te zorgen dat Data Mesh een positieve invloed heeft op de organisatie, haar mensen en hun rollen. Uitdaging 3: De technische architectuur opzetten Het invoeren van Data Mesh is een transformerend traject voor elke organisatie. Door de uitdagingen op te splitsen in uitvoerbare stappen, zoals ACA Group doet, kan je Data Mesh tastbaarder maken, de waarde ervan verduidelijken en de oplossing afstemmen op de doelstellingen van je organisatie. Deze incrementele acties dienen om het mysterie weg te nemen rond Data Mesh, waardoor het begrijpelijk wordt voor een breed scala aan stakeholders en het pad wordt geëffend voor goed geïnformeerde beslissingen. Het omarmen van Data Mesh betekent het omarmen van de toekomst van datamanagement, en biedt een scala aan opportuniteiten voor je organisatie. Dit traject gaat over het praktisch realiseren van Data Mesh en tegelijkertijd zorgen voor afstemming op je organisatiedoelstellingen. Conclusie Het invoeren van Data Mesh is een transformerend traject voor elke organisatie. Door de uitdagingen op te splitsen in uitvoerbare stappen, zoals ACA Group doet, kan je Data Mesh tastbaarder maken, de waarde ervan verduidelijken en de oplossing afstemmen op de doelstellingen van je organisatie. Deze incrementele acties dienen om het mysterie weg te nemen rond Data Mesh, waardoor het begrijpelijk wordt voor een breed scala aan stakeholders en het pad wordt geëffend voor goed geïnformeerde beslissingen. Het omarmen van Data Mesh betekent het omarmen van de toekomst van datamanagement, en biedt een scala aan opportuniteiten voor je organisatie. Dit traject gaat over het praktisch realiseren van Data Mesh en tegelijkertijd zorgen voor afstemming op je organisatiedoelstellingen. Nieuwsgierig naar wat Data Mesh nog meer te bieden heeft? Ontdek het hier ✅
Lees verder

30 november 2023 was een langverwachte dag voor tal van ACA-medewerkers. Want op Ship-IT Day gingen negen teams van ACA-teamleden, al dan niet aangevuld met klantexperts, aan de slag met het creëren van inventieve oplossingen voor uitdagingen van klanten of voor ACA Group zelf. De hackathon bleek zowel inspirerend als productief, met aan het eind een verdiende winnaar! De sfeer in het ACA-kantoor in Hasselt was vanaf het eerste moment zinderend. Acht van de negen projectteams waren hier gestationeerd. Tijdens het koffiekoekenontbijt voelde je meteen dat het een buitengewone dag ging worden. Er was een voelbaar gevoel van opwinding onder de projectteamleden en een verlangen om de complexe uitdagingen die voor ons lagen aan te gaan . 9 innovatieve projecten voor interne en externe uitdagingen 🚀 Na het ontbijt zwermden de acht projectteams uit naar hun werkomgeving voor die dag. Het negende team nam deel in het ACA-kantoor in Leuven. We zetten de teams hier op een rijtje: Chatbot cursusintegratie in klantenportaal Systeemintegratietesten in een CI/CD pijplijn Onboarding portaal/platform inclusief gamification Automatische nasynchronisatie, transcriptie en samenvatting van gesprekken publiq film die gegevensimport via ML aanbiedt SMOCS, spottend beheersysteem op laag niveau Samenstelbare architectuur voor gegevensverwerking Virtuele werknemers Geautomatiseerde facturatie Als je meer wilt weten over de omvang van de verschillende projectteams, lees dan ons eerste blogartikel Ship-IT Day 2023: alle projecten op een rij . De sfeer proeven in de teams Vlak voor de middag vroegen we ons af hoe de teams waren begonnen en hoe hun werk zich ontwikkelde. En dus gingen we snel een kijkje nemen... 👀 1. Chatbot cursusintegratie in klantportaal "Na een korte kick-off meeting met de klant hebben we de taken verdeeld en zijn we direct aan de slag gegaan," vertelt Bernd Van Velsen. "De sfeer is geweldig en aan het einde van de dag hopen we een resultaat te presenteren dat de klant inspireert . In het beste geval kunnen we straks AI-tools inzetten in een echt klantproject met als doel de vele data van de klant optimaler te benutten." "De Ship-IT Day is een jaarlijkse traditie waar ik graag aan deelneem", zegt Bernd. "Niet alleen omdat het geweldig is om samen te werken met collega's van andere afdelingen, maar ook omdat het super leerzaam is." 2. Systeemintegratietesten in een CI/CD-pijplijn "We willen aantonen dat we in een bestaande omgeving kliktests in de frontend kunnen uitvoeren en controleren of alles goed samenwerkt," zegt Stef Noten. "Op dit moment kunnen we de nodige testen lokaal uitvoeren, dus we liggen goed op schema. De volgende stap is om dit ook in onze build pipeline te laten werken. Aan het einde van de dag hopen we dat we de tests handmatig of gepland kunnen uitvoeren op de nieuwste versie van de backend en frontend ." 3. Onboarding portaal/platform inclusief gamification De leden van dit projectteam zijn allemaal vrij recent begonnen bij ACA. En dat is precies wat hen samenbracht, want hun doel was om een platform te ontwikkelen dat het onboardingproces voor nieuwe medewerkers efficiënter en leuker maakt . Dieter Vennekens deelde zijn enthousiasme met ons: "We zijn begonnen met een brainstormsessie om de eisen en doelen van het platform te definiëren. Vervolgens hebben we deze bekeken met de belangrijkste gebruikers om er zeker van te zijn dat het eindproduct overeenkomt met hun verwachtingen. Ons doel is om voor de lunch de basisstructuur vast te stellen, zodat we ons 's middags intensief kunnen richten op ontwikkeling en styling. Aan het einde van de dag is ons doel om een functioneel prototype te onthullen. Dit project dient als een kans om de mogelijkheden van Low-Code te laten zien." 4. Automatische nasynchronisatie, transcriptie en samenvatting van gesprekken Toen we de vergaderruimte binnenkwamen, vonden we het projectteam verdiept in hun werk, en Katrien Gistelinck gaf een beknopte uitleg over hun bedrijf. Katrien Gistelinck gaf een beknopte uitleg over hun business. "Ons project is in essentie opgedeeld in twee aspecten. Ten eerste willen we een automatische transcriptie en samenvatting van een gesprek ontwikkelen. Tegelijkertijd werken we aan het live nasynchroniseren van een gesprek, hoewel we onzeker zijn over de haalbaarheid van dat laatste binnen een dag. Het is misschien een beetje ambitieus, maar we zijn vastbesloten om het te proberen." Ze vervolgt: "Vanochtend hebben we ons gericht op het definiëren van de gebruikersstroom en het selecteren van de tools die we gaan gebruiken. Op dit moment worden er meerdere taken tegelijkertijd uitgevoerd, waarbij zowel de UI als de backend componenten worden aangepakt." 5. Publiq film biedt data-import via ML Dit team, bestaande uit zes medewerkers van Publiq en drie van ACA, hield een kennismakingsronde gevolgd door een bespreking van de projectaanpak op het whiteboard. Daarna verdeelden ze de taken onder elkaar. Peter Jans: "Iedereen werkt ijverig aan de toegewezen taken en we communiceren voortdurend. De sfeer is positief en we hebben zelfs een groepsfoto gemaakt! Een hele dag samenwerken met de klant aan een oplossing voor een specifieke uitdaging geeft energie. " "Aan het einde van de dag is ons doel om een functionele demo te presenteren die de AI en ML (Machine Learning) verwerking van een e-mailbijlage laat zien, gevolgd door het uploaden van de gegevens naar de UIT database. Het resultaat zou toegankelijk moeten zijn op uitinvlaanderen.be ." Peter voegt er optimistisch aan toe: "We mikken op de winst." That's the spirit, Peter! 6. SMOCS, laag niveau spottend beheersysteem Bij onze aankomst was het SMOCS-team diep in hun besprekingen verdiept, waardoor we aarzelden om te onderbreken. Uiteindelijk namen ze toch de tijd om op onze vragen in te gaan en de sfeer was zonder twijfel positief. "We begonnen het proces met een korte brainstormsessie op het whiteboard. Nadat we onze prioriteiten hadden vastgesteld, hebben we de taken dienovereenkomstig verdeeld. Op dit moment liggen we op schema: de ontwerpfase is grotendeels afgerond en er is aanzienlijke vooruitgang geboekt met de API. We voeren elk uur een statuscontrole uit en sturen waar nodig bij," deelden ze. "Ons doel is om aan het einde van de dag een eerste versie van SMOCS te laten zien, compleet met een dashboard dat een uitgebreid overzicht biedt van de verzonden verzoeken samen met de bijbehorende antwoorden die we kunnen aanpassen. Daarnaast hebben we goede hoop dat het aangepaste antwoord ook te zien zal zijn in de applicatie voor de eindgebruiker." 7. Samengestelde architectuur voor gegevensverwerking Dit projectteam wil een basisarchitectuur opzetten die toepasbaar is op soortgelijke projecten die vaak gericht zijn op het verzamelen en verwerken van gegevens. Op dit moment beginnen klanten projecten meestal vanaf nul, terwijl veel bouwstenen hergebruikt zouden kunnen worden via platform engineering en samenstelbare data. "Hoewel de tijd erg snel vliegt, hebben we al veel goede ideeën verzameld", zegt Christopher Scheerlinck. "Wat willen we later presenteren? Een heel complex schema dat niemand begrijpt (lacht). Nee, we willen onze concepten voor het realiseren van een herbruikbare architectuur laten zien, die we later aan de klant kunnen voorleggen. Aangezien we geen demo kunnen geven die vergelijkbaar is met die van andere teams, hebben we ons al neergelegd bij de kans dat we tweede worden!" 8. Virtuele medewerkers Dit team was misschien wel het kleinste van allemaal, maar vlak voor de middag was er al veel werk verzet. "Vanochtend hadden we eerst een korte vergadering met de klant om hun verwachtingen te bespreken," legt Remco Goyvaerts uit. "Daarna hebben we de prioritaire taken geïdentificeerd en zijn we allebei snel aan de slag gegaan. Het doel is om een virtuele collega te ontwikkelen die gevoed kan worden met nieuwe informatie op basis van AI en ML . Deze virtuele collega kan nieuwe medewerkers helpen om bepaalde informatie te vinden zonder dat ze andere medewerkers hoeven te storen. Ik weet zeker dat we iets moois kunnen laten zien, dus op dit moment is de stress goed onder controle." Chatbottechnologie wordt steeds populairder. Remco ziet dit Ship-IT project als de ideale gelegenheid om meer te leren over toepassingen met een langetermijngeheugen. "De Ship-It Day is een fantastisch initiatief", zegt Remco. "Het is heerlijk om de kans te krijgen om los te komen van de routinematige werkstructuur en innovatieve ideeën te verkennen." 9. Geautomatiseerde facturatie De klant die bij dit project betrokken is, verwerkt jaarlijks 50.000 facturen in verschillende talen. Het doel is om accurate informatie uit deze facturen te halen, deze te vertalen naar de juiste taal en om te zetten in een formaat dat gemakkelijk te hanteren is voor de klant . "Hoewel we vrij laat zijn begonnen, hebben we al grote vooruitgang geboekt," merkt Bram Meerten op. "We kunnen de factuur nu al naar Azure sturen, die er redelijk goed de nodige gegevens uithaalt. Vervolgens sturen we die data door naar ChatGPT, wat mooie resultaten oplevert. Onze focus ligt nu op het visualiseren in een frontend. De volgende fase is het implementeren van extra controles en oplossingen voor regelinformatie die niet goed wordt verwerkt." Bram is enthousiast over het concept van de Ship-IT Day: "Het is leuk om 's ochtends vanaf nul te beginnen en aan het eind van de dag een functionele oplossing te presenteren. Hoewel het misschien niet helemaal af is, zal het zeker een mooi prototype zijn." En de winnaar is .... 🏆 Om 17.00 uur was het zover... Elk team kreeg de kans om hun prestaties te laten zien in een pitch van 5 minuten, gevolgd door een stemronde waarbij alle aanwezigen hun favoriet konden kiezen. Alle teams presenteerden met succes een functioneel prototype dat de uitdagingen van hun klant aanpakte. Het SMOCS team slaagde er misschien niet in om hun oplossing te visualiseren, maar introduceerde wel aanvullende zakelijke ideeën met de SMOCintosh en het SMOCS-to-go voedselconcept. Deze ideeën haalden echter net niet de overwinning. In een spannende finale kwam het team dat werkte aan het onboarding platform voor ACA als winnaar uit de bus! Onder de naam NACA (New at ACA) presenteerden ze een indrukwekkend prototype van het onboardingplatform, waar werknemers geleidelijk een raket bouwen terwijl ze hun onboardingproces doorlopen. Niet alleen de functionaliteit was opmerkelijk, maar ook de gebruikersinterface kreeg veel lof. Gefeliciteerd aan de welverdiende winnaars! Veel plezier met jullie shopping- en dinercheques. 🤩 Tot volgend jaar!
Lees verderWant to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!


