Ollama integreren met Python: REST API- en Python-clientvoorbeelden
+ Specifieke Voorbeelden Met Denkende LLMs
In dit bericht gaan we twee manieren bespreken om je Python-toepassing te verbinden met Ollama: 1. Via de HTTP REST API; 2. Via de officiële Ollama Python-bibliotheek.
We bespreken zowel chat- als generate-aanroepen, en bespreken vervolgens hoe je “denkmodellen” effectief kunt gebruiken.

Ollama heeft snel een van de meest handige manieren geworden om grote taalmodellen (LLMs) lokaal te draaien. Om te zien hoe Ollama vergelijkt met vLLM, Docker Model Runner, LocalAI en cloudproviders — inclusief wanneer je elk van hen zou moeten kiezen — zie LLM Hosting: Local, Self-Hosted & Cloud Infrastructure Compared. Met zijn eenvoudige interface en ondersteuning voor populaire open models zoals Llama 3, Mistral, Qwen2.5, en zelfs “denk” varianten zoals qwen3, is het eenvoudig om AI-functionaliteiten rechtstreeks in je Pythonprojecten te integreren — zonder afhankelijk te zijn van externe cloud-API’s.
🧩 Voorwaarden
Voordat je begint, zorg er dan voor dat je hebt:
pip install requests ollama
Controleer of Ollama draait door uit te voeren:
ollama list
Je zou beschikbare modellen zoals llama3, mistral of qwen3 moeten zien.
⚙️ Optie 1: Gebruik van de Ollama REST API
De REST API is ideaal als je maximale controle wilt of als je integreert met frameworks die al HTTP-aanvragen afhandelen.
Voorbeeld 1: Chat API
import requests
import json
url = "http://localhost:11434/api/chat"
payload = {
"model": "llama3.1",
"messages": [
{"role": "system", "content": "Je bent een Python-assistent."},
{"role": "user", "content": "Schrijf een functie die een string omkeert."}
]
}
response = requests.post(url, json=payload, stream=True)
for line in response.iter_lines():
if line:
data = json.loads(line)
print(data.get("message", {}).get("content", ""), end="")
👉 De Ollama REST API stroomt reacties regel voor regel (net als de OpenAI-streaming API). Je kunt inhoud verzamelen of deze in real-time tonen voor chatbots of CLI-tools.
Voorbeeld 2: Generate API
Als je geen chat-context of rollen nodig hebt, gebruik dan de eenvoudigere /api/generate-eindpunt:
import requests
url = "http://localhost:11434/api/generate"
payload = {
"model": "llama3.1",
"prompt": "Leg recursie in één zin uit."
}
response = requests.post(url, json=payload, stream=True)
for line in response.iter_lines():
if line:
print(line.decode("utf-8"))
Dit eindpunt is ideaal voor enkele tekstgeneratie taken — samenvattingen, codefragmenten, enz.
🐍 Optie 2: Gebruik van de Ollama Python-bibliotheek
De Ollama Python-client biedt een nettere interface voor ontwikkelaars die liever volledig in Python blijven.
Voorbeeld 1: Chat API
import ollama
response = ollama.chat(
model="llama3.1",
messages=[
{"role": "system", "content": "Je bent een code-assistent."},
{"role": "user", "content": "Genereer een Python-script dat alle bestanden in een map lijst."}
]
)
print(response['message']['content'])
Dit retourneert het eindbericht als een woordenboek. Als je streaming wilt, kun je itereren over de chatstream:
stream = ollama.chat(
model="llama3.1",
messages=[
{"role": "user", "content": "Schrijf een haiku over recursie."}
],
stream=True
)
for chunk in stream:
print(chunk['message']['content'], end='', flush=True)
Voorbeeld 2: Generate API
import ollama
output = ollama.generate(
model="llama3.1",
prompt="Samenvat de concept van decorators in Python."
)
print(output['response'])
Of stream het resultaat:
stream = ollama.generate(
model="llama3.1",
prompt="Noem drie voordelen van het gebruik van Python voor AI-projecten.",
stream=True
)
for chunk in stream:
print(chunk['response'], end='', flush=True)
🧠 Werken met “Denkmodellen”
Ollama ondersteunt “denkmodellen” zoals qwen3, die ontworpen zijn om hun tussenliggende redeneerstappen te tonen. Deze modellen produceren gestructureerde uitvoer, vaak in een formaat zoals:
</think>
Redeneerstappen hier...
</think>
Eindantwoord hier.
Dit maakt ze handig voor:
- Debuggen van modelredenering
- Onderzoek naar interpreteerbaarheid
- Bouwen van tools die gedachte van uitvoer scheiden
Voorbeeld: Gebruik van een Denkmodel
import ollama
response = ollama.chat(
model="qwen3",
messages=[
{"role": "user", "content": "Wat is de hoofdstad van Australië?"}
]
)
content = response['message']['content']
# Optioneel de "denk" deel extracten
import re
thinking = re.findall(r"</think>
(.*?)