重排序Reranker
更新时间:2025-01-17
本文介绍了重排序Reranker V2版本相关API及使用。
功能介绍
用于重新排序向量模型返回的top-k文档,优化语义搜索结果。
支持模型列表
- bce-reranker-base
(1)本文API,支持预置服务对应API和平台训练模型调用API。
(2)针对平台训练调用API,调用本文API前,需先经过SFT模型训练后发布服务,相关内容请参考新手指南-平台使用快速开始。
鉴权说明
调用本文API,需使用API Key鉴权方式。使用API Key鉴权调用API流程,具体调用流程,请查看认证鉴权。
请求结构
POST /v2/rerankers HTTP/1.1
Host: qianfan.baidubce.com
Authorization: authorization string
{
"model": "idgn***",
"query": "上海天气",
"documents": [
"上海气候",
"北京美食"
]
}
请求头域
除公共头域外,无其它特殊头域。
请求参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
model | string | 是 | 模型名称,说明: (1)预置服务,该字段为固定值bce-reranker-base (2)平台训练模型,可以通过查看服务地址获取该字段值,详情请查看新手指南-平台使用快速开始:model值为在创建服务时对应的API地址,如下图所示: |
query | string | 是 | 查询文本,说明:长度不超过1600个字符,token数若超过400做截断 |
documents | List(string) | 是 | 需要重排序的文本,说明: (1)不能为空List,List的每个成员不能为空字符串 (2)文本数量不超过64 (3)每条document文本长度不超过4096个字符,token数若超过1024做截断 |
top_n | int | 否 | 返回的最相关文本的数量,默认为document的数量 |
user | string | 否 | 表示最终用户的唯一标识符 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
名称 | 类型 | 描述 |
---|---|---|
id | string | 本次请求的唯一标识,可用于排查问题 |
object | string | 回包类型,固定值“rerank_list” |
created | int | 时间戳 |
results | List(reranker_data) | 重排序结果,按相似性得分倒序 |
usage | usage | token统计信息 |
model | string | 模型名称或地址 |
reranker_data说明
名称 | 类型 | 描述 |
---|---|---|
document | string | 文本内容 |
relevance_score | float | 相似性得分 |
index | int | 序号 |
usage说明
名称 | 类型 | 描述 |
---|---|---|
prompt_tokens | int | 问题tokens数(包含历史QA) |
total_tokens | int | tokens总数 |
请求示例
curl --location 'https://qianfan.baidubce.com/v2/rerankers' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer bce-v3/ALTAK-*********/614fb**********' \
--data '{
"model": "bce-reranker-base",
"query": "上海天气",
"documents": [
"上海气候",
"北京美食"
]
}'
import requests
import json
def main():
url = "https://qianfan.baidubce.com/v2/rerankers"
payload = json.dumps({
"model": "bce-reranker-base",
"query": "上海天气",
"documents": [
"上海气候",
"北京美食"
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer bce-v3/ALTAK-*********/614fb**********'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
if __name__ == '__main__':
main()
响应示例
{
"id": "as-1qjhejaief",
"object": "reranker_list",
"created": 1737030836,
"model": "bce-reranker-base",
"results": [
{
"document": "上海气候",
"relevance_score": 0.689619243144989,
"index": 0
},
{
"document": "北京美食",
"relevance_score": 0.36954259872436523,
"index": 1
}
],
"usage": {
"prompt_tokens": 11,
"total_tokens": 11
}
}
错误码
如果请求错误,服务器返回的JSON文本包含以下参数。
名称 | 描述 |
---|---|
code | 错误码 |
msg | 错误描述信息,帮助理解和解决发生的错误 |
type | 错误类型 |
更多相关错误码,请查看推理服务V2版本错误码说明。