Skip to content

Rerank

根据查询对文档列表进行相关性重排序。常用于 RAG 检索后的二次排序,提升召回精度。

POST https://api.wrouter.io/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://api.wrouter.io/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://api.wrouter.io/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 精度,但延迟更高,所以多用作两阶段检索的二阶段。