重排序 (Reranking) 可以根据与用户查询的语义相关性重新排列检索到的文档,从而帮助提高 AI Search 结果的质量。它在检索后应用第二个模型,在返回前对顶部结果进行重新排序。
默认情况下,所有 AI Search 实例都 禁用 了重排序。您可以在创建实例期间或稍后在设置页面中启用它。
启用后,AI Search 将:
- 从您的索引中检索一组相关的结果,受您的
max_num_results和score_threshold参数的限制。 - 将这些结果传递给 重排序模型。
- 返回重新排序后的结果,文本生成模型可以使用这些结果来生成答案。
重排序有助于提高准确性,特别是在大型或包含噪点的数据集中,此时仅凭向量相似度可能无法产生最佳排序。
当您使用 Workers 绑定 或 REST API 发起 /search 或 /chat/completions 请求时,您可以按请求启用或禁用重排序,并指定重排序模型。
const instance = env.AI_SEARCH.get("my-instance");
const results = await instance.search({
messages: [{ role: "user", content: "What is Cloudflare?" }],
ai_search_options: {
reranking: {
enabled: true,
model: "@cf/baai/bge-reranker-base",
},
},
});添加重排序会在查询请求中增加一个额外步骤。因此,请求的延迟可能会有所增加。