这些设置控制返回结果的数量以及所需的最低分数。要按文件夹或类别等元数据属性筛选结果,请参阅 筛选。
match_threshold 设置分块必须达到才能被纳入结果的最低向量相似度分数。阈值范围从 0 到 1。该阈值基于向量相似度分数进行筛选,而不是响应中返回的融合分数。
- 更高的阈值意味着更严格的筛选,仅返回高度相似的匹配项。
- 更低的阈值允许更广泛的匹配,提高召回率,但可能降低精度。
max_num_results 设置控制返回的排名靠前分块数量。允许的最大值为 50。
- 若要综合多份文档,请使用更高的值。不过,向模型提供更多输入会增加延迟与成本。
- 若偏好简洁答案且上下文最少,请使用更低的值。
- 使用配置的嵌入模型对你的查询进行嵌入。
- 查询搜索索引。对于 混合搜索,向量与关键词结果会融合为单个排序列表。
- 向量相似度分数低于
match_threshold的分块会被过滤掉。 - 过滤后的结果限制为
max_num_results,并作为上下文传入生成步骤。
如果没有结果达到阈值,AI Search 将不会生成响应。
如果启用了 重排序,可以配置单独的 reranking.match_threshold,按重排序分数筛选分块。
这些值可在实例级别配置,也可按请求覆盖:
const instance = env.AI_SEARCH.get("my-instance");
const results = await instance.search({
messages: [{ role: "user", content: "What is Cloudflare?" }],
ai_search_options: {
retrieval: {
match_threshold: 0.5,
max_num_results: 10,
},
},
});