Skip to content

Embeddings

De embed methode converteert tekst naar numerieke vectoren (embeddings). Deze vectoren kunnen gebruikt worden voor semantic search, clustering, en andere NLP taken.

Basis gebruik

python
from vondr import VondrClient

client = VondrClient()
response = client.embed(
    input=["Hallo wereld", "Tot ziens wereld"],
    model="vondr-embed",
)

for item in response.data:
    print(f"Embedding {item.index}: {len(item.embedding)} dimensies")

Parameters

ParameterTypeStandaardBeschrijving
inputstr of list[str]verplichtTekst(en) om te embedden
modelstrvondr-embedModel om te gebruiken

Voorbeeld

python
response = client.embed(
    input="Dit is een voorbeeldzin.",
    model="vondr-embed"
)

embedding = response.data[0].embedding
print(f"Dimensies: {len(embedding)}")

Meerdere teksten

Embed meerdere teksten in één aanroep:

python
teksten = [
    "Python is een programmeertaal",
    "Java wordt veel gebruikt in enterprise",
    "JavaScript draait in de browser"
]

response = client.embed(input=teksten)

for item in response.data:
    print(f"Tekst {item.index}: {len(item.embedding)} dimensies")

Response object

De response is een EmbeddingResponse object:

python
response = client.embed(input=["Tekst 1", "Tekst 2"])

# Alle embeddings
for item in response.data:
    print(f"Index: {item.index}")
    print(f"Embedding: {item.embedding[:5]}...")  # Eerste 5 waarden

# Token gebruik
print(response.usage.prompt_tokens)
print(response.usage.total_tokens)

Een simpel voorbeeld van semantic search met embeddings:

python
import numpy as np
from vondr import VondrClient

def cosine_similarity(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

documenten = [
    "Python is populair voor data science",
    "JavaScript wordt gebruikt voor web development",
    "Rust is bekend om memory safety"
]

client = VondrClient()

# Embed alle documenten
doc_response = client.embed(input=documenten)
doc_embeddings = [d.embedding for d in doc_response.data]

# Embed de zoekopdracht
query = "Welke taal is goed voor websites?"
query_response = client.embed(input=query)
query_embedding = query_response.data[0].embedding

# Bereken similarities
similarities = [
    cosine_similarity(query_embedding, doc_emb)
    for doc_emb in doc_embeddings
]

# Sorteer op relevantie
ranked = sorted(
    zip(documenten, similarities),
    key=lambda x: x[1],
    reverse=True
)

for doc, score in ranked:
    print(f"{score:.3f}: {doc}")

Asynchrone versie

python
from vondr import AsyncVondrClient

client = AsyncVondrClient()
response = await client.embed(
    input=["Tekst 1", "Tekst 2"]
)

for item in response.data:
    print(f"Embedding {item.index}: {len(item.embedding)} dimensies")