- Published on
Ollama Python: Client lokal anbinden
- Authors

- Name
- Phillip Pham
- @ddppham
TL;DR
Ollama Python ist die offizielle Bibliothek, nicht ein zweites Runtime. Voraussetzung laut README: Ollama ist installiert und läuft, ein Modell ist gezogen. Dann pip install ollama (PyPI, Stand dieses Laufs: Version 0.6.3, Python 3.8+). chat() spricht den lokalen Server auf http://localhost:11434 an. Streaming mit stream=True. Ein eigener Host geht über Client(host=...). Gelesen in README, PyPI und API-Doku am 2026-10-08.
Python-Client und Engine sind zwei Schichten
IT-Leiter suchen „ollama python“, wenn Fachanwendungen, Jobs oder Tests die bereits laufende API nutzen sollen — nicht, wenn die Binary fehlt. Die Engine kommt von Ollama Download oder Ollama unter Ubuntu. Dieser Text behandelt nur den Client.
Die API-Einführung nennt Python und JavaScript als offizielle Bibliotheken. Die Bibliothek ist um die REST-API gebaut. Lokal gilt der Server http://localhost:11434, Chat-Pfad /api/chat. Cloud-Aufrufe gegen https://ollama.com/api brauchen einen API-Schlüssel; lokal entfällt der Authorization-Header. Das ist keine Bewertung, nur die Tabelle aus der Doku.
| Schicht | Was die Doku beschreibt | Prüfung |
|---|---|---|
| Engine | Installer, Linux-Skript oder Docker-Image | ollama -v, Port 11434 |
| Modell | ollama pull, Beispiel im README: gemma4 | ollama list bzw. ollama.list() |
| Python | Paket ollama, chat() / Client | Antwort message.content |
Kein Weg ist ein Ranking. Derselbe Endpoint, nur aus Python.
Voraussetzung: Server und Modell
Das README:
- Ollama ist installiert und läuft.
- Ein Modell ist gezogen:
ollama pull gemma4(Beispiel der aktuellen README, kein Pflichtmodell für Ihr Haus).
Ohne laufenden Server liefert der Client einen Fehler, kein stilles Fallback. Port und Bind-Adresse bleiben OLLAMA_HOST, beschrieben in Ollama Port 11434. In Docker ist der Host die gemappte API, nicht automatisch localhost im Container-Netz — siehe Ollama Docker.
Installation: pip install ollama
PyPI, Paketname ollama, Lizenz MIT, Anforderung Python >=3.8. Abhängigkeiten laut Projektseite: httpx >=0.27 und pydantic >=2.9. Stand dieses Laufs ist die veröffentlichte Version 0.6.3.
pip install ollama
Das Paket holt nicht die Engine. Eine neuere Binary bleibt ein Ollama Update.
Chat: eine Nachricht, eine Antwort
README-Beispiel, Funktion chat und Typ ChatResponse:
from ollama import chat
from ollama import ChatResponse
response: ChatResponse = chat(
model='gemma4',
messages=[
{
'role': 'user',
'content': 'Why is the sky blue?',
},
],
)
print(response['message']['content'])
print(response.message.content)
Beide Zugriffe stehen so in der README: Dict-Key und Attribut. Die HTTP-Seite POST /api/chat zeigt denselben Ablauf mit curl gegen http://localhost:11434/api/chat und dem Modellnamen gemma4.
Streaming
stream=True liefert Chunks. Die README iteriert über den Stream und schreibt chunk['message']['content'] ohne Zeilenumbruch.
from ollama import chat
stream = chat(
model='gemma4',
messages=[{'role': 'user', 'content': 'Why is the sky blue?'}],
stream=True,
)
for chunk in stream:
print(chunk['message']['content'], end='', flush=True)
Die Chat-API beschreibt dasselbe Verhalten auf HTTP-Ebene als application/x-ndjson. Der Client verpackt die Chunks.
Client mit eigenem Host
Default ist http://localhost:11434. Weicht der Port oder der Hostname ab, erzeugt die README einen Client:
from ollama import Client
client = Client(
host='http://localhost:11434',
headers={'x-some-header': 'some-value'},
)
response = client.chat(
model='gemma4',
messages=[{'role': 'user', 'content': 'Why is the sky blue?'}],
)
Zusätzliche Keyword-Argumente gehen laut README an httpx.Client. Für asynchrone Aufrufe gibt es AsyncClient mit denselben Feldern; stream=True wird dort zum asynchronen Generator.
Cloud gegen https://ollama.com setzt die README so: Host auf https://ollama.com, Header Authorization: Bearer plus Umgebungsvariable OLLAMA_API_KEY. Dieser Artikel bleibt beim lokalen Server. Schlüssel und Kontingente der Cloud stehen nicht in der gelesenen lokalen Chat-Doku und werden hier nicht ergänzt.
Weitere Aufrufe aus der README
Dieselben Funktionsnamen wie die REST-Pfade:
| Funktion | Zweck laut README |
|---|---|
ollama.chat(...) | Chat-Nachrichten |
ollama.generate(...) | ein Prompt, eine Antwort |
ollama.list() | lokale Modelle |
ollama.show('gemma4') | Modelldetails |
ollama.pull('gemma4') | Modell holen |
ollama.embed(...) | Embeddings, auch als Liste |
ollama.ps() | laufende Modelle |
create, copy, delete, push existieren ebenfalls. Sie ändern den Modellbestand auf dem Server, nicht nur den Prompt.
Fehler: ollama.ResponseError bei Fehlerstatus oder Stream-Fehler. Das README-Beispiel prüft e.status_code == 404 und ruft dann ollama.pull auf. 404 heißt hier: Modell fehlt lokal, nicht „Python ist falsch“.
Typische Brüche
Engine nicht gestartet. pip ist durch, chat() nicht. Zuerst ollama -v und curl http://localhost:11434/api/tags.
Anderer Port, alter Host. Nach OLLAMA_HOST muss Client(host=...) dieselbe URL nutzen wie Open WebUI und curl.
Docker-Netz. localhost im Python-Prozess ist nicht der Container. Host-Port oder Service-Name aus Compose, nicht raten.
Modellname. Das README-Beispiel gemma4 muss lokal liegen. ollama list oder ollama.list() vor dem ersten Chat.
Client-Update statt Engine-Update. pip install -U ollama aktualisiert die Bibliothek. Die Binary bleibt ein separates Update.
FAQ
Brauche ich Python, um Ollama zu betreiben?
Nein. CLI, Desktop-App und HTTP reichen. Python ist die Anbindung für Skripte und Fachanwendungen.
Ist pip install ollama die Engine?
Nein. Das Paket ist der Client. Die Engine kommt vom Installer, vom Linux-Skript oder vom Image ollama/ollama.
Welche Python-Version verlangt das Paket?
PyPI: Python >=3.8. Das README spricht von Python-3.8+-Projekten.
Kann ich die REST-API ohne die Bibliothek nutzen?
Ja. POST http://localhost:11434/api/chat steht in der Chat-Doku. Die Bibliothek ist Komfort um dieselbe API.
Wohin zeigt der Client nach einem Port-Wechsel?
Auf die neue Basis-URL, zum Beispiel http://127.0.0.1:11435. Ohne angepassten Client(host=...) bleibt der Default 11434.
Fazit
„Ollama Python“ ist der offizielle Client gegen die laufende API: Paket von PyPI, chat() oder Client, Streaming bei Bedarf, Host explizit wenn der Port nicht 11434 ist. Die Engine und das Modell bleiben eigene Schritte. Kein zweiter Hardware-Kauf, keine Anbieterliste.
Quellen & Weiterführende Links
📖 Verwandte Artikel
Weitere interessante Beiträge zu ähnlichen Themen
Ollama Update: Linux, Windows und Docker
Ollama Update auf dem KI-Server: Linux-Skript erneut, Windows und macOS neu starten, Docker-Image ziehen. Version danach mit ollama -v prüfen.
llama.cpp vs. Ollama: Runtime für lokale LLMs
llama.cpp vs. Ollama 2026: GGUF, API, GPU-Offload und wann welche Runtime auf dem KI-Server die bessere Wahl ist.
Ollama auf Synology NAS: Docker Setup in 30 Min
Ollama auf Synology NAS via Docker installieren in 30 Minuten. Phi-3 antwortet in 3-8 Sek., 7B-Modelle ab 16 GB RAM. Ohne Cloud.
Bereit für KI im Mittelstand?
Nutzen Sie unsere 10 kostenlosen KI-Tools und Praxis-Guides – oder sprechen Sie direkt mit unseren Experten.
Pexon Consulting – KI-Beratung für den Mittelstand | Scaly Academy – Geförderte KI-Weiterbildung (KI-Spezialist, KI-Experte, Workflow-Automatisierung)