昇腾社区首页
中文
注册
开发者
下载

类功能

功能描述

提供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)