Document Reranking
The rerankers modality. Vendors under rerankers/.
Voyage
import (
rrvoyage "github.com/joakimcarlsson/ai/rerankers/voyage"
)
reranker := rrvoyage.NewReranker(
rrvoyage.WithAPIKey(os.Getenv("VOYAGE_API_KEY")),
rrvoyage.WithModel(rrvoyage.Models[rrvoyage.Rerank25Lite]),
rrvoyage.WithTopK(5),
rrvoyage.WithReturnDocuments(true),
)
query := "What is machine learning?"
documents := []string{
"Machine learning is a subset of artificial intelligence.",
"The weather today is sunny.",
"Deep learning uses neural networks.",
}
resp, err := reranker.Rerank(ctx, query, documents)
for i, r := range resp.Results {
fmt.Printf("Rank %d (score=%.4f): %s\n", i+1, r.RelevanceScore, r.Document)
}
Cohere
import rrcohere "github.com/joakimcarlsson/ai/rerankers/cohere"
reranker := rrcohere.NewReranker(
rrcohere.WithAPIKey(os.Getenv("COHERE_API_KEY")),
rrcohere.WithModel(cohere.Models[cohere.Rerank35]),
rrcohere.WithTopK(5),
rrcohere.WithReturnDocuments(true),
)
resp, err := reranker.Rerank(ctx, query, documents)
Berget AI
EU-hosted, Cohere/Jina-compatible /v1/rerank (e.g. BGE Reranker v2 m3);
pricing in EUR.
import rrberget "github.com/joakimcarlsson/ai/rerankers/berget"
reranker := rrberget.NewReranker(
rrberget.WithAPIKey(os.Getenv("BERGET_API_KEY")),
rrberget.WithModel(berget.Models[berget.BGERerankerV2M3]),
rrberget.WithTopK(5),
rrberget.WithReturnDocuments(true),
)
resp, err := reranker.Rerank(ctx, query, documents)
Vendor-specific options
Voyage:
Cohere: