重排序器
CohereReranker
class CohereReranker(model='rerank-english-v3.0', rank_by=None, limit=5, return_score=True, api_config=None)
基类: BaseReranker
CohereReranker 类使用 Cohere 的 API 根据输入查询对文档进行重排序。
此重排序器旨在与 Cohere 的 /rerank API 交互,需要 API 密钥进行身份验证。密钥可以直接在 api_config 字典中提供,也可以通过 COHERE_API_KEY 环境变量提供。用户必须从 Cohere 网站 (https://dashboard.cohere.com/) 获取 API 密钥。此外,必须使用 pip install cohere 安装 cohere Python 客户端。
from redisvl.utils.rerank import CohereReranker
# set up the Cohere reranker with some configuration
reranker = CohereReranker(rank_by=["content"], limit=2)
# rerank raw search results based on user input/query
results = reranker.rank(
query="your input query text here",
docs=[
{"content": "document 1"},
{"content": "document 2"},
{"content": "document 3"}
]
)
使用指定的模型、排序标准和 API 配置初始化 CohereReranker。
- 参数
- model (str) – 用于重排序的 Cohere 模型标识符。默认为 'rerank-english-v3.0'。
- rank_by (Optional [ List [ str ] ]) – 可选的键列表,用于指定文档中应考虑排序的属性。None 表示排序将依赖模型的默认行为。
- limit (int) – 重排序后返回的最大结果数。必须是正整数。
- return_score (bool) – 是否在重排序结果中返回分数。
- api_config (Optional [ Dict ] , optional) – 包含 API 密钥的字典。默认为 None。
- 抛出
- ImportError – 如果未安装 cohere 库。
- ValueError – 如果未提供 API 密钥。
async arank(query, docs, **kwargs)
使用 Cohere 重排序 API 根据提供的查询异步重排序文档。
此方法处理用户的查询和提供的文档,以便按照可能与查询上下文更相关的方式对它们进行重排序。
- 参数
- query (str) – 用户的搜索查询。
- docs (Union [ List [ Dict [ str , Any ] ] , List [ str ] ]) – 要排序的文档列表,可以是字典列表或字符串列表。
- Returns: 重排序后的文档列表以及可选的相关分数。
- 返回类型: Union[Tuple[Union[List[Dict[str, Any]], List[str]], float], List[Dict[str, Any]]]
model_post_init(context, /)
此函数旨在像 BaseModel 方法一样,用于初始化私有属性。
它接受 context 作为参数,因为这是 pydantic-core 调用它时传递的内容。
- 参数
- self (BaseModel) – BaseModel 实例。
- context (Any) – 上下文。
- 返回类型: None
rank(query, docs, **kwargs)
使用 Cohere 重排序 API 根据提供的查询异步重排序文档。
此方法处理用户的查询和提供的文档,以便按照可能与查询上下文更相关的方式对它们进行重排序。
- 参数
- query (str) – 用户的搜索查询。
- docs (Union [ List [ Dict [ str , Any ] ] , List [ str ] ]) – 要排序的文档列表,可以是字典列表或字符串列表。
- Returns: 重排序后的文档列表以及可选的相关分数。
- 返回类型: Union[Tuple[Union[List[Dict[str, Any]], List[str]], float], List[Dict[str, Any]]]
model_config: ClassVar[ConfigDict] = {}
模型的配置,应是符合 [ConfigDict][pydantic.config.ConfigDict] 的字典。
HFCrossEncoderReranker
class HFCrossEncoderReranker(model='cross-encoder/ms-marco-MiniLM-L-6-v2', limit=3, return_score=True, *, rank_by=None)
基类: BaseReranker
HFCrossEncoderReranker 类使用 Hugging Face 的交叉编码器模型根据输入查询对文档进行重排序。
此重排序器使用 sentence_transformers 库中的 CrossEncoder 类加载交叉编码器模型。它需要安装 sentence_transformers 库。
from redisvl.utils.rerank import HFCrossEncoderReranker
# set up the HFCrossEncoderReranker with a specific model
reranker = HFCrossEncoderReranker(model_name="cross-encoder/ms-marco-MiniLM-L-6-v2", limit=3)
# rerank raw search results based on user input/query
results = reranker.rank(
query="your input query text here",
docs=[
{"content": "document 1"},
{"content": "document 2"},
{"content": "document 3"}
]
)
使用指定的模型和排序标准初始化 HFCrossEncoderReranker。
- 参数
- model (str) – 用于重排序的交叉编码器模型的名称或路径。默认为 'cross-encoder/ms-marco-MiniLM-L-6-v2'。
- limit (int) – 重排序后返回的最大结果数。必须是正整数。
- return_score (bool) – 是否在重排序结果中返回分数。
- rank_by (List [ str ] | None)
async arank(query, docs, **kwargs)
使用已加载的交叉编码器模型根据提供的查询异步重排序文档。
此方法处理用户的查询和提供的文档,以便按照可能与查询上下文更相关的方式对它们进行重排序。
- 参数
- query (str) – 用户的搜索查询。
- docs (Union [ List [ Dict [ str , Any ] ] , List [ str ] ]) – 要排序的文档列表,可以是字典列表或字符串列表。
- Returns: 重排序后的文档列表以及可选的相关分数。
- 返回类型: Union[Tuple[List[Dict[str, Any]], List[float]], List[Dict[str, Any]]]
model_post_init(context, /)
此函数旨在像 BaseModel 方法一样,用于初始化私有属性。
它接受 context 作为参数,因为这是 pydantic-core 调用它时传递的内容。
- 参数
- self (BaseModel) – BaseModel 实例。
- context (Any) – 上下文。
- 返回类型: None
rank(query, docs, **kwargs)
使用已加载的交叉编码器模型根据提供的查询重排序文档。
此方法处理用户的查询和提供的文档,以便按照可能与查询上下文更相关的方式对它们进行重排序。
- 参数
- query (str) – 用户的搜索查询。
- docs (Union [ List [ Dict [ str , Any ] ] , List [ str ] ]) – 要排序的文档列表,可以是字典列表或字符串列表。
- Returns: 重排序后的文档列表以及可选的相关分数。
- 返回类型: Union[Tuple[List[Dict[str, Any]], List[float]], List[Dict[str, Any]]]
model_config: ClassVar[ConfigDict] = {}
模型的配置,应是符合 [ConfigDict][pydantic.config.ConfigDict] 的字典。
VoyageAIReranker
class VoyageAIReranker(model, rank_by=None, limit=5, return_score=True, api_config=None)
基类: BaseReranker
VoyageAIReranker 类使用 VoyageAI 的 API 根据输入查询对文档进行重排序。
此重排序器旨在与 VoyageAI 的 /rerank API 交互,需要 API 密钥进行身份验证。密钥可以直接在 api_config 字典中提供,也可以通过 VOYAGE_API_KEY 环境变量提供。用户必须从 VoyageAI 网站 (https://dash.voyageai.com/) 获取 API 密钥。此外,必须使用 pip install voyageai 安装 voyageai Python 客户端。
from redisvl.utils.rerank import VoyageAIReranker
# set up the VoyageAI reranker with some configuration
reranker = VoyageAIReranker(rank_by=["content"], limit=2)
# rerank raw search results based on user input/query
results = reranker.rank(
query="your input query text here",
docs=[
{"content": "document 1"},
{"content": "document 2"},
{"content": "document 3"}
]
)
使用指定的模型、排序标准和 API 配置初始化 VoyageAIReranker。
- 参数
- model (str) – 用于重排序的 VoyageAI 模型标识符。
- rank_by (Optional [ List [ str ] ]) – 可选的键列表,用于指定文档中应考虑排序的属性。None 表示排序将依赖模型的默认行为。
- limit (int) – 重排序后返回的最大结果数。必须是正整数。
- return_score (bool) – 是否在重排序结果中返回分数。
- api_config (Optional [ Dict ] , optional) – 包含 API 密钥的字典。默认为 None。
- 抛出
- ImportError – 如果未安装 voyageai 库。
- ValueError – 如果未提供 API 密钥。
async arank(query, docs, **kwargs)
使用 VoyageAI 重排序 API 根据提供的查询对文档进行重排序。
此方法处理用户的查询和提供的文档,以便按照可能与查询上下文更相关的方式对它们进行重排序。
- 参数
- query (str) – 用户的搜索查询。
- docs (Union [ List [ Dict [ str , Any ] ] , List [ str ] ]) – 要排序的文档列表,可以是字典列表或字符串列表。
- Returns: 重排序后的文档列表以及可选的相关分数。
- 返回类型: Union[Tuple[Union[List[Dict[str, Any]], List[str]], float], List[Dict[str, Any]]]
model_post_init(context, /)
此函数旨在像 BaseModel 方法一样,用于初始化私有属性。
它接受 context 作为参数,因为这是 pydantic-core 调用它时传递的内容。
- 参数
- self (BaseModel) – BaseModel 实例。
- context (Any) – 上下文。
- 返回类型: None
rank(query, docs, **kwargs)
使用 VoyageAI 重排序 API 根据提供的查询对文档进行重排序。
此方法处理用户的查询和提供的文档,以便按照可能与查询上下文更相关的方式对它们进行重排序。
- 参数
- query (str) – 用户的搜索查询。
- docs (Union [ List [ Dict [ str , Any ] ] , List [ str ] ]) – 要排序的文档列表,可以是字典列表或字符串列表。
- Returns: 重排序后的文档列表以及可选的相关分数。
- 返回类型: Union[Tuple[Union[List[Dict[str, Any]], List[str]], float], List[Dict[str, Any]]]
model_config: ClassVar[ConfigDict] = {}
模型的配置,应是符合 [ConfigDict][pydantic.config.ConfigDict] 的字典。