类功能
功能描述
提供BM25和稠密向量混合检索结果排序功能,继承抽象类Reranker。
函数原型
from mx_rag.reranker.local import MixRetrieveReranker MixRetrieveReranker(k, baseline, amplitude, slope, midpoint)
输入参数说明
参数名 |
数据类型 |
可选/必选 |
说明 |
|---|---|---|---|
k |
int |
可选 |
排序后返回最相关的k个结果,取值范围:[1, 10000],默认值为100 |
baseline |
float |
可选 |
权重求取公式基础值,取值范围:[0.0, 1.0],默认值为0.4 |
amplitude |
float |
可选 |
权重求取公式幅度,取值范围:[0.0, 1.0],默认值为0.3 |
slope |
float |
可选 |
控制过渡的陡峭程度,取值大于0,默认值为1 |
midpoint |
float |
可选 |
函数值达到基础值和最大值中间点时的query长度,取值大于0,默认值为6 |
注意:权重计算公式为如下所示,请确保计算结果取值为:[0, 1]。

返回值说明
MixRetrieveReranker对象。
调用示例
from langchain_core.documents import Document
from mx_rag.reranker.local import MixRetrieveReranker
doc_1 = Document(
page_content="document1",
metadata={
"score": 1.0,
"retrieval_type": "dense",
}
)
doc_2 = Document(
page_content="document2",
metadata={
"score": 2.0,
"retrieval_type": "sparse",
}
)
docs = [doc_1, doc_2]
query = "这是一个问题"
reranker = MixRetrieveReranker(k=100, baseline=0.4, amplitude=0.3, slope=1, midpoint=6)
res = reranker.rerank(query, docs)
父主题: MixRetrieveReranker