Skip to content

Rerank

De rerank methode rangschikt documenten op relevantie ten opzichte van een zoekopdracht. Dit is nuttig voor het verbeteren van zoekresultaten.

Basis gebruik

python
from vondr import VondrClient

client = VondrClient()
response = client.rerank(
    query="hoofdstad van Frankrijk",
    documents=["Parijs ligt in Frankrijk", "Berlijn ligt in Duitsland"],
    model="vondr-rerank",
)

for result in response.results:
    print(f"Document {result.index}: score {result.relevance_score:.3f}")

Parameters

ParameterTypeStandaardBeschrijving
querystrverplichtDe zoekopdracht
documentslist[str]verplichtDocumenten om te ranken
modelstrvondr-rerankModel om te gebruiken
top_nintNoneAantal resultaten (alle indien niet opgegeven)

Voorbeeld met top_n

Beperk het aantal resultaten:

python
response = client.rerank(
    query="Python programmeren",
    documents=[
        "Python is een programmeertaal",
        "Slangen zijn reptielen",
        "Python wordt veel gebruikt voor data science",
        "Java is ook een programmeertaal"
    ],
    top_n=2
)

# Geeft alleen de top 2 meest relevante documenten
for result in response.results:
    print(f"Score {result.relevance_score:.3f}: {result.document}")

Response object

De response is een RerankResponse object:

python
response = client.rerank(
    query="machine learning",
    documents=["Document 1", "Document 2", "Document 3"]
)

# Alle resultaten (gesorteerd op relevantie)
for result in response.results:
    print(f"Index: {result.index}")           # Originele index
    print(f"Score: {result.relevance_score}") # Relevantie score
    print(f"Document: {result.document}")     # Document tekst

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

Voorbeeld: RAG pipeline

Combineer embeddings met reranking voor betere resultaten:

python
from vondr import VondrClient

documenten = [
    "Python is populair voor data science en machine learning",
    "JavaScript wordt gebruikt voor frontend development",
    "Python heeft veel libraries zoals NumPy en Pandas",
    "Rust biedt memory safety zonder garbage collector",
    "Python is makkelijk te leren voor beginners"
]

client = VondrClient()

# Stap 1: Gebruik embeddings voor eerste selectie (sneller)
# (in praktijk zou je hier een vector database gebruiken)

# Stap 2: Rerank de kandidaten (nauwkeuriger)
response = client.rerank(
    query="Welke taal is goed voor data analyse?",
    documents=documenten,
    top_n=3
)

print("Top 3 meest relevante documenten:")
for result in response.results:
    print(f"  {result.relevance_score:.3f}: {result.document}")

Asynchrone versie

python
from vondr import AsyncVondrClient

client = AsyncVondrClient()
response = await client.rerank(
    query="Python programmeren",
    documents=["Doc 1", "Doc 2", "Doc 3"]
)

for result in response.results:
    print(f"Score {result.relevance_score:.3f}: {result.document}")