Skip to content
BotServBotServ
OllamaVisionAPIBilderLlava

Ollama Vision API

Bildanalyse mit Ollama Vision API. Base64, Bild-URLs, Llava und Vision-Modelle nutzen.

S

schutzgeist

2 min read
Ollama Vision API

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

ModellGrösseEinsatz
moondreamsehr kleinSchnelle Beschreibungen
llava-llama37B/13BGute Qualität
bakllava7BBessere Erkennung
granite3.2-visionvariabelIBM-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.

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

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.

Zurück zum KI Blog
Share:

Ähnliche Beiträge