> ## 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-taalmodellen

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>;
  }
};

## Overzicht

Vision-Language Models (VLM's) zijn een type multimodaal foundation model dat zowel beeld- als tekstinvoer kan verwerken. Deze modellen begrijpen visuele inhoud in combinatie met taalinstructies en genereren hoogwaardige antwoorden op basis van de gecombineerde context. Ze worden breed gebruikt in scenario's met beeldherkenning, inhoudsinterpretatie en intelligente visuele vraag-en-antwoordtoepassingen.

### Typische gebruiksscenario's

* **Beeldherkenning en beschrijving**: Identificeert automatisch objecten, kleuren, scènes en ruimtelijke relaties in afbeeldingen en genereert beschrijvingen in natuurlijke taal.
* **Multimodaal begrip**: Combineert beeldinvoer en contextuele tekst voor meerturnsgesprekken en taakuitvoering.
* **Visuele vraagbeantwoording**: Werkt als een geavanceerde OCR-tool door tekst die in afbeeldingen is ingesloten te herkennen en te interpreteren.
* **Opkomende toepassingen**: Ideaal voor gebruik in intelligente vision-assistenten, robotperceptie, AR-interfaces en meer.

***

## Handleiding voor API-gebruik

Gebruik het `/chat/completions`-endpoint met zowel beeld- als tekstinvoer om een Vision-Language Model aan te roepen.

### Parameter voor afbeeldingsdetails

Gebruik het veld `detail` om de afbeeldingsresolutie te regelen. De volgende modi zijn beschikbaar:

* `high`: Hoge resolutie, behoudt meer details—ideaal voor precisietaken.
* `low`: Lage resolutie, snellere respons—geschikt voor realtime gebruik.
* `auto`: Selecteert automatisch de juiste modus.

***

### Voorbeeld van berichtindeling

#### Afbeelding via 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."
    }
  ]
}
```

#### Afbeelding via 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: afbeelding coderen naar Base64

```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")
```

***

## Invoer met meerdere afbeeldingen

De API ondersteunt het verzenden van meerdere afbeeldingen naast tekstinvoer. Voor de beste resultaten raden we aan om niet meer dan twee afbeeldingen per verzoek te verzenden.

```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."
    }
  ]
}
```

***

## Ondersteunde modellen

De volgende Vision-Language Models worden momenteel ondersteund op het Novita-platform:

<VisionModels />

Bezoek de [Model Hub](https://novita.ai/models-console/library) voor een volledige en actuele lijst met beschikbare modellen.

***

## Facturering

Afbeeldingsinvoer wordt getokeniseerd en samen met tekst meegeteld voor facturering.

* Elk model gebruikt een andere conversiemethode van afbeelding naar token.
* Raadpleeg de prijspagina van elk model voor gedetailleerde informatie over facturering en tokenbeleid.

***

## Voorbeelden van API-aanroepen

### Beschrijving van één afbeelding

```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)
```

### Vergelijking van meerdere afbeeldingen

```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)
```

***

## Opmerkingen en probleemoplossing

* Afbeeldingsresolutie en -helderheid hebben een aanzienlijke invloed op de prestaties van het model. Gebruik waar mogelijk bronnen van hoge kwaliteit.
* Base64-gecodeerde afbeeldingen zouden idealiter kleiner dan 1MB moeten zijn om time-outs of fouten te voorkomen.
* Voor gedetailleerd gebruik kunt u [een gesprek boeken met ons salesteam](https://meet.brevo.com/novita-ai/contact-sales) of indien nodig contact opnemen met support.
