AI-chatbots zijn niet langer voorbehouden aan grote bedrijven met diepe zakken. Dankzij open-source modellen en tools als Ollama, LangChain en FastAPI kan elke KMO vandaag een slimme chatbot bouwen die klantvragen beantwoordt, afspraken plant en je team ontlast. In dit artikel leg ik stap voor stap uit hoe ik dat aanpak voor mijn eigen projecten.
Waarom een chatbot voor je KMO?
De meeste kleine bedrijven besteden uren per week aan repetitieve klantvragen: "Wat zijn jullie openingsuren?", "Kan ik mijn bestelling volgen?", "Hebben jullie dit product in het blauw?". Een chatbot kan 80% van die vragen direct beantwoorden, 24/7, zonder dat er iemand achter een scherm moet zitten.
Het mooie? Je hoeft niet te kiezen tussen een dure cloud-oplossing en een domme FAQ-bot. Met een lokaal draaiend taalmodel heb je volledige controle over je data, geen maandelijkse API-kosten, en tóch indrukwekkende resultaten.
De tech stack
- Ollama — draait LLM-modellen lokaal op je eigen hardware
- Python + FastAPI — lichtgewicht backend voor je chatbot API
- LangChain — framework om je chatbot context en geheugen te geven
- YAML-configuratie — definieer het gedrag van je bot zonder code te wijzigen
Stap 1: Ollama installeren en een model laden
Ollama maakt het belachelijk eenvoudig om lokale LLMs te draaien. Na installatie heb je met één commando een volledig taalmodel beschikbaar:
# Installeer Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Download het Mistral model (licht en snel)
ollama pull mistral
# Test het model
ollama run mistral "Wat is de hoofdstad van België?"Stap 2: Een simpele chatbot API bouwen
Met FastAPI en de Ollama Python client bouw je in minder dan 30 regels een werkende chatbot endpoint:
from fastapi import FastAPI
from ollama import chat
app = FastAPI()
SYSTEM_PROMPT = """
Je bent een vriendelijke klantenservice medewerker.
Je beantwoordt vragen kort en bondig in het Nederlands.
Als je het antwoord niet weet, zeg dat eerlijk.
"""
@app.post("/chat")
async def chat_endpoint(vraag: str):
response = chat(
model="mistral",
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": vraag},
],
)
return {"antwoord": response["message"]["content"]}Stap 3: Context toevoegen met LangChain
Een chatbot zonder context over je bedrijf is nutteloos. Met LangChain kun je documenten laden (FAQ-pagina's, productinfo, handleidingen) en die als context meegeven aan het model. Dit noemen we RAG — Retrieval Augmented Generation.
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import OllamaEmbeddings
# Laad je bedrijfsdocumenten
loader = TextLoader("faq.txt")
docs = loader.load()
# Splits in chunks en maak embeddings
splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(docs)
db = FAISS.from_documents(chunks, OllamaEmbeddings(model="mistral"))
# Zoek relevante context bij een vraag
def zoek_context(vraag: str) -> str:
resultaten = db.similarity_search(vraag, k=3)
return "\n".join([r.page_content for r in resultaten])Het resultaat
Na deze setup heb je een chatbot die je eigen bedrijfsdocumenten raadpleegt, lokaal draait zonder cloud-afhankelijkheden, en vragen beantwoordt in natuurlijk Nederlands. De volgende stap? Een widget op je website plaatsen of integreren met WhatsApp Business.
Tip: begin klein. Laad eerst je 10 meest gestelde vragen in het systeem en breid geleidelijk uit. Perfectie is de vijand van vooruitgang.
In een volgend artikel ga ik dieper in op hoe je meerdere AI-agents kunt laten samenwerken — wat ik in mijn eigen Agent Orchestrator heb gebouwd. Denk aan een agent voor klantenservice, een voor SEO, en een voor productbeschrijvingen, allemaal onafhankelijk maar gecoördineerd.