> ## Documentation Index
> Fetch the complete documentation index at: https://novita.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Vision-Language-Modelle

export const VisionModels = () => {
  if (typeof document === "undefined") {
    return null;
  } else {
    let attempts = 0;
    const maxAttempts = 50;
    const INIT_DISPLAY_COUNT = 3;
    const interval = setInterval(() => {
      const clientComponent = document.getElementById("vision-models");
      if (clientComponent && window.novitaRemoteData.llmModels.status === 'loaded') {
        const modelList = window.novitaRemoteData.llmModels.data.filter(model => {
          return (model.features || []).includes('vision');
        });
        let displayModels = modelList.slice(0, INIT_DISPLAY_COUNT).map(model => {
          return `<li><span class="model-id-item">${model.id}</span></li>`;
        }).join('');
        let showMoreButton = '';
        if (modelList.length > INIT_DISPLAY_COUNT) {
          showMoreButton = `<button id="show-more-vision-model-btn" style="margin-left: 32px; color: rgb(40 116 255)">View More</button>`;
        }
        clientComponent.innerHTML = `
          <ul>${displayModels}</ul>
          ${showMoreButton}
        `;
        document.getElementById('show-more-vision-model-btn')?.addEventListener('click', () => {
          clientComponent.innerHTML = `
            <ul>${modelList.map(model => {
            return `<li><span class="model-id-item">${model.id}</span></li>`;
          }).join('')}</ul>
          `;
        });
        clearInterval(interval);
      }
      attempts++;
      if (attempts >= maxAttempts) {
        clearInterval(interval);
      }
    }, 200);
    return <div id="vision-models"></div>;
  }
};

## Übersicht

Vision-Language-Modelle (VLMs) sind eine Art multimodaler Foundation-Modelle, die sowohl Bild- als auch Texteingaben verarbeiten können. Diese Modelle verstehen visuelle Inhalte in Verbindung mit sprachlichen Anweisungen und erzeugen hochwertige Antworten auf Grundlage des kombinierten Kontexts. Sie werden häufig in Szenarien eingesetzt, die Bilderkennung, Inhaltsinterpretation und intelligente visuelle Frage-Antwort-Anwendungen umfassen.

### Typische Anwendungsfälle

* **Bilderkennung und Beschreibung**: Erkennt automatisch Objekte, Farben, Szenen und räumliche Beziehungen in Bildern und generiert Beschreibungen in natürlicher Sprache.
* **Multimodales Verständnis**: Kombiniert Bildeingaben und kontextbezogenen Text für mehrstufige Dialoge und die Erledigung von Aufgaben.
* **Visuelle Fragebeantwortung**: Dient als fortgeschrittenes OCR-Tool, indem es in Bildern eingebetteten Text erkennt und interpretiert.
* **Neue Anwendungsbereiche**: Ideal für den Einsatz in intelligenten Vision-Assistenten, Roboterwahrnehmung, AR-Schnittstellen und mehr.

***

## Leitfaden zur API-Nutzung

Um ein Vision-Language-Modell aufzurufen, verwenden Sie den `/chat/completions`-Endpunkt mit Bild- und Texteingaben.

### Parameter für Bilddetails

Verwenden Sie das Feld `detail`, um die Bildauflösung zu steuern. Die folgenden Modi sind verfügbar:

* `high`: Hohe Auflösung, bewahrt mehr Details — ideal für Präzisionsaufgaben.
* `low`: Niedrige Auflösung, schnellere Antwort — geeignet für Echtzeitanwendungen.
* `auto`: Wählt automatisch den passenden Modus aus.

***

### Beispiel für das Nachrichtenformat

#### Bild über URL

```json theme={"system"}
{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/image.png",
        "detail": "high"
      }
    },
    {
      "type": "text",
      "text": "Please describe the scene in the image."
    }
  ]
}
```

#### Bild über Base64

```json theme={"system"}
{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "data:image/jpeg;base64,{base64_image}",
        "detail": "low"
      }
    },
    {
      "type": "text",
      "text": "What text is present in the image?"
    }
  ]
}
```

***

### Python-Code: Bild in Base64 kodieren

```python theme={"system"}
import base64
from PIL import Image
import io

def image_to_base64(image_path):
    with Image.open(image_path) as img:
        buffered = io.BytesIO()
        img.save(buffered, format="JPEG")
        return base64.b64encode(buffered.getvalue()).decode('utf-8')

base64_image = image_to_base64("path/to/your/image.jpg")
```

***

## Eingabe mehrerer Bilder

Die API unterstützt das Senden mehrerer Bilder zusammen mit einer Texteingabe. Für optimale Ergebnisse empfehlen wir, nicht mehr als zwei Bilder pro Anfrage zu senden.

```json theme={"system"}
{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/image1.png"
      }
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "data:image/jpeg;base64,{base64_image}"
      }
    },
    {
      "type": "text",
      "text": "Compare the common features of these two images."
    }
  ]
}
```

***

## Unterstützte Modelle

Die folgenden Vision-Language-Modelle werden derzeit auf der Novita-Plattform unterstützt:

<VisionModels />

Besuchen Sie den [Model Hub](https://novita.ai/models-console/library) für eine vollständige und aktuelle Liste der verfügbaren Modelle.

***

## Abrechnung

Bildeingaben werden tokenisiert und zusammen mit Text bei der Abrechnung berücksichtigt.

* Jedes Modell verwendet eine andere Methode zur Umwandlung von Bildern in Tokens.
* Detaillierte Informationen zur Abrechnung und Token-Richtlinie finden Sie auf der Preisseite des jeweiligen Modells.

***

## Beispiele für API-Aufrufe

### Beschreibung eines einzelnen Bildes

```python theme={"system"}
from openai import OpenAI

client = OpenAI(api_key="YOUR_KEY", base_url="https://api.novita.ai/openai")

response = client.chat.completions.create(
    model="qwen/qwen2.5-vl-72b-instruct",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://example.com/cityscape.jpg"
                    }
                },
                {
                    "type": "text",
                    "text": "Describe the main buildings in the image."
                }
            ]
        }
    ],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content or "", end="", flush=True)
```

### Vergleich mehrerer Bilder

```python theme={"system"}
response = client.chat.completions.create(
    model="qwen/qwen2.5-vl-72b-instruct",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://example.com/product1.jpg"
                    }
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://example.com/product2.jpg"
                    }
                },
                {
                    "type": "text",
                    "text": "Please compare the key differences between these two products."
                }
            ]
        }
    ],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content or "", end="", flush=True)
```

***

## Hinweise & Fehlerbehebung

* Bildauflösung und Klarheit beeinflussen die Modellleistung erheblich. Verwenden Sie nach Möglichkeit hochwertige Quellen.
* Base64-kodierte Bilder sollten idealerweise kleiner als 1MB sein, um Timeouts oder Fehler zu vermeiden.
* Für detaillierte Informationen zur Nutzung können Sie [einen Termin mit unserem Vertriebsteam buchen](https://meet.brevo.com/novita-ai/contact-sales) oder bei Bedarf den Support kontaktieren.
