Integrare Ollama met Python: Voorbeelden van REST API en Python-client
+ Specifieke Voorbeelden met Denkende LLMs
In dit bericht verkennen we twee manieren om uw Python-toepassing te verbinden met Ollama: 1. Via de HTTP REST API; 2. Via de officiële Ollama Python-bibliotheek.
We behandelen zowel chat als generate-oproepen en bespreken vervolgens hoe u “denkmodellen” effectief kunt gebruiken.
Ollama is snel een van de handigste manieren geworden om grote taalmodellen (LLMs) lokaal uit te voeren. Met zijn eenvoudige interface en ondersteuning voor populaire open modellen zoals Llama 3, Mistral, Qwen2.5 en zelfs “denk” varianten zoals qwen3, is het gemakkelijk om AI-mogelijkheden rechtstreeks in uw Python-projecten te integreren — zonder afhankelijkheid van externe cloud-API’s.
🧩 Voorwaarden
Voordat u begint, zorg ervoor dat u de volgende items heeft:
pip install requests ollama
Controleer of Ollama draait door het volgende uit te voeren:
ollama list
U zou beschikbare modellen moeten zien zoals llama3
, mistral
of qwen3
.
⚙️ Optie 1: Gebruik van de REST API van Ollama
De REST API is ideaal wanneer u maximale controle wilt of wanneer u integreert met frameworks die al HTTP-verzoeken afhandelen.
Voorbeeld 1: Chat API
import requests
import json
url = "http://localhost:11434/api/chat"
payload = {
"model": "llama3.1",
"messages": [
{"role": "system", "content": "U 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 REST API van Ollama stroomt antwoorden regel voor regel (vergelijkbaar met de streaming API van OpenAI). U kunt inhoud ophopen of deze in real-time weergeven voor chatbots of CLI-tools.
Voorbeeld 2: Generate API
Als u geen chatcontext of rollen nodig heeft, gebruikt u het eenvoudigere /api/generate
-eindpunt:
import requests
url = "http://localhost:11434/api/generate"
payload = {
"model": "llama3.1",
"prompt": "Leg recursie uit in één zin."
}
response = requests.post(url, json=payload, stream=True)
for line in response.iter_lines():
if line:
print(line.decode("utf-8"))
Dit eindpunt is geweldig voor eenmalige tekstgeneratietaken — samenvattingen, codesnippets, enzovoort.
🐍 Optie 2: Gebruik van de Ollama Python-bibliotheek
De Ollama Python-client biedt een schoonere interface voor ontwikkelaars die volledig in Python willen blijven werken.
Voorbeeld 1: Chat API
import ollama
response = ollama.chat(
model="llama3.1",
messages=[
{"role": "system", "content": "U 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 dictionary. Als u streaming wilt, kunt u over de chatstream itereren:
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="Samenvatten het concept van decorators in Python."
)
print(output['response'])
Of stroom het resultaat:
stream = ollama.generate(
model="llama3.1",
prompt="Lijst drie voordelen van het gebruik van Python voor AI-projecten.",
stream=True
)
for chunk in stream:
print(chunk['response'], end='', flush=True)
🧠 Werken met “Denk” Modellen
Ollama ondersteunt “denkmodellen” zoals qwen3, ontworpen om hun tussenliggende redeneringsstappen te tonen. Deze modellen produceren gestructureerde uitvoer, vaak in een formaat zoals:
<think>
Redeneringsstappen hier...
</think>
Eindantwoord hier.
Dit maakt ze nuttig voor:
- Debuggen van modelredenering
- Onderzoek naar interpreteerbaarheid
- Bouwen van tools die gedachte scheiden van uitvoer
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 "denken" deel extraheren
import re
thinking = re.findall(r"<think>(.*?)</think>", content, re.DOTALL)
answer = re.sub(r"<think>.*?</think>", "", content, flags=re.DOTALL)
print("🧠 Gedachteproces:\n", thinking[0].strip() if thinking else "N/A")
print("\n✅ Eindantwoord:\n", answer.strip())
Wanneer Denkmodellen Gebruiken
Toepassingsgebied | Aanbevolen Model | Waarom |
---|---|---|
Interpreteerbaarheid / Debuggen | qwen3 |
Zie redeneringstralen |
Prestatiegevoelige apps | qwen3 non-thinking mode |
Sneller, minder uitvoerig |
Educatief / Uitleggend | qwen3 |
Toont stap-voor-stap logica |
✅ Samenvatting
Taak | REST API | Python Client |
---|---|---|
Eenvoudige tekstgeneratie | /api/generate |
ollama.generate() |
Conversationele chat | /api/chat |
ollama.chat() |
Streaming ondersteuning | Ja | Ja |
Werkt met denkmodellen | Ja | Ja |
De lokaal-gerichte ontwerp van Ollama maakt het ideaal voor veilige, offline of privacygevoelige AI-toepassingen. Of u nu een interactieve chatbot bouwt of een achtergronddienst voor data-verrijking, kunt u LLMs naadloos in uw Python-workflow integreren — met volledige controle over modellen, vertraging en gegevens.
Nuttige links
- https://pypi.org/project/ollama/
- Ollama cheatsheet
- Python Cheatsheet
- Installeer en configureer Ollama
- LLMs beperken met gestructureerde uitvoer: Ollama, Qwen3 & Python of Go
- Vergelijking van gestructureerde uitvoercontrole bij populaire LLM-providers - OpenAI, Gemini, Anthropic, Mistral en AWS Bedrock
- Ollama GPT-OSS Structured Output Issues
- Hoe Ollama Parallelle Verzoeken Afhandelt
- Test: Geheugenallocatie en modelplanning in de nieuwe versie van Ollama - v0.12.1