外观
本页尚未翻译
本页内容仍为英文原文,源自官方文档 integrations/reranking/jina。中文翻译正在分批进行中。
Jina Reranker
Integrate Jina's multilingual reranking API with LanceDB for improved search results. Features model selection, API key management, and flexible scoring options for all search types.
Jina Reranker
This reranker uses the Jina API to rerank the search results. You can use this reranker by passing JinaReranker() to the rerank() method. Note that you'll either need to set the JINA_API_KEY environment variable or pass the api_key argument to use this reranker.
Note: Supported query types: Hybrid, Vector, and FTS.
Replace the credential placeholders with your provider credentials. In application code, load credentials from environment variables or a secrets manager.
python
import os
import tempfile
from pathlib import Path
import lancedb
from lancedb.embeddings import get_registry
from lancedb.pydantic import LanceModel, Vector
from lancedb.rerankers import JinaReranker
os.environ["JINA_API_KEY"] = "your-api-key"
embedder = get_registry().get("jina").create()
db = lancedb.connect(str(Path(tempfile.mkdtemp()) / "jina-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 = JinaReranker(api_key="your-api-key")
# Run vector search with a reranker
vector_results = tbl.search("hello").rerank(reranker=reranker).to_list()
print(vector_results)
# Build the full-text index before either FTS or hybrid search.
tbl.create_fts_index("text", replace=True)
# Run FTS search with a reranker
fts_results = (
tbl.search("hello", query_type="fts").rerank(reranker=reranker).to_list()
)
print(fts_results)
# Run hybrid search with a reranker
hybrid_results = (
tbl.search("hello", query_type="hybrid").rerank(reranker=reranker).to_list()
)
print(hybrid_results)Accepted Arguments
| Argument | Type | Default | Description |
|---|---|---|---|
model_name | str | "jina-reranker-v2-base-multilingual" | The name of the reranker model to use. You can find the list of available models in https://jina.ai/reranker. |
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 Jina API. If not provided, the JINA_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 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:
Hybrid Search
return_score | Status | Description |
|---|---|---|
relevance | ✅ Supported | Results only have the _relevance_score column. |
all | ❌ Not Supported | Results have vector(_distance) and FTS(score) along with Hybrid Search score(_relevance_score). |
Vector Search
return_score | Status | Description |
|---|---|---|
relevance | ✅ Supported | Results only have the _relevance_score column. |
all | ✅ Supported | Results have vector(_distance) along with Hybrid Search score(_relevance_score). |
FTS Search
return_score | Status | Description |
|---|---|---|
relevance | ✅ Supported | Results only have the _relevance_score column. |
all | ✅ Supported | Results have FTS(score) along with Hybrid Search score(_relevance_score). |