API 參考
Rerank 重排序介面
POST /v1/rerank 的參數、請求與響應示例:按與查詢的相關性給候選文件打分排序,常用於知識庫 RAG 檢索後的精排。請求格式為常見的 query、documents、top_n,本站按原格式轉發。
POST /v1/rerank 接收一個查詢和一組候選文件,給每個文件打一個相關性分數,按分數從高到低返回。在知識庫 RAG 裡,通常先用向量檢索召回幾十個候選段落,再用 Rerank 挑出最相關的幾段交給對話模型:答案更準,塞給對話模型的無關內容也更少。請求格式是常見的 query、documents、top_n,本站按原格式轉發給模型服務。
POST
https://www.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://www.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://www.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://www.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-0.6b | 通義千問 | 標準 | — | — | ¥0.002 |
| qwen3-reranker-4b | 通義千問 | 標準 | — | — | ¥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月13日 下午6:08。
沒找到答案?加客服微信 JsnonoChat,傳送報錯資訊裡的 request id,我們幫你排查。