重排序Reranker
更新时间:2024-11-15
平台提供了重排序Reranker相关模型API SDK,用于重新排序向量模型返回的top-k文档,优化语义搜索结果。
bce-reranker-base是由网易有道开发的跨语种语义表征算法模型,擅长优化语义搜索结果和语义相关顺序精排,支持中英日韩四门语言,覆盖常见业务领域,支持长package rerank(512~32k)。bce-reranker-base_v1是模型的一个版本,本文介绍了API相关。
功能介绍
用于重新排序向量模型返回的top-k文档,优化语义搜索结果。
使用说明
只有Python SDK 支持调用本文API,调用流程请参考Python SDK安装及使用流程。
SDK调用
调用示例
import os
import qianfan
from qianfan.resources import Reranker
# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
# 默认模型
r = Reranker()
# 使用指定reranker模型,固定值为bce-reranker-base_v1
# r = Reranker(model="bce-reranker-base_v1")
res = r.do("北京的天气", ["北京今天12.5度,北风,阴天", "北京美食很多"])
print(res.body)
返回示例
{
'id': 'as-hkck49jsue',
'object': 'reranker_list',
'created': 1715067228,
'results':
[
{
'document': '北京今天12.5度,北风,阴天',
'relevance_score': 0.5633178949356079,
'index': 0
},
{
'document': '北京美食很多',
'relevance_score': 0.4250681698322296,
'index': 1
}
],
'usage':
{
'prompt_tokens': 22,
'total_tokens': 22
}
}
请求参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
query | string | 是 | 查询文本,长度不超过1600个字符,token数若超过400做截断 |
documents | List(string) | 是 | 需要重排序的文本,说明: (1)不能为空List,List的每个成员不能为空字符串 (2)文本数量不超过64 (3)每条document文本长度不超过4096个字符,token数若超过1024做截断 |
model | string | 否 | 用于指定模型,说明: (1)如果不填写,默认使用模型 bce-reranker-base_v1 (2)如果填写,为固定值 bce-reranker-base_v1 |
top_n | int | 否 | 返回的最相关文本的数量,默认为document的数量 |
user_id | string | 否 | 表示最终用户的唯一标识符 |
返回参数
名称 | 类型 | 描述 |
---|---|---|
id | string | 本轮对话的id |
object | string | 回包类型,固定值“rerank_list” |
created | int | 时间戳 |
results | List(reranker_data) | 重排序结果,按相似性得分倒序 |
usage | usage | token统计信息,token数 = 汉字数+单词数*1.3 (仅为估算逻辑) |
reranker_data说明
名称 | 类型 | 描述 |
---|---|---|
document | string | 文本内容 |
relevance_score | float | 相似性得分 |
index | int | 序号 |
usage说明
名称 | 类型 | 描述 |
---|---|---|
prompt_tokens | int | 问题tokens数(包含历史QA) |
total_tokens | int | tokens总数 |