Skip to content

Rerank

根據查詢對文件列表進行相關性重排序。常用於 RAG 檢索後的二次排序,提升召回精度。

POST https://wrouter.ai/v1/rerank

請求體

引數型別必填說明
modelstringbge-reranker-v2-m3jina-reranker-v2cohere-rerank-3.5
querystring查詢文本
documentsarray要重排序的文件列表(字串陣列)
top_ninteger僅返回相關性最高的前 N 個
return_documentsboolean是否在響應中迴帶文件原文,預設 false

響應

json
{
  "id": "rerank-xxx",
  "results": [
    {"index": 2, "relevance_score": 0.93, "document": {"text": "..."}},
    {"index": 0, "relevance_score": 0.78}
  ],
  "meta": {
    "api_version": {"version": "1"},
    "billed_units": {"search_units": 1}
  }
}

results[].index 對應請求中 documents 陣列的下標,已按 relevance_score 降序。

示例

bash
curl https://wrouter.ai/v1/rerank \
  -H "Authorization: Bearer $WROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "bge-reranker-v2-m3",
    "query": "WRouter 是什麼?",
    "documents": [
      "WRouter 是一個 OpenAI 相容的多模型路由閘道器。",
      "今天天氣很好。",
      "Anthropic Claude 是 WRouter 支援的模型之一。"
    ],
    "top_n": 2,
    "return_documents": true
  }'
python
import httpx
resp = httpx.post(
    "https://wrouter.ai/v1/rerank",
    headers={"Authorization": "Bearer sk-..."},
    json={
        "model": "bge-reranker-v2-m3",
        "query": "WRouter 是什麼?",
        "documents": [...],
        "top_n": 5,
    },
)
print(resp.json()["results"])

應用場景

典型的 RAG 流程:

  1. 用 Embeddings 做向量召回,拿到候選文件(如 top 100)
  2. Rerank 在候選集上做精排(如 top 5)
  3. 把 top 5 餵給 Chat Completions 生成回答

相比直接用向量相似度,Rerank 顯著提升 top-K 精度,但延遲更高,所以多用作兩階段檢索的二階段。