Zum Inhalt springen

Multimodal: Bild-Analyse (Vision)

Multimodale Modelle akzeptieren neben Text auch Bilder als Eingabe. Damit lassen sich Aufgaben wie Bildbeschreibungen, Diagramm-Auswertung, OCR-ähnliche Texterkennung oder visuelles Question-Answering umsetzen, alles über denselben /chat/completions-Endpunkt, den Sie auch für reinen Text verwenden.

Technisch wird ein Bild eingebettet, indem Sie das content-Feld einer Nachricht als Array übergeben. Jedes Element darin ist entweder ein Text-Part ({"type": "text", ...}) oder ein Bild-Part ({"type": "image_url", ...}). Das Modell erhält beide zusammen und kann in seiner Antwort sowohl auf den Text als auch auf das Bild Bezug nehmen.

Statt eines Strings enthält content eine Liste von Parts. Ein typisches Beispiel sieht so aus:

[
{"type": "text", "text": "Was zeigt dieses Bild?"},
{"type": "image_url", "image_url": {"url": "https://example.com/diagramm.png"}}
]

Das Feld image_url.url darf eine öffentlich erreichbare HTTPS-URL oder, je nach Client-SDK, eine Base64-data-URL (z.B. data:image/png;base64,...) enthalten. Bei Base64-URLs achten Sie auf korrekte MIME-Typ-Präfixe.

Terminal-Fenster
curl -X POST https://ai.noris.de/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "vllm/release/gemma-4-31b-it",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Beschreibe knapp, was auf diesem Bild zu sehen ist."},
{"type": "image_url", "image_url": {"url": "https://example.com/bild.png"}}
]
}
]
}'

Die Antwort folgt derselben Struktur wie bei reinen Text-Anfragen, der generierte Text liegt unter choices[0].message.content.

Das openai-SDK unterstützt das Content-Array nativ:

from openai import OpenAI
client = OpenAI(base_url="https://ai.noris.de/v1", api_key="YOUR_API_KEY")
response = client.chat.completions.create(
model="vllm/release/gemma-4-31b-it",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Beschreibe knapp, was auf diesem Bild zu sehen ist."},
{"type": "image_url", "image_url": {"url": "https://example.com/bild.png"}}
]
}
]
)
print(response.choices[0].message.content)

Nicht alle Modelle der Plattform unterstützen Bild-Eingaben. Stand heute gelten folgende Zuordnungen:

ModellVision-fähigHinweis
Gemma 4 31B (IT)JaMultimodal, geeignet für allgemeine Bildanalyse.
Qwen 3.6 27BJaMultimodal, stark im Code/Diagramm-Bereich.
GPT-OSS 120BNeinRein textbasiertes Reasoning-Modell.
GLM 5.2NeinText-Modell mit sehr langem Kontext.

Wird ein Bild an ein nicht-multimodales Modell gesendet, liefert die API eine Fehlermeldung. Prüfen Sie daher vor der Integration, ob das gewählte Modell Vision unterstützt, oder greifen Sie direkt auf Gemma 4 31B bzw. Qwen 3.6 27B zurück. Details siehe Modelle.