Rerank
根据查询对文档列表进行相关性重排序。常用于 RAG 检索后的二次排序,提升召回精度。
POST https://api.wrouter.io/v1/rerank请求体
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | ✓ | 如 bge-reranker-v2-m3、jina-reranker-v2、cohere-rerank-3.5 |
query | string | ✓ | 查询文本 |
documents | array | ✓ | 要重排序的文档列表(字符串数组) |
top_n | integer | 仅返回相关性最高的前 N 个 | |
return_documents | boolean | 是否在响应中回带文档原文,默认 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 流程:
- 用 Embeddings 做向量召回,拿到候选文档(如 top 100)
- 用 Rerank 在候选集上做精排(如 top 5)
- 把 top 5 喂给 Chat Completions 生成回答
相比直接用向量相似度,Rerank 显著提升 top-K 精度,但延迟更高,所以多用作两阶段检索的二阶段。