Dies ist der fünfte Artikel, in dem es um Ollama geht, das Programm für die Verwaltung lokaler Sprachmodelle. Bisher wurden folgende Beiträge veröffentlicht:
- LLMs mit Ollama lokal auf dem Mac nutzen
- Ollama auf dem Mac verwenden
- Ollamas API auf dem Mac mit curl nutzen
- Ollamas API mit Python nutzen (mit requests)
Einführung
Neben Ollama geht es in diesem Artikel auch um Python, denn ich möchte zeigen, wie man mit Python auf Ollama — genauer gesagt die Ollama-API — zugreifen kann. Das klingt wie eine Wiederholung des vierten Beitrags dieser Artikelserie. Denn dort wurde mit requests auf einen von der Ollama-API bereitgestellten Endpunkt zugegriffen:
http://localhost:11434/api/generateDieser Endpunkt wurde auch im Tutorial über die Nutzung von Ollama mit dem Befehl curl verwendet.
Die Nutzung von requests ist jedoch nicht zwingend erforderlich, denn Ollama stellt eine Bibliothek für Python bereit. Dies ist der einfachste Weg, um ein Python-Projekt für die Verwendung von Ollama zu erstellen. Im Gegensatz zu den bisherigen Tutorials soll nun diese Bibliothek, die die Bezeichnung ollama hat, verwendet werden.
Bevor es mit dem Code losgeht, zeige ich zunächst ein Schaubild, dass die verschiedenen Zugriffsmöglichkeiten auf Ollama bzw. auf die von Ollama bereitgestellten Sprachmodelle veranschaulicht.
Der Python-Code
Um die gezeigten Beispiele nachvollziehen zu können, müssen auf eurem System Python und Ollama vorhanden sein. Außerdem müßt ihr mit pip die Bibliothek ollama installieren:
pip install ollamaIhr solltet zumindest ein Sprachmodell für die lokale Verwendung heruntergeladen haben. Im folgenden Beispiel wird gemma4 verwendet. Der hier gezeigt Code funktioniert auf Linux, macOS und Windows.
Den Anfang machen — wie so häufig — die Importanweisungen:
#!/usr/bin/env python3
from ollama import ResponseError
from ollama import ChatResponse
from ollama import chatDer Code für die Anfrage an das Sprachmodell sieht wie folgt aus:
response: ChatResponse = chat(
model="gemma4:e2b",
messages=[
{
"role": "user",
"content": "Wer war Charles de Gaulle?",
},
],
)
print(response["message"]["content"])Es ist selbstverständlich erforderlich, dass zu verwendende Modell anzugeben (model="gemma4:e2b"). Dann folgt die Nachricht an das Modell (messages=[...]). Die Liste enthält ein Dictionary mit den Schlüsseln role und content. Mit user wird angegeben, dass die Anfrage direkt vom Nutzer kommt. Die konkrete Frage ist der Wert zum Schlüssel content, in diesem Fall also: „Wer war Charles de Gaulle?“ Über die Funktion print() wird das Ergebnis im Terminal ausgegeben.
Da Fehler auftreten können, sollte der Code in einem try–except-Block eingebettet werden:
try:
response: ChatResponse = chat(
model="gemma4:e2b",
messages=[
{
"role": "user",
"content": "Wer war Charles de Gaulle?",
},
],
)
print(response["message"]["content"])
except ResponseError as e:
msg = getattr(e, "error", str(e))
print(f"\033[31mError: {msg}\033[0m")Und das ist auch schon der komplette Code. Zum Schluss aber noch eine Anmerkung zu \033 und 31m. Dies dient dazu, dass die Fehlerausgabe rot dargestellt wird. Bei \033 handelt es sich um den Start einer ANSI-Escape-Sequenz, 31m setzt die Farbe auf rot und \033[0m setzt die Formatierung wieder zurück. Dies ist eine Möglichkeit, um Text im Terminal in einer anderen Farbe darzustellen.
Zuletzt aktualisiert am 16. September 2026