LangChain is één van de populairste Pyhon libraries ter wereld. De toolkit ontving meer dan 117.000 sterren op GitHub en wordt alom geprezen op YouTube. Maar wat is LangChain nu eigenlijk, en wat kun je ermee?
Wat is LangChain?
LangChain is een Python package waarmee je de communicatie met Large Language Models (LLM’s) kunt stroomlijnen. Dus wil je LLM’s in jouw applicaties gebruiken, dan heb je een library zoals LangChain nodig. Ik heb het trouwens over een Python plugin, maar LangChain kan ook gebruikt worden in combinatie met Javascript. Omdat mijn voorkeur uitgaat naar Python zal dit artikel focussen op het gebruik van LangChain met Python.
Oké, dus LangChain wordt gebruikt voor het communiceren met LangChain. Maar er is toch ook zoiets als de OpenAI SDK, en modellen zoals Anthropic en Gemini hebben toch ook allen hun eigen SDK? Klopt! En dat is ook precies de reden dat LangChain bestaat!
Stel je voor dat je een applicatie bouwt waarin je gebruik maakt van de OpenAI API. Maar op het einde van het project kom je erachter dat het model dat je gebruikt toch redelijk geprijsd is, en dat een van de modellen van Anthropic eigenlijk een betere oplossing is voor jou. Je zult nu je hele applicatie moeten ombouwen.
Tenzij.. Je raadt het al: LangChain. Met LangChain kun je applicaties bouwen die model-agnostisch zijn. In een paar seconden kun je jouw applicatie laten wisselen tussen OpenAI’s modellen en modellen van andere leveranciers. Sterker nog: je kunt zelfs meerdere modellen gebruiken in dezelfde applicatie! Een lijst van alle modellen die LangChain ondersteunt vind je hier.
LangChain kan nog meer!
Maar dat is nog lang niet alles! LangChain bevat veel meer dan connecties met (vrijwel) alle LLM’s. Het bevat ook standaard bouwstenen voor wie Retrieval Augmented Generation (RAG) applicaties wil bouwen of bijvoorbeeld een AI agent. Door gebruik te maken van deze standaard componenten hoef je niet steeds het wiel opnieuw uit te vinden.
Ik werk al een hele tijd met LangChain, en ik ben nog geen uitdaging tegengekomen waar LangChain geen standaard oplossingen voor heeft gebouwd. Daarover later meer.
Aan de slag met LangChain
Voor wie dit allemaal goed klinkt zal ik onderstaand een aantal voorbeelden laten zien. Voordat we kunnen gaan programmeren wil ik je verzoeken VS Code (een andere IDE) te openen en de volgende libraries te installeren:
pip install langchain
pip install langchain-openai
pip install langchain-ollamaNadat je LangChain hebt geïnstalleerd is het tijd om je eerste code te schrijven! Laten we eens vragen hoeveel inwoners Nederland heeft door gebruik te maken van LangChain. Je kunt onderstaande voorbeeld kopiëren naar je IDE, je hoeft alleen je eigen OpenAI API Key in te vullen.
import os
from langchain.chat_models import init_chat_model
os.environ["OPENAI_API_KEY"] = "[jouw OpenAI API Key hier]"
llm = init_chat_model("gpt-4o-mini", model_provider="openai")
response = llm.invoke("Hoeveel inwoners heeft Nederland?")
print(response.content)In dit voorbeeld maak ik gebruik van de functie init_chat_model(). Met deze functie kun je LangChain verbinden aan vrijwel elk model! In dit geval maken we gebruik van OpenAI’s gpt-4o-mini, maar kijk maar eens wat er gebeurt als we naar een open source model willen switchen:
import os
from langchain.chat_models import init_chat_model
llm = init_chat_model("llama3.2", model_provider="ollama")
response = llm.invoke("Hoeveel inwoners heeft Nederland?")
print(response.content)Je ziet dat we razendsnel (en zonder aanpassingen in de code) kunnen switchen naar llama3.2, gehost via ollama. Omdat ollama modellen lokaal op je pc laat draaien heb ik de OpenAI API Key weggehaald, maar ook als je deze laat staan werkt deze code gewoon.
Wat kun je nog meer met LangChain?
Oké, dus met LangChain kun je een applicatie bouwen die model-agnostisch is: oftewel – je kunt razendsnel switchen tussen LLM’s – zonder de code van je applicatie aan te passen. Maar met LangChain kun je nog veel meer! Hieronder een aantal voorbeelden:
Gestructureerde output genereren
Een van de onderdelen van LangChain is het genereren van gestructureerde output. Hiermee kun je ervoor zorgen dat de response van een LLM voldoet aan een bepaalde (JSON) structuur. Meer hierover lees je hier.
Retrieval Augmented Generation (RAG)
In de meeste gevallen wil je LLM’s ook gebruik laten maken van je eigen data. Hiervoor is RAG de oplossing bij uitstek! LangChain bevat een aantal standaard componenten voor het bouwen van RAG-applicaties.
Agents en tools
Ook wie gebruik wilt maken van agents en tools kan bij LangChain terecht.
Human-in-the-loop
AI Agents zijn radend populair op het moment! Toch kunnen ze nog niet altijd opereren zonder tussenkomst van mensen. Daarvoor is er human-in-the-loop, waarmee medewerkers het werk van AI agents kunnen controleren en eventueel kunnen bijsturen.
Conclusie
LangChain is een populair framework, en dat is niet voor niets! LangChain is makkelijk in gebruik, model-agnostisch en bevat standaardcomponenten voor veelgebruikte bouwblokken. Ik heb heel veel componenten niet behandeld in het artikel. Neem vooral een kijkje op de website van LangChain om meer over deze library te weten te komen!