ACA Group Blog | Inzichten over Softwareontwikkeling, UX/UI, Data & Innovatie

LangChain: Een revolutie in intelligente conversatie - ACA Group

Geschreven door Remco Goyvaerts | 6-mei-2025 13:09:50

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:

  1. 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.

  2. 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.

  3. 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:

  1. Documentladers
    Met documentloaders kan LangChain gegevens ophalen uit verschillende bronnen, zoals CSV-bestanden en URL's.

  2. 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.

  3. 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.

  4. 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.

  5. 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:

  1. Gegevens ophalen op basis van een URL.
  2. De gegevens opsplitsen in hanteerbare blokken.
  3. De gegevens opslaan in een vector database.
  4. Een LLM toegang verlenen tot de vector database.
  5. 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.