Een vraag die ik mij al gesteld heb en waarschijnlijk een die je ook hebt? Kan je zelf een AI maken? Een namiddag prutsen en zoeken leerde me veel en in dit artikel deel ik dat met plezier.
De vraag: waarom in hemelsnaam?
Wil je mee cashen en op de boot springen? Is het de privacy wanneer je met een AI-chat dit je stoort? Of wil je een AI online gebruiken en ben je tot de constatatie gekomen dat het veel duurder is dan men doet uitschijnen? Het kunnen allemaal redenen zijn die je doen denken: waarom maak ik gewoon zelf geen AI? Kan dat nu echt zo moeilijk zijn?
Hoe maak je een AI?
Je kan natuurlijk in een programmeertaal beginnen te tokkelen. Ja, dat kan en je kan een AI inderdaad programmeren. De programmeertaal bij uitstek is dan Python. De vraag is dan: kan je in korte tijd iets maken dat ook in de verste verte kan concurreren met ChatGPT? Als het een lifetime commitment wordt, misschien… heel misschien. Anders: nope! Tenzij je een AI maakt voor een kleine, heel specifieke taak – dan eigenlijk wel, en zelfs mogelijk nog beter.
Wacht, loop nu nog niet weg! Want er is een oplossing. Zelfs zonder Python-expert te zijn en een zee van vrije tijd zijn er oplossingen! Je hoeft het wiel niet opnieuw uit te vinden. Al het complexe werk is al gedaan. Jij bepaalt alleen nog waar de AI naartoe rijdt.
Keep It Stupid Simple
Hoe maakte ik in no time een AI die op mijn eigen computer draait – zelfs zonder internetverbinding! En hoe kan ik die AI, als ik het zou willen, aanbieden op mijn website, zodat bezoekers kunnen chatten met deze AI?
Voor een klein model kan je met Ollama vaak binnen korte tijd een werkende lokale AI hebben; grote modellen en downloads kunnen echter veel langer duren.
Dit zijn de stappen:
- Ollama downloaden https://ollama.com/
- Installeren
- Een model (LLM) kiezen, onderaan rechts bijvoorbeeld het licht model Gemma2:2b
- Beginnen met chatten
Zelfs offline. Geen abonnement. Geen maandelijkse factuur.
Je kan de AI instructies geven alvorens je begint te chatten:
“Je bent een expert in Belgisch recht. Beantwoord altijd in het Nederlands. Gebruik juridische terminologie. Wees bondig, maar accuraat. Verwijs naar relevante wetsartikelen.”
Zijn de instructies uitgebreid? Sla ze op in een tekstbestand en kopieer ze wanneer nodig.
Welke LLM kiezen? Trial and error. Grote modellen zijn intelligenter, maar vragen krachtigere hardware. Zelf moest ik tevreden zijn met Gemma2:2b – mijn Celeron-processor kon niet meer aan.
Hoe maak ik een AI die online kan gebruikt worden?
Windows
De meeste onder jullie hebben een Windows-pc. Alhoewel het technisch mogelijk is door port forwarding in te stellen en de Ollama API beschikbaar te stellen, is het niet echt aangeraden. Windows kan gebruikt worden, maar Linux is in de praktijk stabieler en makkelijker te beveiligen als serveromgeving.
Hoe het technisch zou werken:
- Je start je Olama AI vanuit een command prompt als administrator met het commando ollama run gemma:2b (hierdoor start de API). Ik gebruikte gemma:2b om te testen. Jouw AI heeft mogelijk een andere naam.
- Test of het werkt door in de browser naar
http://localhost:11434 te gaan - Port forwarding instellen in je router naar poort 11434
- Firewall aanpassen om Ollama verkeer toe te laten
- Op je website een eenvoudig script gebruiken. Voorbeeld hier net onder.
<!DOCTYPE html>
<html>
<head>
<title>Mijn Eigen AI</title>
<style>
body { font-family: Arial; max-width: 800px; margin: 40px auto; }
#chat { border: 1px solid #ccc; height: 400px; padding: 20px; overflow-y: scroll; margin-bottom: 10px; }
input[type="text"] { width: 70%; padding: 10px; }
button { padding: 10px; }
</style>
</head>
<body>
<div id="chat"></div>
<input type="text" id="vraag" placeholder="Stel je vraag...">
<button onclick="stelVraag()">Verstuur</button>
<script>
async function stelVraag() {
const vraag = document.getElementById('vraag').value;
const chat = document.getElementById('chat');
// Toon de vraag van de gebruiker
chat.innerHTML += `<p><strong>Jij:</strong> ${vraag}</p>`;
try {
// Vervang [JOUW-IP] door je echte IP of domein
const response = await fetch('http://[JOUW-IP]:11434/api/generate', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'gemma:2b', // Pas aan naar jouw model
prompt: vraag,
stream: false
})
});
const data = await response.json();
// Toon het antwoord van de AI
chat.innerHTML += `<p><strong>AI:</strong> ${data.response}</p>`;
} catch (error) {
chat.innerHTML += `<p><strong>Fout:</strong> AI is niet bereikbaar. Controleer de verbinding.</p>`;
}
// Maak het invoerveld leeg en scroll naar beneden
document.getElementById('vraag').value = '';
chat.scrollTop = chat.scrollHeight;
}
// Enter-toets toestaan om te verzenden
document.getElementById('vraag').addEventListener('keypress', function(e) {
if (e.key === 'Enter') {
stelVraag();
}
});
</script>
</body>
</html>Let op dit werkt dus alleen als port forwarding op je router correct is ingesteld!
Linux
Linux is veel geschikter als serveromgeving. Het is eenvoudiger te beveiligen, heeft minder rommel op de achtergrond en is bovendien ideaal om bijvoorbeeld op een Raspberry Pi te gebruiken.
De stappen zijn identiek aan Windows:
- Installeer Ollama (via:
curl -fsSL https://ollama.ai/install.sh | sh) - Volg daarna dezelfde stappen als onder Windows vanaf punt 1 — het werkt exact hetzelfde.

De standaard Ollama API is single-threaded, maar:
Je kan meerdere gelijktijdige requests ondersteunen via:
– externe queueing
– een reverse proxy zoals Nginx
– Docker-setups
– of meerdere Ollama-instanties (als de hardware het toelaat)
Het grote nadeel is dat dit alles behoorlijk zwaar is voor de computer waarop je Ollama host. Het is dus absoluut niet geschikt voor een drukbezochte website. Je kan dit gedeeltelijk opvangen door te werken met een eenvoudige regelgebaseerde chatbot als voorfilter. Zo’n bot stelt de gebruiker standaardvragen en kan eenvoudige vragen meteen beantwoorden, zoals “Wat zijn de openingsuren?”. Enkel wanneer nodig schakelt hij door naar de AI — zonder dat het voor de gebruiker opvalt. Hierdoor beperk je het aantal AI-requests aanzienlijk.
Belangrijke opmerkingen!
Let op. Als je een AI op je site plaatst, ben jij verantwoordelijk voor zijn acties en daden! Dus elke website is niet zomaar geschikt.
Stel jezelf de vraag: kan de AI op mijn website advies geven dat gevaarlijk is? Dan maar beter geen AI!
Beperk sowieso de risico’s:
- Geef altijd duidelijke instructies, bijvoorbeeld: “Refereer ALTIJD naar artikelen op onze site! Geef nooit zelf instructies of advies. Antwoord altijd met: ‘Lees dit artikel op onze website.'”
- Wees transparant: vermeld duidelijk dat het om een AI gaat
- Voeg een disclaimer toe: “Geen medisch, juridisch of financieel advies”
Privacy:
Je moet natuurlijk ook de privacy regels respecteren. Dus je moet vermelden.
- Sla je gesprekken op of niet?
- Waar worden ze bewaard?
- Hoe kan men vragen om gesprekken te wissen?
KISS regel:
Als je twijfelt, plaats dan geen AI. Simpel.
Vaak gestelde vragen
Gemma is dom! Hoe maak ik een slimme AI?
Gewoon een veel groter model (LLM) installeren! Met AI’s is het meestal: hoe groter, hoe beter. Maar… hoe groter wil ook zeggen dat je een zwaardere PC moet hebben. Op een Gaming Rig met een bom van een videokaart mag dat toch geen probleem zijn – of toch?
Hoe kan ik mijn AI kennis geven?
Simpel is gewoon kopiëren en plakken als eerste prompt in je AI. Nadeel is wel dat je beperkt bent.
Moeilijker is een RAG (Retrieval Augmented Generation) gebruiken. Geef je AI een eigen kennisbank. Het werkt direct, geen hertraining nodig. Maar let op: hoe meer documenten, hoe trager je AI wordt. Bij een enorme kennisbank merk je dat direct!
Mag ik Ollama AI’s gratis gebruiken?
Ja, dat mag. Je kan ze gratis downloaden. Gratis lokaal gebruiken en zelfs commercieel maar check dan wel nog eens de licentievoorwaarden per model.
Komt er iemand te weten wat ik typ wanneer ik chat met mijn AI?
Nee, alles wordt lokaal opgeslagen. Bovendien heeft de AI ook geen geheugen behalve de instructies of eventueel RAG. Als je dus Ollama sluit en terug opent, weet de AI niet meer wat je voordien vertelde – tenzij je een chat expliciet verderzet.
