Dokumentation
Ollamas OpenAI-kompatible API
Ollama stellt eine OpenAI-kompatible API für lokale Modelle bereit. Hier erfahren Sie, wie Sie sie mit dem OpenAI-SDK aufrufen – und wie derselbe Code gehostete Claude- und GPT-Modelle erreicht, wenn Sie nur base_url und model ändern.
Ollama führt offene Modelle auf Ihrem eigenen Rechner aus und stellt sie über eine OpenAI-kompatible API unter http://localhost:11434/v1 bereit. Da das Drahtformat dem von OpenAI entspricht, funktioniert das offizielle OpenAI-SDK unverändert mit Ollama – und derselbe Code erreicht gehostete Frontier-Modelle, wenn Sie nur die Basis-URL ändern.
http://localhost:11434/v1 erreichbar. Setzen Sie dort base_url des OpenAI-Clients und geben Sie einen beliebigen Platzhalter für api_key an. Um stattdessen gehostete Claude-/GPT-Modelle zu verwenden, ändern Sie base_url zu https://api.kunavo.com/v1 und passen Sie den Modell-Slug an – sonst nichts.Was Ollamas OpenAI-kompatible API ist
Ollama ist ein separates Open-Source-Projekt, mit dem Modelle wie Llama, Qwen und Mistral lokal ausgeführt werden können. Neben der nativen API bietet es eine OpenAI-kompatible Schnittstelle, sodass für OpenAI entwickelte Tools ohne Neufassung funktionieren. Ollama implementiert die Endpunkte, die von den meisten Apps verwendet werden:
| Endpunkt | Zweck |
|---|---|
POST /v1/ | Chat – der von den meisten Apps verwendete Endpunkt |
POST /v1/ | Veraltete Text-Completions |
POST /v1/ | Embeddings für lokale Modelle |
GET /v1/models | Lokal heruntergeladene Modelle auflisten |
Die Schnittstelle unterstützt Chat, Completions und Embeddings sowie Bildeingaben bei lokalen multimodalen Modellen. Sie generiert keine Bilder, Videos oder Audio. Kunavo implementiert denselben /v1/chat/completions-Vertrag – diese Referenz dokumentiert jeden Parameter, die Form der Streaming-Deltas und das Objekt usage und enthält eine zeilenweise Paritätstabelle für Ollamas v1-Schnittstelle.
Ollama mit dem OpenAI-SDK aufrufen
Richten Sie base_url auf http://localhost:11434/v1 aus. Das SDK verlangt ein api_key, doch Ollama ignoriert dessen Wert bei lokalen Aufrufen – übergeben Sie eine beliebige Zeichenfolge. Setzen Sie model auf ein Modell, das Sie heruntergeladen haben (z. B. ollama pull llama3.2).
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1", # Ollama's OpenAI-compatible API
api_key="ollama", # required by the SDK, ignored by local Ollama
)
resp = client.chat.completions.create(
model="llama3.2",
messages=[{"role": "user", "content": "Explain quicksort in one paragraph."}],
)
print(resp.choices[0].message.content)Oder mit curl:
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2",
"messages": [{"role": "user", "content": "Hello, Ollama"}]
}'Derselbe Code, gehostete Frontier-Modelle
Ollama eignet sich ideal für die Offline-Entwicklung und datenschutzsensible Anwendungen, doch bei anspruchsvollem logischem Denken, beim Programmieren und mit langen Kontexten liegen lokale Modelle hinter den Frontier-Modellen zurück. Da Kunavo ebenfalls OpenAI-kompatibel ist, lässt sich ein Aufruf mit zwei Änderungen auf ein gehostetes Modell umstellen: base_url und der Modell-Slug:
from openai import OpenAI
client = OpenAI(
base_url="https://api.kunavo.com/v1", # only this line changes
api_key="sk-kn-...", # a real key now
)
resp = client.chat.completions.create(
model="claude-sonnet-5", # a hosted frontier model
messages=[{"role": "user", "content": "Explain quicksort in one paragraph."}],
)
print(resp.choices[0].message.content)| Ollama (lokal) | Kunavo (gehostet) | |
|---|---|---|
| Basis-URL | localhost: | api. |
| Wird ausgeführt auf | Ihrem Rechner | Verwaltete API |
| Modelle | Lokale offene Modelle | Claude, GPT, Veo, Suno |
| Modalitäten | Text + Embeddings | Text, Bild, Video, Audio |
| Kosten | Ihre Hardware / Ihr Stromverbrauch | Pro Token, unter Listenpreis |
| Am besten geeignet für | Offline-Entwicklung, Datenschutz | Frontier-Qualität in der Produktion |
Über Umgebungsvariablen wechseln
Ein gängiges Muster ist, Ollama für die lokale Entwicklung und gehostete Modelle in der Produktion zu verwenden und die Auswahl über eine Umgebungsvariable zu steuern. Client- und Request-Code bleiben identisch – nur base_url und das Modell unterscheiden sich:
import os
from openai import OpenAI
# One client, switched by environment. Local for dev, hosted for prod.
if os.getenv("APP_ENV") == "production":
client = OpenAI(base_url="https://api.kunavo.com/v1",
api_key=os.environ["KUNAVO_API_KEY"])
MODEL = "claude-haiku-4-5"
else:
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
MODEL = "llama3.2"
resp = client.chat.completions.create(
model=MODEL,
messages=[{"role": "user", "content": "ping"}],
)
print(resp.choices[0].message.content)FAQ
Hat Ollama eine OpenAI-kompatible API?
Ja. Ollama bietet unter http://localhost:11434/v1 eine OpenAI-kompatible REST-API mit /chat/completions, /completions, /embeddings und /models. Richten Sie das offizielle OpenAI SDK auf diese base_url aus, übergeben Sie als api_key eine beliebige Zeichenfolge (Ollama ignoriert sie lokal) und setzen Sie model auf ein heruntergeladenes Modell wie llama3.2. Anfrage- und Antwortformat entsprechen OpenAI.
Welche Basis-URL verwendet die OpenAI-API von Ollama?
http://localhost:11434/v1 by default. Set the OpenAI client base_url to that value. If Ollama runs on another host or port, substitute it — the /v1 suffix stays.
Wie wechsle ich von Ollama zu einem gehosteten Modell?
Da beide OpenAI-kompatibel sind, ändern Sie nur base_url und model. Ersetzen Sie http://localhost:11434/v1 durch https://api.kunavo.com/v1, verwenden Sie einen echten sk-kn-Schlüssel und setzen Sie model auf einen gehosteten Slug wie claude-sonnet-5 oder claude-haiku-4-5. Am übrigen Code müssen Sie nichts ändern.
Unterstützt die OpenAI-API von Ollama Bilder oder Videos?
Ollamas OpenAI-kompatible Schnittstelle unterstützt Chat, Completions und Embeddings sowie Bildeingaben bei lokalen multimodalen Modellen. Sie generiert keine Bilder, Videos oder Audio. Für die gehostete Bild-, Video- und Audiogenerierung über dieselbe OpenAI-ähnliche API verwenden Sie die Endpunkte /v1/images, /v1/video und /v1/audio von Kunavo.