We leren & delen

ACA Group Blog

Lees meer over onze inzichten en meningen over diverse onderwerpen, nuttige inzichten en advies van onze experts.

Uitgelicht

20 JAN. 2023
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Leestijd 6 min

Het starten van een nieuw webproject kan een ontmoedigende taak zijn met veel verschillende onderdelen om rekening mee te houden en te configureren. Voor ontwikkelaars kan het zeker handig zijn om toegang te hebben tot een startpunt voor het bouwen van webapps, met alle benodigde bestanden en configuraties al ingesteld. Het bespaart niet alleen veel tijd en moeite in vergelijking met wanneer je alles vanaf nul moet opbouwen, het verhoogt ook de productiviteit en maakt klanten blij omdat ze veel sneller tastbare resultaten kunnen zien. Bij ACA Group doen we veel van dergelijke implementaties en de volgende vereisten zijn gemeenschappelijk voor de meeste webapplicatieprojecten: Een geweldige gebruikerservaring: een snelle, responsieve en vlotte frontend die flexibel genoeg is om elk soort gebruikersinteractie te implementeren Betrouwbare en performante verwerking: een solide database en backend oplossing die gemakkelijk uitbreidbaar, testbaar, onderhoudbaar en begrijpbaar is voor elke ingenieur Gebruikersauthenticatie en -beveiliging: een robuuste en volwassen authenticatieserver die ook SSO en gebruikersfederatie heeft en integreert met veel verschillende providers Eenvoudige en veilige implementatie: toch eenvoudig te ontwikkelen zonder al te veel overhead Ons antwoord op deze terugkerende eisen is een flexibele softwarebasis die out of the box werkt. Met een paar regels in de terminal kun je een nieuw project opstarten dat alle bovenstaande functionaliteiten in een basistoestand heeft, wachtend om uitgebreid en uitgebouwd te worden. De figuur hieronder illustreert de basis van de architectuur die we vaak gebruiken voor kleine en middelgrote webapplicaties, en de verschillende services die een rol spelen. Natuurlijk zijn er nog andere componenten in het spel, maar die worden vaker per geval geïmplementeerd. Backend Laten we beginnen met het brein van de webapplicatie - de backend. Voor ons Python-team is het niet meer dan logisch om deze taal te gebruiken om de ruggengraat van de applicatie te bouwen. FastAPI biedt veel flexibiliteit in termen van hoe je bedrijfslogica en ontwerppatronen implementeert. Het is ook een van de best presterende backend-oplossingen die je kunt kiezen in Python; het heeft geweldige documentatie en wordt ondersteund door een solide community. Een populaire keuze voor projecten met data-analyse, machine learning of AI, een Python backend maakt het gemakkelijker om geavanceerde technologieën dichter bij de gebruiker te brengen. Frontend Voor het ontwerpen van de gebruikerservaring - of de frontend - geven we de voorkeur aan Angular , een volwassen en goed onderzocht JavaScript-framework dat overal in de industrie wordt gebruikt. Het is ontworpen om eenvoudig interactieve webapplicaties van één pagina te maken die in elke moderne webbrowser kunnen draaien. Angular heeft ook een gevestigde reputatie op het gebied van goede prestaties en schaalbaarheid, waardoor het risico op schaalbaarheidsproblemen bij grotere projecten afneemt. Een ander voordeel is dat Angular gestructureerd is en veel lijkt op backend code, waardoor het makkelijker te begrijpen is voor niet-frontend ontwikkelaars. Database en opslag Voor gegevensopslag is PostgreSQL een veelgebruikt en betrouwbaar databasemanagementsysteem (DBMS) dat zeer geschikt is voor verschillende toepassingen, waaronder webontwikkeling. Het staat bekend om zijn prestaties, vooral als het gaat om het verwerken van grote hoeveelheden gegevens. Het kan complexe query's efficiënt verwerken en heeft de reputatie goed te kunnen schalen naarmate de grootte van de database toeneemt. Het is ook rijk aan functies en heeft verschillende opties voor indexering en query optimalisatie. Beveiliging en verificatie Onze beveiligde authenticatieserver is gebouwd op Keycloak , een volwassen IAM-oplossing die organisaties helpt hun applicaties en diensten te beveiligen. Het is niet alleen open-source, maar ook gesponsord door 's werelds leider op het gebied van open source voor bedrijven, RedHat. Het biedt een enkel toegangspunt voor gebruikers om zichzelf te authenticeren en toegang te autoriseren tot verschillende bronnen; en het ondersteunt een breed scala aan authenticatiemechanismen, zoals gebruikersnaam en wachtwoord, twee-factor authenticatie en social login. Infrastructuur Het volgende stukje van de puzzel is NGinx , dat al het inkomende verkeer orkestreert en verdeelt over de services. Het is een krachtige en flexibele webserver en reverse proxy die vaak wordt gebruikt om inkomende klantverzoeken veilig en met hoge prestaties af te handelen. Het staat bekend om zijn vermogen om een groot aantal gelijktijdige verbindingen af te handelen met een laag gebruik van bronnen, en is vooral efficiënt bij het serveren van statische inhoud zoals afbeeldingen, CSS en JavaScript-bestanden. Nginx kan verzoeken van clients doorsturen naar een of meer services, waarbij het verkeer eenvoudig naar de juiste component van de webapplicatie wordt geleid en de belasting over meerdere servers of services wordt verdeeld, zelfs als ze dezelfde rol vervullen. Dit betekent ook dat alle verschillende services uitsluitend via NGinx communiceren met SSL/TLS protocollen, waardoor al het verkeer wordt versleuteld en gevoelige gegevens worden beveiligd. Implementatie Tot slot vergemakkelijkt Docker de implementatie en ontwikkeling. Door de verschillende onderdelen van de app te containeriseren, zoals de backend of de database, wordt het veel eenvoudiger om de app op verschillende hostingomgevingen te implementeren. Dit is vooral belangrijk als klanten verschillende eisen hebben op het gebied van hostingmachines, infrastructuur, enzovoort. Met Docker kunnen de services van de app op een gestandaardiseerde manier worden verpakt en vervolgens consistent worden ingezet in verschillende omgevingen. Docker heeft ook voordelen voor het beheren van de app in productie. Door componenten in containers te plaatsen, kun je eenvoudig op- of afschalen, updates en rollbacks uitrollen en de gezondheid van de app bewaken. Dit kan helpen om de betrouwbaarheid en onderhoudbaarheid van de app te verbeteren. Voor ontwikkelaars maakt Docker het ook makkelijker om de app in verschillende omgevingen te testen, samen te werken met teamleden en taken zoals het bouwen, testen en uitrollen van de app te automatiseren. Kickstart een nieuw project 👊 Het doel van deze architectuur is om een startpunt te bieden voor het bouwen van een webapplicatie met alle benodigde componenten al geconfigureerd. We hebben het verpakt in een sjabloon dat alles bevat wat je nodig hebt om te beginnen, zodat je niet vanaf nul een startarchitectuur hoeft te bouwen. In plaats daarvan kunt u de sjabloon gebruiken als basis en deze vervolgens aanpassen aan uw specifieke behoeften. Om deze template te gebruiken, hebben we gekozen voor een tool genaamd Cookiecutter. Het hoeft maar één keer geïnstalleerd te worden door de persoon die de initiële repository opzet om een nieuw project te maken op basis van een sjabloon van de bovenstaande architectuur. Als onderdeel van dit proces worden een paar waarden gevraagd om het sjabloon aan te passen, zoals de naam van het project, het e-mailadres van de beheerder, welke functies je wilt inschakelen, enzovoort. Zodra je Cookiecutter hebt gebruikt om de projectmap aan te maken, bevat deze alles wat je nodig hebt om de webapplicatie te bouwen en uit te voeren. Om met de app aan de slag te gaan, kun je een eenvoudig Docker-commando uitvoeren en de webapplicatie is in een mum van tijd klaar voor gebruik. Dit maakt live ontwikkeling op elk deel van de applicatie mogelijk met hot reload, en maakt de implementatie zo eenvoudig als een paar klikken. Conclusie Al met al kan een kant-en-klare webapplicatie-architectuur zoals beschreven in deze blog een waardevol hulpmiddel zijn om tijd en moeite te besparen op elk nieuw project. Door een solide basis te bieden voor het bouwen van een webapplicatie, kan het teams helpen om snel een MVP op te starten, zonder vanaf nul te hoeven beginnen. De combinatie van de bovenstaande technologieën bespaart niet alleen tijd en moeite, maar geeft je ook het vertrouwen dat je app goed is uitgerust voor een breed scala aan behoeften.

Lees verder
We leren & delen

ACA Group Blog

Lees meer over onze inzichten en meningen over diverse onderwerpen, nuttige inzichten en advies van onze experts.

Uitgelicht

20 JAN. 2023
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Leestijd 6 min

Het starten van een nieuw webproject kan een ontmoedigende taak zijn met veel verschillende onderdelen om rekening mee te houden en te configureren. Voor ontwikkelaars kan het zeker handig zijn om toegang te hebben tot een startpunt voor het bouwen van webapps, met alle benodigde bestanden en configuraties al ingesteld. Het bespaart niet alleen veel tijd en moeite in vergelijking met wanneer je alles vanaf nul moet opbouwen, het verhoogt ook de productiviteit en maakt klanten blij omdat ze veel sneller tastbare resultaten kunnen zien. Bij ACA Group doen we veel van dergelijke implementaties en de volgende vereisten zijn gemeenschappelijk voor de meeste webapplicatieprojecten: Een geweldige gebruikerservaring: een snelle, responsieve en vlotte frontend die flexibel genoeg is om elk soort gebruikersinteractie te implementeren Betrouwbare en performante verwerking: een solide database en backend oplossing die gemakkelijk uitbreidbaar, testbaar, onderhoudbaar en begrijpbaar is voor elke ingenieur Gebruikersauthenticatie en -beveiliging: een robuuste en volwassen authenticatieserver die ook SSO en gebruikersfederatie heeft en integreert met veel verschillende providers Eenvoudige en veilige implementatie: toch eenvoudig te ontwikkelen zonder al te veel overhead Ons antwoord op deze terugkerende eisen is een flexibele softwarebasis die out of the box werkt. Met een paar regels in de terminal kun je een nieuw project opstarten dat alle bovenstaande functionaliteiten in een basistoestand heeft, wachtend om uitgebreid en uitgebouwd te worden. De figuur hieronder illustreert de basis van de architectuur die we vaak gebruiken voor kleine en middelgrote webapplicaties, en de verschillende services die een rol spelen. Natuurlijk zijn er nog andere componenten in het spel, maar die worden vaker per geval geïmplementeerd. Backend Laten we beginnen met het brein van de webapplicatie - de backend. Voor ons Python-team is het niet meer dan logisch om deze taal te gebruiken om de ruggengraat van de applicatie te bouwen. FastAPI biedt veel flexibiliteit in termen van hoe je bedrijfslogica en ontwerppatronen implementeert. Het is ook een van de best presterende backend-oplossingen die je kunt kiezen in Python; het heeft geweldige documentatie en wordt ondersteund door een solide community. Een populaire keuze voor projecten met data-analyse, machine learning of AI, een Python backend maakt het gemakkelijker om geavanceerde technologieën dichter bij de gebruiker te brengen. Frontend Voor het ontwerpen van de gebruikerservaring - of de frontend - geven we de voorkeur aan Angular , een volwassen en goed onderzocht JavaScript-framework dat overal in de industrie wordt gebruikt. Het is ontworpen om eenvoudig interactieve webapplicaties van één pagina te maken die in elke moderne webbrowser kunnen draaien. Angular heeft ook een gevestigde reputatie op het gebied van goede prestaties en schaalbaarheid, waardoor het risico op schaalbaarheidsproblemen bij grotere projecten afneemt. Een ander voordeel is dat Angular gestructureerd is en veel lijkt op backend code, waardoor het makkelijker te begrijpen is voor niet-frontend ontwikkelaars. Database en opslag Voor gegevensopslag is PostgreSQL een veelgebruikt en betrouwbaar databasemanagementsysteem (DBMS) dat zeer geschikt is voor verschillende toepassingen, waaronder webontwikkeling. Het staat bekend om zijn prestaties, vooral als het gaat om het verwerken van grote hoeveelheden gegevens. Het kan complexe query's efficiënt verwerken en heeft de reputatie goed te kunnen schalen naarmate de grootte van de database toeneemt. Het is ook rijk aan functies en heeft verschillende opties voor indexering en query optimalisatie. Beveiliging en verificatie Onze beveiligde authenticatieserver is gebouwd op Keycloak , een volwassen IAM-oplossing die organisaties helpt hun applicaties en diensten te beveiligen. Het is niet alleen open-source, maar ook gesponsord door 's werelds leider op het gebied van open source voor bedrijven, RedHat. Het biedt een enkel toegangspunt voor gebruikers om zichzelf te authenticeren en toegang te autoriseren tot verschillende bronnen; en het ondersteunt een breed scala aan authenticatiemechanismen, zoals gebruikersnaam en wachtwoord, twee-factor authenticatie en social login. Infrastructuur Het volgende stukje van de puzzel is NGinx , dat al het inkomende verkeer orkestreert en verdeelt over de services. Het is een krachtige en flexibele webserver en reverse proxy die vaak wordt gebruikt om inkomende klantverzoeken veilig en met hoge prestaties af te handelen. Het staat bekend om zijn vermogen om een groot aantal gelijktijdige verbindingen af te handelen met een laag gebruik van bronnen, en is vooral efficiënt bij het serveren van statische inhoud zoals afbeeldingen, CSS en JavaScript-bestanden. Nginx kan verzoeken van clients doorsturen naar een of meer services, waarbij het verkeer eenvoudig naar de juiste component van de webapplicatie wordt geleid en de belasting over meerdere servers of services wordt verdeeld, zelfs als ze dezelfde rol vervullen. Dit betekent ook dat alle verschillende services uitsluitend via NGinx communiceren met SSL/TLS protocollen, waardoor al het verkeer wordt versleuteld en gevoelige gegevens worden beveiligd. Implementatie Tot slot vergemakkelijkt Docker de implementatie en ontwikkeling. Door de verschillende onderdelen van de app te containeriseren, zoals de backend of de database, wordt het veel eenvoudiger om de app op verschillende hostingomgevingen te implementeren. Dit is vooral belangrijk als klanten verschillende eisen hebben op het gebied van hostingmachines, infrastructuur, enzovoort. Met Docker kunnen de services van de app op een gestandaardiseerde manier worden verpakt en vervolgens consistent worden ingezet in verschillende omgevingen. Docker heeft ook voordelen voor het beheren van de app in productie. Door componenten in containers te plaatsen, kun je eenvoudig op- of afschalen, updates en rollbacks uitrollen en de gezondheid van de app bewaken. Dit kan helpen om de betrouwbaarheid en onderhoudbaarheid van de app te verbeteren. Voor ontwikkelaars maakt Docker het ook makkelijker om de app in verschillende omgevingen te testen, samen te werken met teamleden en taken zoals het bouwen, testen en uitrollen van de app te automatiseren. Kickstart een nieuw project 👊 Het doel van deze architectuur is om een startpunt te bieden voor het bouwen van een webapplicatie met alle benodigde componenten al geconfigureerd. We hebben het verpakt in een sjabloon dat alles bevat wat je nodig hebt om te beginnen, zodat je niet vanaf nul een startarchitectuur hoeft te bouwen. In plaats daarvan kunt u de sjabloon gebruiken als basis en deze vervolgens aanpassen aan uw specifieke behoeften. Om deze template te gebruiken, hebben we gekozen voor een tool genaamd Cookiecutter. Het hoeft maar één keer geïnstalleerd te worden door de persoon die de initiële repository opzet om een nieuw project te maken op basis van een sjabloon van de bovenstaande architectuur. Als onderdeel van dit proces worden een paar waarden gevraagd om het sjabloon aan te passen, zoals de naam van het project, het e-mailadres van de beheerder, welke functies je wilt inschakelen, enzovoort. Zodra je Cookiecutter hebt gebruikt om de projectmap aan te maken, bevat deze alles wat je nodig hebt om de webapplicatie te bouwen en uit te voeren. Om met de app aan de slag te gaan, kun je een eenvoudig Docker-commando uitvoeren en de webapplicatie is in een mum van tijd klaar voor gebruik. Dit maakt live ontwikkeling op elk deel van de applicatie mogelijk met hot reload, en maakt de implementatie zo eenvoudig als een paar klikken. Conclusie Al met al kan een kant-en-klare webapplicatie-architectuur zoals beschreven in deze blog een waardevol hulpmiddel zijn om tijd en moeite te besparen op elk nieuw project. Door een solide basis te bieden voor het bouwen van een webapplicatie, kan het teams helpen om snel een MVP op te starten, zonder vanaf nul te hoeven beginnen. De combinatie van de bovenstaande technologieën bespaart niet alleen tijd en moeite, maar geeft je ook het vertrouwen dat je app goed is uitgerust voor een breed scala aan behoeften.

Lees verder

Alle blogs

machinaal leren
machinaal leren
Leestijd 5 min
6 MEI 2025

Of we nu onze telefoons ontgrendelen met gezichtsherkenning, stemcommando's roepen naar onze slimme apparaten vanaf de andere kant van de kamer of een lijst krijgen voorgeschoteld met films die we misschien leuk vinden... machine learning heeft in veel gevallen ons leven ten goede veranderd. Maar zoals met veel geweldige technologieën, heeft het ook een schaduwzijde. Een belangrijke is de massale, vaak ongereguleerde, verzameling en verwerking van persoonlijke gegevens. Soms lijkt het wel alsof er voor elk positief verhaal een negatief verhaal is over onze privacy die in gevaar is . Het is duidelijk dat we gedwongen zijn om privacy de aandacht te geven die het verdient. Vandaag wil ik het hebben over hoe we toepassingen voor machine learning kunnen gebruiken zonder dat we ons zorgen hoeven te maken over privacy en ons zorgen hoeven te maken dat privégegevens openbaar worden . Machine learning met randapparaten Door de intelligentie op randapparaten op locatie te plaatsen, kunnen we ervoor zorgen dat bepaalde informatie de sensor die deze vastlegt niet verlaat. Een randapparaat is een stuk hardware dat wordt gebruikt om gegevens dicht bij de bron te verwerken. In plaats van video's of geluid naar een gecentraliseerde processor te sturen, worden ze op de machine zelf verwerkt. Met andere woorden, je vermijdt dat al deze gegevens worden doorgestuurd naar een externe applicatie of een cloud-gebaseerde service. Edge-apparaten worden vaak gebruikt om latentie te verminderen. In plaats van te wachten tot de gegevens over een netwerk reizen, krijg je een onmiddellijk resultaat. Een andere reden om een edge device te gebruiken is om de kosten van bandbreedte te verlagen. Apparaten die gebruik maken van een mobiel netwerk werken mogelijk niet goed in landelijke gebieden. Zelfrijdende auto's maken bijvoorbeeld optimaal gebruik van beide redenen. Elke video-opname naar een centrale server sturen zou te tijdrovend zijn en de totale latentie zou de snelle reacties die we van een autonoom voertuig verwachten in de weg staan. Hoewel dit belangrijke aspecten zijn om te overwegen, ligt de focus van deze blogpost op privacy. Met de General Data Protection Regulation (GDPR) die in 2018 door het Europees Parlement van kracht werd, zijn mensen zich meer bewust geworden van hoe hun persoonlijke informatie wordt gebruikt . Bedrijven moeten toestemming vragen om deze informatie op te slaan en te verwerken. Sterker nog, overtredingen van deze verordening, bijvoorbeeld door geen adequate beveiligingsmaatregelen te nemen om persoonlijke gegevens te beschermen, kunnen leiden tot hoge boetes. Dit is waar edge devices in uitblinken. Ze kunnen een afbeelding of geluidsfragment onmiddellijk verwerken zonder dat er externe opslag of verwerking nodig is. Omdat ze de ruwe gegevens niet opslaan, wordt deze informatie vluchtig. Een randapparaat kan bijvoorbeeld camerabeelden gebruiken om het aantal mensen in een kamer te tellen. Als het camerabeeld op het apparaat zelf wordt verwerkt en alleen de grootte van de menigte wordt doorgestuurd, blijft ieders privacy gewaarborgd. Prototyping met Edge TPU Coral, een submerk van Google, is een platform dat software en hardware tools biedt om machine learning te gebruiken. Een van de hardwarecomponenten die ze aanbieden is het Coral Dev Board . Het is aangekondigd als " Google's antwoord op de Raspberry Pi ". Het Coral Dev Board draait een Linux-distributie gebaseerd op Debian en heeft alles aan boord om prototypes van machine learning-producten te maken. Centraal op het bord staat een Tensor Processing Unit (TPU) die is gemaakt om Tensorflow (Lite) bewerkingen uit te voeren op een energiezuinige manier. Je kunt meer lezen over Tensorflow en hoe het helpt om snel machinaal leren mogelijk te maken in een van onze eerdere blogposts . Als je goed naar een proces van machinaal leren kijkt, kun je twee fasen onderscheiden. De eerste fase is het trainen van een model op basis van voorbeelden, zodat het bepaalde patronen kan leren. De tweede fase is het toepassen van de mogelijkheden van het model op nieuwe gegevens. Bij het dev board hierboven is het de bedoeling dat je je model traint op cloudinfrastructuur. Dat is logisch, want voor deze stap is meestal veel rekenkracht nodig. Zodra alle elementen van je model zijn geleerd, kunnen ze naar het apparaat worden gedownload met behulp van een speciale compiler. Het resultaat is een kleine machine die een krachtig algoritme voor kunstmatige intelligentie kan uitvoeren terwijl hij niet is aangesloten op de cloud . Gegevens lokaal houden met Federated Learning Het bovenstaande proces doet je misschien afvragen welke gegevens worden gebruikt om het model voor machinaal leren te trainen. Er zijn veel openbaar beschikbare datasets die je kunt gebruiken voor deze stap. Over het algemeen worden deze datasets opgeslagen op een centrale server. Om dit te vermijden, kun je een techniek gebruiken die Federated Learning heet. In plaats van de centrale server het volledige model te laten trainen, doen verschillende nodes of edge devices dit individueel. Elk knooppunt stuurt updates over de parameters die ze hebben geleerd, ofwel naar een centrale server (Single Party) of naar elkaar in een peer-to-peer opstelling (Multi Party). Al deze wijzigingen worden vervolgens gecombineerd tot één globaal model. Het grootste voordeel van deze opzet is dat de opgenomen (gevoelige) gegevens nooit de lokale node verlaten . Dit is bijvoorbeeld gebruikt in Apple's QuickType toetsenbord voor het voorspellen van emoji's , op basis van het gebruik van een groot aantal gebruikers. Eerder dit jaar bracht Google TensorFlow Federated uit om applicaties te maken die leren van gedecentraliseerde data. Takeaway Bij ACA hechten we veel waarde aan privacy, net als onze klanten. Het privé houden van uw persoonlijke gegevens en gevoelige informatie is (y)onze prioriteit. Met technieken zoals federated learning kunnen we u helpen uw AI-potentieel te ontketenen zonder dat dit ten koste gaat van de gegevensbeveiliging. Benieuwd hoe dat precies in jouw organisatie zou werken? Stuur ons een e-mail via ons contactformulier en we nemen snel contact met je op.

Lees verder
chat gpt
chat gpt
LangChain: Een revolutie in conversationele AI
Leestijd 5 min
6 MEI 2025

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.

Lees verder
ai
ai
Leestijd 5 min
6 MEI 2025

In de nabije toekomst zal kunstmatige intelligentie (AI) je bedrijf naar een hoger niveau tillen. Het zal de productiviteit, het gebruik van resources, de onderhoudbaarheid, de efficiëntie van het personeelsbestand en nog veel meer verhogen. Maar voordat dat kan gebeuren, moet je gegevens verzamelen en genoeg voorbeelden geven om je AI-algoritmes te trainen. Of je bedrijf nu actief is in de financiële sector of in de medische sector, of je je nu richt op warehousing of afvalverwerking, elk bedrijf heeft één ding gemeen: er stromen al gegevens door de organisatie. Deze blogpost wil je bewust maken van het belang van gegevensverzameling als opstap naar Kunstmatige Intelligentie . Alleen als je gegevens zichtbaar, adequaat en aangevuld zijn met externe gegevens en representatief zijn voor je demografie, kun je profiteren van positieve kansen die zich voordoen in de wereld van vandaag en kun je betere zakelijke beslissingen nemen. Wat is kunstmatige intelligentie? Kunstmatige intelligentie (AI) in zijn eenvoudigste vorm is de imitatie van menselijke intelligentie door een machine. Met andere woorden, het stelt programma's in staat om mensachtige beslissingen te nemen en mensachtige redeneringen te volgen. Een populair subdomein van Kunstmatige Intelligentie is Machine Learning. In plaats van expliciet een reeks regels te programmeren, leiden Machine Learning-toepassingen patronen af uit voorbeelden en 'leren' ze hoe dingen werken. Verberg uw gegevens Toegankelijke gegevens kunnen goed gebruikt worden. Er is vast wel iemand die weet hoeveel mensen er voor je bedrijf werken, hoeveel voorraad je bijhoudt, hoeveel voorraad je de afgelopen maanden hebt verplaatst en hoe je fabriek scoort op efficiëntie en productiviteit. Maar wat gebeurt er met deze gegevens als ze eenmaal zijn verzameld? Een mooie presentatie voor het bestuur? Zijn deze cijfers ergens in de cloud opgeslagen? Misschien zijn ze beschikbaar in een gecentraliseerde database? Of, erger nog, misschien staan ze in een Excel-bestand op een privéschijf stof te verzamelen? In veel bedrijven heeft slechts een beperkt aantal mensen toegang tot bepaalde bedrijfsmiddelen. Omdat dit betekent dat gegevens geïsoleerd zijn van de rest van de organisatie, noemen we ze informatiesilo's. Dit impliceert niet alleen wantrouwen in de organisatie, het beperkt ook het team of de applicatie die de gegevens verwerkt. Voor dezelfde gegevens kunnen er verschillende interpretaties zijn tussen teams, of een correlatie tussen kenmerken kan verborgen blijven omdat de gegevens over verschillende silo's zijn verspreid. Er is een groot voordeel wanneer gegevens algemeen beschikbaar zijn op een gestandaardiseerde manier. Je kunt niet alleen vertrouwen op de betrouwbaarheid van de bron, maar je kunt ook een minimum aan kwaliteit en volledigheid garanderen. Als je een bedrijfscultuur opbouwt waarin gegevens centraal staan en vandaag begint met het verzamelen van die gegevens op een uniforme manier, zullen ze morgen je kunstmatige intelligentie voeden. Bewaar meer dan alleen JOUW gegevens Hoewel het voorspellen van de toekomst nooit zeker is, kun je verrassingen voorkomen door externe factoren mee te nemen. Als je bijvoorbeeld elektrische auto's verkoopt, kan een stijgende olieprijs een positieve invloed hebben op je verkoop. Een verandering in het overheidsbeleid kan daarentegen een negatieve invloed hebben. Een hittegolf kan ervoor zorgen dat je werknemers meer pauzes moeten nemen om uitputting te voorkomen, wat een invloed heeft op de productiviteit. Zelfs het annoteren van gegevens met bedrijfsinitiatieven kan gunstig zijn: marketingcampagnes resulteren (hopelijk) in een grotere zichtbaarheid van je organisatie en oplossingen, wat leidt tot meer verkoop. Daarom moeten de cijfers van je organisatie worden opgeslagen samen met externe feiten en cijfers die invloed hebben op de processen die waardevol zijn voor je bedrijf. Een algoritme voor machinaal leren kan gemakkelijk rekening houden met deze extra parameters om een verband te leggen tussen meerdere gegevenssets. Het kan onderscheid maken tussen seizoensgebonden effecten, het effect van klimatologische omstandigheden en een algemene trend van stijgende verkoopcijfers. Het centraliseren van de besluitvorming rond bedrijfsgegevens is belangrijk, maar dat geldt ook voor externe gegevens: de wereld om ons heen verandert voortdurend. Wees voorbereid om VEEL gegevens te verzamelen. Wees op je hoede voor bevooroordeelde gegevens Er zijn veel voorbeelden van gevallen waarin datamining ten onrechte heeft geconcludeerd wat het belang is van een bepaalde invoerfunctie. Een volledige weergave van je inventaris of klantenbestand is van vitaal belang voor de impact van gegevensanalyse. Daarnaast kan het normaliseren van je invoer voorkomen dat je model zich ooit bewust wordt van ongewenste kenmerken. Een neuraal netwerk dat is ontworpen om huidkanker te detecteren, was in staat om bij het analyseren van foto's een correlatie te identificeren tussen de aanwezigheid van een liniaal naast een tumor. In een poging om wolven en husky's te classificeren, selecteerden wetenschappers opzettelijk afbeeldingen met een specifieke achtergrond om hun algoritme te trainen. Dit bewijst dat bevooroordeelde gegevens leiden tot een onnauwkeurig model voor machinaal leren. Dit is een probleem waar zelfs ervaren datawetenschappers mee te maken krijgen. Geen wonder dat experts zeggen dat ze meer tijd besteden aan het voorbereiden van de gegevens dan aan het ontwerpen en trainen van modellen... "Het heeft meer zin om je zorgen te maken over de gegevens en minder kieskeurig te zijn over welk algoritme je moet toepassen. " - Kunstmatige intelligentie: Een moderne benadering (S. Russell en P. Norvig) Ook al zijn verzamelde gegevens erg waardevol voor je bedrijf, je hebt ze waarschijnlijk niet verzameld met het gebruik voor AI-toepassingen in gedachten. Daarom bevatten ze waarschijnlijk verstorende kenmerken die het leerproces zullen beïnvloeden. Het is van vitaal belang om vanaf nu na te denken over je dataverzameling en deze te beoordelen als je ze wilt voorbereiden op gebruik in AI-toepassingen. Takeaway Steeds meer bedrijven veranderen hun processen in datagestuurde processen om een concurrentievoordeel te behalen. Om te begrijpen hoe bepaalde aspecten je productiviteit beïnvloeden, is het belangrijk om gegevens van hoge kwaliteit te verzamelen. Als je bronnen betrouwbaar zijn en je een geschikte toepassing hebt om inzichtelijke patronen te presenteren, kun je deze gebruiken om zakelijke beslissingen te ondersteunen. Vandaag de dag is het verzamelen van gegevens niet het moeilijkste deel. Er zijn genoeg tools die je daarbij helpen. De echte uitdaging ligt in het structureren en vastleggen van de juiste gegevens . Het is niet eenvoudig om een oplossing te vinden die geschikt is voor uw specifieke geval, maar u kunt beginnen met het opzetten van een database of datawarehouse, nadenken over hoe u uw gegevens gaat structureren en deze vervolgens toepassen. Als u hulp nodig hebt of als u vragen hebt, klik dan hier om contact met ons op te nemen en stuur ons een bericht! Onderneem vandaag nog actie, want weten hoe je dit kunt realiseren kost tijd en oefening. Bereid je bedrijf voor op een datagestuurde cultuur en begin met het opbouwen van kennis over machine learning om het potentiële voordeel dat je uit je gegevens haalt te benutten.

Lees verder
Leestijd 5 min
6 MEI 2025

Effectieve audits zijn essentieel voor naleving van de regelgeving, risicobeheer en het verbeteren van de operationele efficiëntie. Traditionele auditprocessen kunnen echter tijdrovend zijn en bieden vaak slechts beperkte inzichten. Gelukkig biedt kunstmatige intelligentie (AI) een revolutionaire oplossing. Door machine learning (ML) toe te passen , kun je auditprocessen optimaliseren, verborgen risico's en patronen blootleggen en de manier waarop audits worden uitgevoerd transformeren. In dit artikel wordt onderzocht hoe AI kan helpen om de audits van je organisatie efficiënter en veiliger te maken. Meer waarde halen uit je audits met AI Auditgegevens hebben vaak een onbenut potentieel. Ze bevatten cruciale informatie over de activiteiten en risico's van een organisatie, maar vanwege de omvang en complexiteit is het analyseren van deze gegevens van oudsher een uitdaging. AI maakt het mogelijk om deze gegevens op een dieper niveau te analyseren, waardoor inzichten worden onthuld die anders verborgen zouden blijven. Hierdoor kunnen audits verschuiven van een noodzakelijke taak naar een strategische kans voor groei en betere besluitvorming. De kracht van AI in audits: belangrijkste voordelen AI opent nieuwe mogelijkheden voor audits door geavanceerde gegevensanalyse te combineren met automatisering. Hier zijn enkele manieren waarop AI waarde toevoegt aan het auditproces: 1. Verbeterde efficiëntie Door repetitieve, tijdrovende taken te automatiseren, stelt AI auditors in staat zich te richten op strategische activiteiten. Dit bespaart tijd, verhoogt de productiviteit en verlaagt de auditkosten. 2. Toegenomen nauwkeurigheid AI- en ML-technieken kunnen enorme hoeveelheden gegevens analyseren met een precisie die voor mensen moeilijk te evenaren is. Dit leidt tot nauwkeurigere en betrouwbaardere auditresultaten. 3. Snellere detectie van fraude AI kan snel afwijkingen in gegevens identificeren met behulp van technieken zoals outlier detection, waardoor fraude of risico's in een vroeg stadium worden ontdekt, zodat je ze kunt aanpakken voordat ze escaleren. 4. Compliance en risicobeheer AI controleert voortdurend de naleving van regelgeving, draagt bij aan robuust risicomanagement en verlaagt de kans op boetes of juridische problemen. 5. Diepere inzichten AI biedt met technieken als clustering en Natural Language Processing (NLP) diepere inzichten in complexe bedrijfsprocessen. Dit helpt bij het identificeren van inefficiënties, risico's en verbeterpunten, wat leidt tot een slimmere en effectievere bedrijfsvoering. AI-technieken voor betere audits AI-technologieën transformeren de manier waarop audits worden uitgevoerd. Hieronder staan enkele belangrijke AI- en ML-technieken die helpen om audits effectiever te maken: 1. Clusteren Clusteringsalgoritmen , zoals K-means , Hierarchical Clustering en DBSCAN , groeperen gegevens in clusters op basis van overeenkomsten. K-means bijvoorbeeld groepeert gegevenspunten op basis van hun nabijheid tot een centraal punt ( centroïde ), waarbij de dichtstbijzijnde punten een cluster vormen. Bij audits helpt clusteren bij het segmenteren van financiële transacties, klantprofielen of operationele gegevens, waardoor het eenvoudiger wordt om patronen te ontdekken die duiden op risico's of inefficiënties. Zo kun je verdachte groepen transacties detecteren die nader onderzoek vereisen. 2. Detectie van uitschieters Outlier detectie identificeert datapunten die significant afwijken van de rest van de dataset. Deze techniek is cruciaal voor het opsporen van frauduleuze activiteiten, fouten of ongebruikelijke transacties. Outlier detectie gebruikt statistische methoden, ML modellen zoals Isolation Forest , en technieken zoals Z-score en IQR ( Interquartile Range ) om deze afwijkingen te detecteren. Door onregelmatige gegevenspunten te markeren, kunnen auditors zich richten op de elementen met het hoogste risico. 3. Natuurlijke taalverwerking (NLP) NLP stelt computers in staat om tekstgegevens zoals e-mails, contracten en rapporten te begrijpen, te analyseren en te genereren. NLP-modellen, zoals BERT en GPT , gebruiken technieken zoals tokeniseren , stammen , lemmatiseren en sentimentanalyse om tekst te verwerken en te analyseren. Dit is ideaal voor het identificeren van relevante informatie en risico's die verborgen zitten in grote hoeveelheden documentatie. NLP kan bijvoorbeeld duizenden e-mails scannen op verdachte zinnen of patronen die duiden op potentiële compliance risico's of frauduleuze activiteiten. Voorbeeld uit de praktijk: Hoe AI audits transformeert Laten we eens kijken naar een praktijkvoorbeeld. Een internationale financiële dienstverlener besloot zijn auditprocessen te moderniseren met behulp van AI. Traditionele audits waren tijdrovend en misten vaak risico's door de overweldigende hoeveelheid gegevens. Door AI te integreren kon de organisatie snel risico's identificeren die voorheen onopgemerkt waren gebleven. Risico's en trends ontdekken met clustering Het bedrijf gebruikte een interactieve scatter plot grafiek, aangedreven door clustering, om de risicoscores voor elke audit visueel weer te geven. Deze visualisatie maakte het gemakkelijk om audits met een hoog risico te herkennen, met kleurverlopen van blauw (laag risico) tot rood (hoog risico). Efficiënte documentnavigatie met AI-tags Elk document werd automatisch geanalyseerd en getagd op basis van gemeenschappelijke kenmerken en patronen. Deze door AI gegenereerde tags zorgen voor een gestructureerde en georganiseerde aanpak van documentbeheer, waardoor het bedrijf snel belangrijke informatie kan vinden in een zee van gegevens. Risicofactoren identificeren met NLP NLP werd gebruikt om tekstgegevens uit contracten en rapporten te analyseren en risicofactoren te extraheren. Hierdoor konden gebruikers snel potentiële risico's identificeren en waardevolle inzichten verkrijgen uit ongestructureerde gegevens. AI: uw partner voor een effectiever auditproces Door AI-technologieën te integreren in je auditproces kun je niet alleen je audits moderniseren, maar ook je vermogen om risico's te beheren en compliance te garanderen aanzienlijk vergroten. Of het nu gaat om fraudedetectie, compliance monitoring of het verkrijgen van diepere bedrijfsinzichten, AI helpt je om snellere, nauwkeurigere beslissingen te nemen . Auditing is niet langer alleen een vereiste - het wordt een krachtig hulpmiddel voor groei en succes. Klaar om de kracht van AI in te zetten voor je audits? {% module_block module "widget_cccd4918-dd25-48b9-bbfa-141d54715c53" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Contact an AI expert today"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":null,"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %} Neem vandaag nog contact op met een AI-expert!

Lees verder