Skip to content

本页尚未翻译

本页内容仍为英文原文,源自官方文档 integrations/reranking/answerdotai。中文翻译正在分批进行中。

Answer.AI Rerankers ​

Use AnswerDotAI's lightweight reranking library with LanceDB. Features unified API for common reranking models, configurable model selection, and comprehensive scoring options.

Answer.AI Rerankers ​

This integration uses AnswersDotAI's rerankers to rerank the search results, providing a lightweight, low-dependency, unified API to use all common reranking and cross-encoder models.

Note: Supported query types: Hybrid, Vector, and FTS.

python
import tempfile
from pathlib import Path

import lancedb
from lancedb.embeddings import get_registry
from lancedb.pydantic import LanceModel, Vector
from lancedb.rerankers import AnswerdotaiRerankers

embedder = get_registry().get("sentence-transformers").create()
db = lancedb.connect(str(Path(tempfile.mkdtemp()) / "answerdotai-rerank"))

class Schema(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)
tbl.add(data)
reranker = AnswerdotaiRerankers()

# Run vector search with a reranker
result = tbl.search("hello").rerank(reranker=reranker).to_list()

# Build the full-text index before either FTS or hybrid search.
tbl.create_fts_index("text", replace=True)

# Run FTS search with a reranker
result = tbl.search("hello", query_type="fts").rerank(reranker=reranker).to_list()

# Run hybrid search with a reranker
result = (
    tbl.search("hello", query_type="hybrid").rerank(reranker=reranker).to_list()
)

Accepted Arguments ​

ArgumentTypeDefaultDescription
model_typestr"colbert"The type of model to use. Supported model types can be found here: https://github.com/AnswerDotAI/rerankers.
model_namestr"answerdotai/answerai-colbert-small-v1"The name of the reranker model to use.
columnstr"text"The name of the column to use as input to the cross encoder model.
return_scorestr"relevance"Options are "relevance" or "all". The type of score to return. If "relevance", will return only the _relevance_score column. If "all" is supported, will return relevance score along with the vector and/or fts scores depending on query type.

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:

return_scoreStatusDescription
relevance✅ SupportedResults only have the _relevance_score column.
all❌ Not SupportedResults have vector(_distance) and FTS(score) along with Hybrid Search score(_relevance_score).
return_scoreStatusDescription
relevance✅ SupportedResults only have the _relevance_score column.
all✅ SupportedResults have vector(_distance) along with Hybrid Search score(_relevance_score).
return_scoreStatusDescription
relevance✅ SupportedResults only have the _relevance_score column.
all✅ SupportedResults have FTS(score) along with Hybrid Search score(_relevance_score).