Voyage AI Reranker
Voyage AI provides cutting-edge embedding and rerankers.
This reranker uses theVoyageAI API to rerank the search results. You can use this reranker by passingVoyageAIReranker()
to thererank()
method. Note that you'll either need to set theVOYAGE_API_KEY
environment variable or pass theapi_key
argument to use this reranker.
Note
Supported Query Types: Hybrid, Vector, FTS
importnumpyimportlancedbfromlancedb.embeddingsimportget_registryfromlancedb.pydanticimportLanceModel,Vectorfromlancedb.rerankersimportVoyageAIRerankerembedder=get_registry().get("sentence-transformers").create()db=lancedb.connect("~/.lancedb")classSchema(LanceModel):text:str=embedder.SourceField()vector:Vector(embedder.ndims())=embedder.VectorField()data=[{"text":"hello world"},{"text":"goodbye world"}]tbl=db.create_table("test",schema=Schema,mode="overwrite")tbl.add(data)reranker=VoyageAIReranker(model_name="rerank-2")# Run vector search with a rerankerresult=tbl.search("hello").rerank(reranker=reranker).to_list()# Run FTS search with a rerankerresult=tbl.search("hello",query_type="fts").rerank(reranker=reranker).to_list()# Run hybrid search with a rerankertbl.create_fts_index("text",replace=True)result=tbl.search("hello",query_type="hybrid").rerank(reranker=reranker).to_list()
Accepted Arguments
Argument | Type | Default | Description |
---|---|---|---|
model_name | str | None | The name of the reranker model to use. Available models are: rerank-2, rerank-2-lite |
column | str | "text" | The name of the column to use as input to the cross encoder model. |
top_n | str | None | The number of results to return. If None, will return all results. |
api_key | str | None | The API key for the Voyage AI API. If not provided, theVOYAGE_API_KEY environment variable is used. |
return_score | str | "relevance" | Options are "relevance" or "all". The type of score to return. If "relevance", will return only the `_relevance_score. If "all" is supported, will return relevance score along with the vector and/or fts scores depending on query type |
truncation | bool | None | Whether to truncate the input to satisfy the "context length limit" on the query and the documents. |
Supported Scores for each query type
You can specify the type of scores you want the reranker to return. The following are the supported scores for each query type:
Hybrid Search
return_score | Status | Description |
---|---|---|
relevance | ✅ Supported | Returns only have the_relevance_score column |
all | ❌ Not Supported | Returns have vector(_distance ) and FTS(score ) along with Hybrid Search score(_relevance_score ) |
Vector Search
return_score | Status | Description |
---|---|---|
relevance | ✅ Supported | Returns only have the_relevance_score column |
all | ✅ Supported | Returns have vector(_distance ) along with Hybrid Search score(_relevance_score ) |
FTS Search
return_score | Status | Description |
---|---|---|
relevance | ✅ Supported | Returns only have the_relevance_score column |
all | ✅ Supported | Returns have FTS(score ) along with Hybrid Search score(_relevance_score ) |