跳到主要内容

重排序

Rerank 请求会在应用将候选文档用于搜索、检索或 RAG 工作流前,根据查询对这些文档重新排序。

AISIX AI 网关暴露 POST /v1/rerank,让 rerank 流量可以与其它网关流量路径使用相同的调用方 API Key、模型别名、上游凭证和请求侧策略。

本指南将通过 AISIX 发送 rerank 请求,并说明该端点的服务提供方要求。

准备工作

请先准备以下内容:

  • 一个可以处理代理请求的 AISIX 网关。
  • 一个可以访问该模型别名的调用方 API Key。
  • 一个配置服务提供方标签为 OpenAI、Cohere 或 Jina 的模型别名。

发送重排序请求

通过网关代理发送 rerank 请求,并在请求体中使用 AISIX 模型别名:

curl -sS -X POST "http://127.0.0.1:3000/v1/rerank" \
-H "Authorization: Bearer YOUR_CALLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "rerank-prod",
"query": "gateway docs",
"documents": ["doc a", "doc b", "doc c"]
}' \
-o aisix-rerank-response.json

AISIX 会解析模型别名、检查调用方 API Key、对查询和文档文本执行受支持的输入策略检查,只将 model 字段改写为上游模型 ID,并将请求转发到上游 rerank 端点。

响应保持上游 rerank 响应形态:

{
"results": [
{
"index": 1,
"relevance_score": 0.95
},
{
"index": 0,
"relevance_score": 0.42
},
{
"index": 2,
"relevance_score": 0.18
}
]
}

部分服务提供方会包含响应 ID、模型名称、用量或元数据等额外字段。

检查响应是否包含排序结果:

jq '.results | length' aisix-rerank-response.json

命令应输出返回结果数量:

3

服务提供方要求

只有当解析出的模型配置为 OpenAI、Cohere 或 Jina 服务提供方标签时,AISIX 才会接受 rerank 请求。这些服务提供方适配器共享 model、query 和 documents 等通用 rerank 字段。可选 rerank 字段会原样转发,不会跨服务提供方标准化。

当解析出的模型使用其它服务提供方标签时,AISIX 会在发送到上游前返回 400,避免将 rerank 请求发送到不使用预期 rerank 格式的服务提供方路由。

Voyage AI 也暴露 rerank API,但其请求和响应字段与当前受支持的 rerank 格式不同。AISIX 需要专门适配器后才会将其视为兼容。

对于 Cohere 和 Jina,请根据服务提供方参考文档配置服务提供方密钥的 base URL。AISIX 会追加 rerank 路径,并在 base URL 已以版本前缀结尾时避免重复追加常见 API 版本片段。

重排序行为

AISIX 转发请求体时只改写 model 字段,不会添加 Chat Completions 字段,也不会转换服务提供方专属 rerank 参数。

输入安全护栏可以在 AISIX 调用服务提供方之前检查 query 和文档文本。输出安全护栏不会检查该路径上的重排序响应内容,因为响应包含的是排序结果,而不是生成文本。

成功的 rerank 响应会以原上游内容类型和字节返回。AISIX 只会尽力解析用量用于遥测;如果用量缺失或格式无法识别,AISIX 仍会原样返回上游响应。

如果安全护栏没有阻断请求,请检查已配置安全护栏是否能检查 query 或文档文本。如果请求在到达服务提供方前返回 400,请检查解析出的模型服务提供方标签。如果上游返回 404,请检查服务提供方密钥的 base URL。

下一步

你已经了解 AISIX 如何代理 rerank 请求,以及为什么该能力对服务提供方支持保持较窄范围。接下来请阅读图像生成,了解另一类服务提供方专属端点。