Integration von Ollama mit Python: Beispiele für REST-API und Python-Client

+ Spezifische Beispiele unter Verwendung von Thinking LLMs

Inhaltsverzeichnis

In diesem Beitrag werden wir zwei Möglichkeiten erkunden, Ihre Python-Anwendung mit Ollama zu verbinden: 1. Über die HTTP REST API; 2. Über die offizielle Ollama Python-Bibliothek.

Wir werden sowohl Chat- als auch Generate-Aufrufe abdecken und dann diskutieren, wie man „Denkmodelle“ effektiv nutzen kann.

ollama und python

Ollama hat sich schnell zu einer der bequemsten Methoden entwickelt, um große Sprachmodelle (LLMs) lokal auszuführen. Mit seiner einfachen Schnittstelle und Unterstützung für beliebte Open-Source-Modelle wie Llama 3, Mistral, Qwen2.5 und sogar „Denk“-Varianten wie qwen3 ist es einfach, KI-Funktionen direkt in Ihre Python-Projekte einzubetten – ohne auf externe Cloud-APIs angewiesen zu sein.


🧩 Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Ollama installiert und lokal ausgeführt (ollama serve)
  • Python 3.9+
  • Erforderliche Abhängigkeiten:
pip install requests ollama

Bestätigen Sie, dass Ollama läuft, indem Sie ausführen:

ollama list

Sie sollten verfügbare Modelle wie llama3, mistral oder qwen3 sehen.


⚙️ Option 1: Verwendung der Ollama REST API

Die REST API ist ideal, wenn Sie maximale Kontrolle wünschen oder wenn Sie sie in Frameworks integrieren, die bereits HTTP-Anfragen verarbeiten.

Beispiel 1: Chat API

import requests
import json

url = "http://localhost:11434/api/chat"

payload = {
    "model": "llama3.1",
    "messages": [
        {"role": "system", "content": "Sie sind ein Python-Assistent."},
        {"role": "user", "content": "Schreiben Sie eine Funktion, die eine Zeichenkette umkehrt."}
    ]
}

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="")

👉 Die Ollama REST API streamt Antworten zeilenweise (ähnlich wie die Streaming-API von OpenAI). Sie können den Inhalt ansammeln oder ihn in Echtzeit für Chatbots oder CLI-Tools anzeigen.


Beispiel 2: Generate API

Wenn Sie keinen Chat-Kontext oder Rollen benötigen, verwenden Sie das einfachere /api/generate-Endpoint:

import requests

url = "http://localhost:11434/api/generate"
payload = {
    "model": "llama3.1",
    "prompt": "Erklären Sie Rekursion in einem Satz."
}

response = requests.post(url, json=payload, stream=True)
for line in response.iter_lines():
    if line:
        print(line.decode("utf-8"))

Dieses Endpoint eignet sich hervorragend für Einmaltextgenerierungsaufgaben – Zusammenfassungen, Code-Snippets usw.


🐍 Option 2: Verwendung der Ollama Python-Bibliothek

Der Ollama Python-Client bietet eine sauberere Schnittstelle für Entwickler, die vollständig in Python bleiben möchten.

Beispiel 1: Chat API

import ollama

response = ollama.chat(
    model="llama3.1",
    messages=[
        {"role": "system", "content": "Sie sind ein Code-Assistent."},
        {"role": "user", "content": "Generieren Sie ein Python-Skript, das alle Dateien in einem Verzeichnis auflistet."}
    ]
)

print(response['message']['content'])

Dies gibt die endgültige Nachricht als Dictionary zurück. Wenn Sie Streaming wünschen, können Sie über den Chat-Stream iterieren:

stream = ollama.chat(
    model="llama3.1",
    messages=[
        {"role": "user", "content": "Schreiben Sie ein Haiku über Rekursion."}
    ],
    stream=True
)

for chunk in stream:
    print(chunk['message']['content'], end='', flush=True)

Beispiel 2: Generate API

import ollama

output = ollama.generate(
    model="llama3.1",
    prompt="Fassen Sie das Konzept von Dekoratoren in Python zusammen."
)

print(output['response'])

Oder streamen Sie das Ergebnis:

stream = ollama.generate(
    model="llama3.1",
    prompt="Listen Sie drei Vorteile der Verwendung von Python für KI-Projekte auf.",
    stream=True
)

for chunk in stream:
    print(chunk['response'], end='', flush=True)

🧠 Arbeit mit „Denkmodellen“

Ollama unterstützt „Denkmodelle“ wie qwen3, die dafür ausgelegt sind, ihre Zwischen-Schlussfolgerungsschritte anzuzeigen. Diese Modelle erzeugen strukturierte Ausgaben, oft in einem Format wie:

<think>
  Denkschritte hier...
</think>
Endgültige Antwort hier.

Dadurch sind sie nützlich für:

  • Debugging der Modell-Schlussfolgerung
  • Forschung zur Interpretierbarkeit
  • Bau von Tools, die Denken von Ausgabe trennen

Beispiel: Verwendung eines Denkmodells

import ollama

response = ollama.chat(
    model="qwen3",
    messages=[
        {"role": "user", "content": "Was ist die Hauptstadt von Australien?"}
    ]
)

content = response['message']['content']

# Optional den „Denk“-Teil extrahieren
import re
thinking = re.findall(r"<think>(.*?)</think>", content, re.DOTALL)
answer = re.sub(r"<think>.*?</think>", "", content, flags=re.DOTALL)

print("🧠 Denkprozess:\n", thinking[0].strip() if thinking else "N/A")
print("\n✅ Endgültige Antwort:\n", answer.strip())

Wann Denkmodelle verwenden

Anwendungsfall Empfohlenes Modell Warum
Interpretierbarkeit / Debugging qwen3 Anzeige von Denkspuren
Leistungsempfindliche Anwendungen qwen3 non-thinking mode Schneller, weniger ausführlich
Bildungs- / Erklärungszwecke qwen3 Zeigt schrittweise Logik

✅ Zusammenfassung

Aufgabe REST API Python-Client
Einfache Textgenerierung /api/generate ollama.generate()
Konversationeller Chat /api/chat ollama.chat()
Streaming-Unterstützung Ja Ja
Funktioniert mit Denkmodellen Ja Ja

Ollama’s lokal-first-Design macht es ideal für sichere, offline oder datenschutzsensible KI-Anwendungen. Ob Sie einen interaktiven Chatbot oder einen Hintergrund-Datenanreicherungsdienst erstellen, Sie können LLMs nahtlos in Ihren Python-Workflow integrieren – mit voller Kontrolle über Modelle, Latenz und Daten.