Skip to content

Vision

De Vondr SDK ondersteunt het analyseren van afbeeldingen via de chat API.

Basis gebruik

python
from vondr import VondrClient, encode_image

client = VondrClient()

# Encodeer afbeelding vanuit bestandspad
image_uri = encode_image("/pad/naar/afbeelding.jpg")

response = client.chat([
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Wat zie je op deze afbeelding?"},
            {"type": "image_url", "image_url": {"url": image_uri}}
        ]
    }
])
print(response.choices[0].message.content)

De encode_image functie

De encode_image functie converteert een afbeelding naar een base64 data URI.

Parameters

ParameterTypeStandaardBeschrijving
imagestr, Path, of bytesverplichtBestandspad of raw bytes
max_size_mbfloat20.0Maximum bestandsgrootte in MB
qualityint85JPEG kwaliteit (1-100) bij resizing

Vanuit bestandspad

python
from vondr import encode_image
from pathlib import Path

# Met string pad
image_uri = encode_image("/pad/naar/afbeelding.jpg")

# Met Path object
image_uri = encode_image(Path("afbeelding.png"))

Vanuit bytes

python
from vondr import encode_image

# Bijvoorbeeld van een HTTP response
image_bytes = response.content
image_uri = encode_image(image_bytes)

Automatische resizing

Afbeeldingen groter dan max_size_mb worden automatisch verkleind:

python
# Verklein afbeeldingen groter dan 5MB
image_uri = encode_image(
    "/pad/naar/grote_afbeelding.jpg",
    max_size_mb=5.0,
    quality=75  # Lagere kwaliteit voor kleinere bestanden
)

Ondersteunde formaten

De volgende afbeeldingsformaten worden ondersteund:

  • JPEG (.jpg, .jpeg)
  • PNG (.png)
  • GIF (.gif)
  • WebP (.webp)
  • BMP (.bmp)

Voorbeeld: Meerdere afbeeldingen

Je kunt meerdere afbeeldingen in één bericht sturen:

python
from vondr import VondrClient, encode_image

client = VondrClient()
image1 = encode_image("foto1.jpg")
image2 = encode_image("foto2.jpg")

response = client.chat([
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Vergelijk deze twee afbeeldingen"},
            {"type": "image_url", "image_url": {"url": image1}},
            {"type": "image_url", "image_url": {"url": image2}}
        ]
    }
])
print(response.choices[0].message.content)

Voorbeeld: Document analyse

Analyseer een document of screenshot:

python
from vondr import VondrClient, encode_image

client = VondrClient()
document = encode_image("factuur.png")

response = client.chat([
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Extraheer de volgende informatie uit deze factuur: datum, totaalbedrag, en bedrijfsnaam. Geef het als JSON."},
            {"type": "image_url", "image_url": {"url": document}}
        ]
    }
],
response_format={"type": "json_object"})

import json
data = json.loads(response.choices[0].message.content)
print(data)

Asynchrone versie

python
from vondr import AsyncVondrClient, encode_image

client = AsyncVondrClient()
image_uri = encode_image("afbeelding.jpg")

response = await client.chat([
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Beschrijf deze afbeelding"},
            {"type": "image_url", "image_url": {"url": image_uri}}
        ]
    }
])
print(response.choices[0].message.content)

Foutafhandeling

python
from vondr import VondrClient, encode_image

try:
    image_uri = encode_image("/pad/die/niet/bestaat.jpg")
except FileNotFoundError as e:
    print(f"Bestand niet gevonden: {e}")

try:
    # Grote afbeelding zonder Pillow geïnstalleerd
    image_uri = encode_image("grote_afbeelding.jpg", max_size_mb=1.0)
except ImportError as e:
    print("Installeer Pillow voor image resizing: pip install Pillow")