# Lokales LLM in Python: Schnellstart mit Ollama und LiteLLM für Entwickler
Viele Entwickler, die in die Welt der Large Language Models (LLMs) eintauchen, stoßen auf Hürden: Registrierung bei Cloud-Diensten, Verwaltung von API-Keys und laufende Token-Kosten. Diese Methode ist zwar funktional, aber nicht immer ideal für erste Experimente und lokale Entwicklung. Dieser Artikel stellt eine effektive Alternative vor: das Bereitstellen und Integrieren von LLMs direkt auf Ihrem Computer. Wir führen Sie Schritt für Schritt durch die Einrichtung einer lokalen Umgebung mit Ollama zum Ausführen von Modellen und LiteLLM zur Integration in Python-Anwendungen und zeigen, wie Sie die erste sinnvolle Antwort von Ihrem eigenen LLM erhalten – ohne externe Dienste.
Vorteile der lokalen LLM-Entwicklung
Lokales LLM-Deployment bietet mehrere unbestreitbare Vorteile, besonders für Lernen und Prototyping. Erstens entfällt vollständig die Notwendigkeit von API-Keys und damit verbundenen Kosten, was unbegrenztes Experimentieren ermöglicht. Zweitens entsteht keine Abhängigkeit von einer Internetverbindung für jede Anfrage, was für Offline-Entwicklung oder instabile Netzwerke entscheidend ist. Drittens macht dieser Ansatz den Interaktionsprozess mit dem LLM hochtransparent: Sie können beobachten, wie Ihr Python-Code mit LiteLLM kommuniziert, das die Anfrage an Ollama weiterleitet und schließlich ans lokale Modell. Das ist kein "AI-Zauber", sondern nachvollziehbare Softwarelogik, die Debugging und Architekturverständnis erheblich vereinfacht. Für Entwickler, die die Mechanik der LLM-Integration tief verstehen wollen, ist der lokale Ansatz der ideale Einstieg.
Ollama und LiteLLM: Wichtige Architekturkomponenten
Bevor wir mit der Installation beginnen, ist es entscheidend, die Funktionen der beiden Haupttools zu unterscheiden: Ollama und LiteLLM.
- Ollama ist ein leistungsstarkes Tool zum lokalen Ausführen großer Sprachmodelle. Es agiert als Server, der das Herunterladen, Speichern und Ausführen von LLMs auf Ihrem Computer verwaltet und eine einheitliche API zum Zugriff bietet. Ollama ist im Kern eine Laufzeitumgebung für lokale LLMs, die den Umgang mit Modellen wie Llama, Mistral, Qwen und anderen erleichtert.
- LiteLLM ist eine leichte Python-Bibliothek, die API-Anfragen an verschiedene LLM-Anbieter vereinheitlicht. Ihr Kernmerkmal ist eine einzige Schnittstelle für Cloud-Dienste (OpenAI, Anthropic, Google Gemini) und lokale Lösungen wie Ollama. Code für ein lokales Modell via LiteLLM lässt sich mit minimalen Änderungen auf Cloud-Provider umstellen.
Zusammengefasst: Ollama startet das lokale Modell, LiteLLM bietet eine standardisierte Python-Schnittstelle, und Ihr Code baut eine vollständige Anwendung darum auf.
Ollama installieren und lokales Modell herunterladen
Um mit einem lokalen LLM zu arbeiten, folgen Sie diesen schrittweisen Anweisungen.
Ollama installieren
Laden Sie Ollama zunächst von der offiziellen Website (ollama.com) für Ihr Betriebssystem (Windows, macOS, Linux) herunter und installieren Sie es. Überprüfen Sie die Installation mit folgendem Terminal-Befehl:
ollama --version
Bei erfolgreichem Output der Versionsnummer ist Ollama einsatzbereit. Unter Windows achten Sie auf das Ollama-Symbol (🦙) in der Systemleiste – es zeigt einen aktiven Hintergrunddienst an.
Lokales LLM herunterladen
Ollama ist keine Modell selbst, sondern eine Plattform dafür. Nun laden Sie ein spezifisches Large Language Model herunter. Für uns eignet sich qwen2.5:3b hervorragend – ein kompaktes, aber leistungsstarkes Modell, das auf den meisten Laptops läuft und Deutsch unterstützt. Starten Sie den Download im Terminal:
ollama run qwen2.5:3b
Beim ersten Mal wird das Modell heruntergeladen und lokal gespeichert. Danach landen Sie in einem interaktiven Ollama-Chat. Testen Sie das Modell mit einer Frage auf Deutsch, z. B.: Hallo! Erkläre in zwei Sätzen, was Python ist. Wenn es antwortet, haben Sie die größte Hürde genommen. Beenden Sie den Chat mit /bye.
Hinweis: Bei unzureichender Leistung von qwen2.5:3b auf Ihrer Hardware probieren Sie die leichtere Variante: ollama run qwen2.5:1.5b. Die Python-Logik bleibt unverändert.
Python-Umgebung vorbereiten
Zur Isolierung von Abhängigkeiten empfehlen wir eine virtuelle Umgebung.
- Erstellen Sie einen Projektordner und wechseln Sie hinein:
```bash
mkdir llm-chat
cd llm-chat
```
- Initialisieren Sie eine virtuelle Umgebung:
```bash
python -m venv venv
```
- Aktivieren Sie sie.
* Windows: venv\Scripts\activate
* macOS / Linux: source venv/bin/activate
Erfolgreiche Aktivierung zeigt sich durch das (venv)-Präfix in der Kommandozeile.
- Installieren Sie die LiteLLM-Bibliothek:
```bash
pip install litellm
```
Alle Komponenten sind nun kodierbereit.
LLM in Python integrieren: Ihre erste Anfrage
Erstellen Sie eine Datei main.py im Projektstamm und fügen Sie diesen Code ein:
from litellm import completion
MODEL = "ollama_chat/qwen2.5:3b"
API_BASE = "http://localhost:11434"
def ask(question: str) -> str:
response = completion(
model=MODEL,
messages=[
{"role": "user", "content": question}
],
api_base=API_BASE,
request_timeout=120,
)
return response.choices[0].message.content
answer = ask("Hallo! Schreibe einen kurzen Satz über Python.")
print(answer)
Führen Sie das Skript in der aktivierten virtuellen Umgebung aus:
python main.py
Bei einer sinnvollen Modellantwort in der Konsole haben Sie ein lokales LLM erfolgreich in Python integriert. Das ist ein Meilenstein: Aus einem abstrakten Modell wird ein funktionaler Bestandteil Ihrer App.
Code-Analyse von main.py
Schauen wir uns die Kernlemente dieses minimalistischen, aber funktionalen Skripts an:
from litellm import completion: Import der zentralencompletion-Funktion aus LiteLLM zum Versenden von Anfragen an LLMs.MODEL = "ollama_chat/qwen2.5:3b": Definiert das genutzte Modell. Das Präfixollama_chat/weist LiteLLM an, die Anfrage an den lokalen Ollama-Dienst zu leiten. Passen Sie den Modellnamen an Ihr Heruntergeladenes an (z. B.qwen2.5:1.5b).API_BASE = "http://localhost:11434": Gibt die Adresse des lokalen Ollama-API-Servers an. Standardport ist11434.messages=[{"role": "user", "content": question}]: Grundstruktur für moderne LLM-APIs. Anfragen gehen als Nachrichtenliste mitrole(z. B. "user", "assistant", "system") undcontent(Text). Selbst bei Einzelfragen bildet das die Basis für Dialogverläufe.request_timeout=120: Maximale Wartezeit für Modellantworten in Sekunden. Lokale Modelle brauchen beim ersten Start oder bei komplexen Anfragen länger.response.choices[0].message.content: Extrahiert den generierten Text aus der vollständigen Antwort. Dasresponse-Objekt birgt weitere nützliche Infos für Folgeartikel.
Häufige Startprobleme und Lösungen
Beim Setup können Probleme auftreten. Hier die gängigsten mit Fixes:
- Problem 1:
Connection refusedoderFailed to connect
* Ursache: Ollama-Dienst läuft nicht oder ist nicht erreichbar.
* Lösung: Prüfen Sie, ob Ollama aktiv ist. Suchen Sie das 🦙-Symbol in der Leiste (Windows/macOS) oder führen Sie ollama list aus. Bei Reaktion läuft der Dienst.
- Problem 2:
Model not found
* Ursache: Modell im Code nicht heruntergeladen oder Name falsch.
* Lösung: ollama list zeigt verfügbare Modelle – korrigieren Sie MODEL in main.py.
- Problem 3: Langsame Antwort oder schlechte Performance
* Ursache: Erster Start lädt ins RAM, oder Modell überfordert Hardware.
* Lösung: Abwarten. Ressourcenfresser schließen. Leichtere Variante wie qwen2.5:1.5b testen.
- Problem 4:
ModuleNotFoundError: No module named 'litellm'
* Ursache: Skript außerhalb der aktivierten venv ausgeführt.
* Lösung: Aktivieren Sie die venv ( (venv)-Präfix) vor dem Start.
- Problem 5: Codierungsfehler in PowerShell (verschmierte Zeichen)
* Ursache: Terminal-Codierung passt nicht.
* Lösung: In PowerShell vorab: $OutputEncoding = [System.Text.Encoding]::UTF8.
Wichtige Erkenntnisse
- Lokales LLM mit Ollama und LiteLLM spart API-Kosten und Internetabhängigkeit, gibt volle Kontrolle.
- Ollama ist Runtime für lokale Modelle, LiteLLM vereinheitlicht die Python-API.
- Erster Schritt: Ollama installieren, Modell wie
qwen2.5:3bladen. - Python-Skript nutzt
litellm.completion;MODELmitollama_chat/,API_BASEfür Ollama. - Anfragen als Nachrichtenliste mit
roleundcontent– Basis für Chat-Systeme.
Fazit und nächste Schritte
Wir haben die Basisintegration eines lokalen LLMs in Python umgesetzt. Aus abstrakter Tech wird ein steuerbarer Baustein, der direkt aus Ihrem Code antwortet. Das eröffnet Experimente und komplexere AI-Apps.
Im nächsten Teil bauen wir daraus einen vollwertigen Konsolen-Chat mit Schleife, Eingabe und Kontextvorbereitung – von Einzelfragen zu interaktiven Gesprächen mit Ihrem lokalen LLM.
— Editorial Team
Noch keine Kommentare.