API 参考
Rerank 重排序接口
POST /v1/rerank 的参数、请求与响应示例:按与查询的相关性给候选文档打分排序,常用于知识库 RAG 检索后的精排。请求格式为常见的 query、documents、top_n,本站按原格式转发。
POST /v1/rerank 接收一个查询和一组候选文档,给每个文档打一个相关性分数,按分数从高到低返回。在知识库 RAG 里,通常先用向量检索召回几十个候选段落,再用 Rerank 挑出最相关的几段交给对话模型:答案更准,塞给对话模型的无关内容也更少。请求格式是常见的 query、documents、top_n,本站按原格式转发给模型服务。
POST
https://open.tutujin.com/v1/rerank请求头
| 请求头 | 必填 | 说明 |
|---|---|---|
Authorization | 是 | Bearer sk-...,控制台创建的 API Key |
Content-Type | 是 | application/json |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型名,例如 qwen3-reranker-8b |
query | string | 是 | 查询文本,一般就是用户的问题 |
documents | array | 是 | 候选文档,字符串数组 |
top_n | integer | 否 | 只返回分数最高的前 N 个;不传则返回全部 |
return_documents | boolean | 否 | 设为 true 时,结果里带回文档原文 |
请求示例
curl https://open.tutujin.com/v1/rerank \
-H "Authorization: Bearer $TUTUJIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-reranker-8b",
"query": "拆封后还能退货吗?",
"documents": [
"商品签收后 7 天内,未拆封可无理由退货。",
"订单付款后 48 小时内发货,节假日顺延。",
"已拆封商品如无质量问题,不支持无理由退货。"
],
"top_n": 2
}'import os
import requests
docs = [
"商品签收后 7 天内,未拆封可无理由退货。",
"订单付款后 48 小时内发货,节假日顺延。",
"已拆封商品如无质量问题,不支持无理由退货。",
]
r = requests.post(
"https://open.tutujin.com/v1/rerank",
headers={"Authorization": f"Bearer {os.environ['TUTUJIN_API_KEY']}"},
json={
"model": "qwen3-reranker-8b",
"query": "拆封后还能退货吗?",
"documents": docs,
"top_n": 2,
},
timeout=30,
)
r.raise_for_status()
for item in r.json()["results"]:
print(round(item["relevance_score"], 3), docs[item["index"]])const docs = [
'商品签收后 7 天内,未拆封可无理由退货。',
'订单付款后 48 小时内发货,节假日顺延。',
'已拆封商品如无质量问题,不支持无理由退货。',
]
const r = await fetch('https://open.tutujin.com/v1/rerank', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.TUTUJIN_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'qwen3-reranker-8b',
query: '拆封后还能退货吗?',
documents: docs,
top_n: 2,
}),
})
if (!r.ok) throw new Error(await r.text())
const { results } = await r.json()
for (const item of results) console.log(item.relevance_score.toFixed(3), docs[item.index])响应示例
JSON
{
"results": [
{ "index": 2, "relevance_score": 0.93 },
{ "index": 0, "relevance_score": 0.71 }
],
"usage": { "prompt_tokens": 96, "total_tokens": 96 }
}| 字段 | 说明 |
|---|---|
results[].index | 对应 documents 里第几个文档,从 0 开始 |
results[].relevance_score | 相关性分数,越高越相关。不同模型的分数范围不同,只适合在同一次请求内比较 |
results[].document | return_documents 为 true 时出现,包含文档原文 |
usage | 本次计费用量,部分模型按 tokens 计费,部分按次 |
注意事项
- 这个接口是原样转发,没有在本站单独实测,接入时先用小流量验证返回格式。
- 结果已按分数从高到低排好,用
index回查原文。 - 候选文档越多、越长,用量越大。一般召回 20 到 50 段再重排,
top_n取 3 到 8 就够用。 - 分数阈值要用自己的数据调。不同模型的分数没有统一含义,换模型后要重新确定阈值。
- 和向量检索配合的完整流程见企业知识库与 RAG。
支持此接口的模型
| 模型 | 厂商 | 最低价分组 | 输入 ¥/百万 | 输出 ¥/百万 | 按次 ¥/次 |
|---|---|---|---|---|---|
| qwen3-reranker-4b | 通义千问 | 标准 | — | — | ¥0.002 |
| qwen3-reranker-0.6b | 通义千问 | 标准 | — | — | ¥0.002 |
| qwen3-reranker-8b | 通义千问 | 国产模型 | ¥0.00308 | ¥0.00308 | — |
| jina-reranker-v2-base-multilingual | 其他 | 标准 | ¥0.4 | ¥0.4 | — |
| netease-youdao/bce-reranker-base_v1 | 其他 | 标准 | ¥0.4 | ¥0.4 | — |
| BAAI/bge-reranker-v2-m3 | 其他 | 标准 | ¥0.4 | ¥0.4 | — |
价格为人民币,取各模型最低价分组;价格更新于 2026年11月12日 20:17。
没找到答案?加客服微信 JsnonoChat,发送报错信息里的 request id,我们帮你排查。