✒️Door: @Jan Willem Altink
📅Datum: 27 april 2024
🕜Leestijd: 4 minuten
Update: leuk, dit projectje is opgepikt dor Langchain:
LinkedIn:
X/Twitter:
Inleiding
Nieuw weekend, nieuw AI hobby projectje. Gezien ik me de afgelopen tijd erg veel met RAG heb bezig gehouden wou ik wat andere onderwerpen bekijken. Gekozen voor LangGraph, omdat dat me een super krachtige manier van het werken met agents en flow engineering leek. Mijn inschatting is dat die 2 onderwerpen super belangrijk gaan worden (en al zijn) bij de zoektocht naar betere kwaliteit output vanuit AI systemen. Ik denk ook dat het slim gebruik van een goed gedefinieerde flow en agents de potentie van een LLM of ander generatief AI model nog een heel stuk oprekken nadat het prompt al volledig geoptimaliseerd is.
Wat
In het kort
In het kort kun je met deze applicatie foto’s delen van bonnetjes, die dan in een vaste JSOn structuur geformatteerd worden door een LLM met image to text capaciteiten. Deze gestructureerde output categoriseren we en zetten we vervolgens in een database. De gebruiker kan zelf de categorieën kiezen, ook kun je als de output vanuit de foto herkenning niet helemaal correct is de LLM nog verbeter instructies geven of switchen tussen GPT4 en Claude Opus.
Whiteboard
🔗Voor een grote versie van de whiteboard klik hier.
Gebruikte tools en technieken
- 🐘PostGres - voor het opzetten van de database (link)
- ✳️FastAPI - voor het opzetten van de API (link)
- 🕸️LangGraph - voor het configureren van de flow (link)
- 🔗LangChain - voor het definieren van de prompts en het aanroepen van de LLMs (link)
- 🐳Docker - voor de database container (link)
- 🛠️LangSmith - voor de analyse van de chains (link)
- 🧠OpenAI & Anthropic - voor de LLMs (link & link)
Waarom
- 📚LangGraph begrijpen- voor mijzelf is de belangrijkste reden van dit projectje om er wat van op te steken. Dat is gelukt, ik begrijp LangGraph een stuk beter, maar ook het opzetten van een database of het maken van een api waren allemaal vrij nieuw voor mij, dus het is goed om dat eens gedaan te hebben, deze specifieke usecase is dan natuurlijk meer een vehicel.
- 👮🏼Werken met Agents - zoals in de inleiding ook al aangegeven wou ik graag een klein projectje bouwen met Agents, deze bekende paper laat de potentie daarvan goed zien.
- 🕸️Flow engineering - nog zo’n concept dat denk ik veel waarde gaat toevoegen aan AI toepassingen. Ik vond dit een super waardevolle webinar over dat onderwerp.
Plussen en minnen
Hieronder een kort overzichtje van wat goed en minder goed ging bij het bouwen
- Het gebruik van de LangChain Pydantic parser in combinatie met een krachtig Multimodal is een super krachtige methode voor het extracten van informatie uit een afbeelding.
- de mate waarin je controle hebt over de flow is met LangGraph echt heel handig, het stelt je in staat om de LLM taak op te knippen en specifieker, kleiner en gerichter te maken, wat de output kwaliteit behoorlijk vergroot.
- In mijn usecase heb ik de flow wel heel erg “dichtgetimmerd”; gaandeweg het bouwen kwam ik er achter dat juist ook een agent een vervolgstap laten bepalen behoorlijke kansen met zich mee brengt, bij een volgend project meot ik proberen meer flexibiliteit in het design te stoppen.
- De Python code in met name de chain map is niet super netjes. Hier kan ik in metname de modulariteit en consistentie nog wel wat verbeteringen maken.
Tot Slot
Ik denk niet dat ik de LangGraph receipt extractor in het echt veel zal gaan gebruiken, maar als leerprojectje was het super leuk om te doen. Ik heb vrij veel nieuwe ideeen opgeschreven om uit te werken de komende tijd en denk er ook best wat van opgestoken te hebben.
Mocht je opmerkingen, vragen of suggesties hebben na het lezen hoor ik die zoals altijd heel graag.