Weergave
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
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
query | str | verplicht | De zoekopdracht |
documents | list[str] | verplicht | Documenten om te ranken |
model | str | vondr-rerank | Model om te gebruiken |
top_n | int | None | Aantal 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}")