Ollama Vision API
Was dieser Artikel über die Ollama Vision API behandelt
- Wie Ollama Bilder verarbeitet.
- Welche Vision-Modelle verfügbar sind.
- Wie man Bilder als Base64 oder URL übergibt.
- Praktisches Python-Beispiel.
- Tipps für bessere Bildanalyse.
Einleitung: Ollama Vision API
Ollama unterstützt multimodale Modelle, die neben Text auch Bilder verstehen. Damit können Bilder analysiert, beschrieben, klassifiziert oder zusammengefasst werden. Die API ist an OpenAI angelehnt und erlaubt es, Bilder entweder als URL oder Base64-kodiertes Datum zu senden. Vision-Modelle sind oft grösser und langsamer als reine Textmodelle, aber für viele Aufgaben extrem nützlich.
Dieser Artikel zeigt, wie man die Ollama Vision API nutzt.
Wichtige Begriffe
- Vision-Modell: Modell, das Bilder verarbeiten kann.
- Llava: Bekanntes Open-Source-Vision-Modell.
- Base64: Kodierung von Binärdaten als Text.
- Multimodal: Mehrere Eingabetypen wie Text und Bild.
- Embedding: Vektordarstellung eines Bildes.
- Image token: Spezielles Token für Bildinhalte.
- Clip: Modell zur Verbindung von Bild und Text.
- OCR: Erkennung von Text in Bildern.
Verfügbare Vision-Modelle
- llava
- llava-llama3
- bakllava
- moondream (sehr klein)
- granite3.2-vision
Jedes Modell hat unterschiedliche Grösse, Geschwindigkeit und Qualität.
Python-Beispiel mit Base64
import requests
import base64
url = "http://localhost:11434/api/chat"
with open("bild.jpg", "rb") as f:
image_base64 = base64.b64encode(f.read()).decode("utf-8")
payload = {
"model": "llava",
"messages": [
{
"role": "user",
"content": "Beschreibe das Bild.",
"images": [image_base64]
}
],
"stream": False
}
response = requests.post(url, json=payload)
print(response.json()["message"]["content"])
Mit curl
curl http://localhost:11434/api/chat -d '{
"model": "llava",
"messages": [{
"role": "user",
"content": "Was ist auf dem Bild?",
"images": ["<base64-encoded-image>"]
}],
"stream": false
}'
OpenAI-kompatibler Endpunkt
import requests
url = "http://localhost:11434/v1/chat/completions"
payload = {
"model": "llava",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Beschreibe das Bild."},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,<base64>"}}
]
}
]
}
response = requests.post(url, json=payload)
print(response.json()["choices"][0]["message"]["content"])
Bild-URLs
Ollama kann Bilder nicht direkt über öffentliche URLs laden. Die Anwendung muss das Bild selbst herunterladen und Base64 kodieren:
import requests, base64
image_url = "https://example.com/bild.jpg"
img = requests.get(image_url).content
b64 = base64.b64encode(img).decode("utf-8")
Modell wählen
| Modell | Grösse | Einsatz |
|---|---|---|
| moondream | sehr klein | Schnelle Beschreibungen |
| llava-llama3 | 7B/13B | Gute Qualität |
| bakllava | 7B | Bessere Erkennung |
| granite3.2-vision | variabel | IBM-Modell |
Tipps für gute Bildanalyse
- Bilder nicht zu klein skalieren.
- Klare Fragen stellen.
- Ein Modell pro Anwendungsfall testen.
- Bei OCR hohe Bildqualität nutzen.
- Mehrere Bilder pro Anfrage sind meist nicht möglich.
- Kontextlänge beachten, da Bilder viele Tokens brauchen.
Tipps zu VRAM
Vision-Modelle brauchen mehr VRAM als Textmodelle. Ein 7B-Vision-Modell mit Q4 kann 6-8 GB VRAM verbrauchen. Grössere Bilder brauchen zusätzliche Verarbeitung.
Fehlerbehebung
- Modell antwortet nicht: Sicherstellen, dass Vision-Modell geladen ist.
- Bild zu gross: Verkleinern oder komprimieren.
- Nicht unterstütztes Format: JPEG oder PNG bevorzugen.
- OOM: Modellgrösse oder Bildauflösung reduzieren.
- Falsches Endpunkt-Format: OpenAI-kompatibler Endpunkt nutzt
/v1/chat/completions.
Weiterführende Links und Infos
- BotServ.de Ollama Vision
- BotServ.de Ollama Modell-Empfehlungen
- BotServ.de Ollama API-Fehlerbehebung
- BotServ.de Lokale multimodale KI
FAQ: Ollama Vision API
Kann Ollama Bilder aus URLs laden? Nein, die Anwendung muss das Bild herunterladen und Base64 kodieren.
Welches Vision-Modell ist am besten? Llava-llama3 oder Bakllava für gute Qualität, Moondream für Schnelligkeit.
Wie viel VRAM braucht ein Vision-Modell? Mehr als ein reines Textmodell. 7B mit Q4 kann 6-8 GB verbrauchen.
Welche Bildformate funktionieren? Meist JPEG und PNG.
Kann ich mehrere Bilder senden? Ollama-API ermöglicht typischerweise ein Bild pro Nachricht.
Quellen und weiterführende Literatur
- Ollama Vision: https://ollama.com/blog/llava
- Llava Paper: https://arxiv.org/abs/2304.08485
- Moondream: https://github.com/vikhyat/moondream
Zusammenfassung: Ollama Vision API
Die Ollama Vision API ermöglicht Bildanalyse mit lokalen multimodalen Modellen. Bilder werden als Base64 übergeben, entweder über den Ollama-Chat-Endpunkt oder den OpenAI-kompatiblen Endpunkt. Vision-Modelle wie Llava, Bakllava oder Moondream bieten unterschiedliche Qualität und Geschwindigkeit. Wer auf Bildgrösse, VRAM und Modellwahl achtet, kann Bilder zuverlässig lokal analysieren.


