跳到主要内容

rerank()

rerank() 函数通过结合语义相关性、向量相似度和基于位置的评分,为向量搜索结果提供高级重排序功能。

function rerank(
results: QueryResult[],
query: string,
modelConfig: ModelConfig,
options?: RerankerFunctionOptions,
): Promise<RerankResult[]>

使用示例
使用示例的直接链接

import { rerank } from '@mastra/rag'

const model = 'openai/gpt-5.6-sol'

const rerankedResults = await rerank(vectorSearchResults, 'How do I deploy to production?', model, {
weights: { semantic: 0.5, vector: 0.3, position: 0.2 },
topK: 3,
})

参数
参数的直接链接

results:

QueryResult[]
要重排序的向量搜索结果

query:

string
用于评估相关性的搜索查询文本

model:

MastraLanguageModel
用于重排序的语言 Model

options?:

RerankerFunctionOptions
重排序模型的选项
RerankerFunctionOptions

weights?:

WeightConfig
不同评分组件的权重(总和必须为 1)
number

semantic?:

number (default: 0.4)
语义相关性的权重
number

vector?:

number (default: 0.4)
向量相似度的权重
number

position?:

number (default: 0.2)
基于位置评分的权重

queryEmbedding?:

number[]
查询的嵌入

topK?:

number
要返回的顶部结果数量

rerank 函数接受 Vercel AI SDK 中的任意 LanguageModel。使用 Cohere 模型 rerank-v3.5 时,它会自动使用 Cohere 的重排序功能。

备注

要使重新排序期间的语义评分正常工作,每个结果都必须在其 metadata.text 字段中包含文本内容。

返回
返回的直接链接

该函数返回 RerankResult 对象数组:

result:

QueryResult
原始查询结果

score:

number
综合重排序分数(0-1)

details:

ScoringDetails
详细的评分信息

ScoringDetails
scoringdetails的直接链接

semantic:

number
语义相关性分数(0-1)

vector:

number
向量相似度分数(0-1)

position:

number
基于位置的分数(0-1)

queryAnalysis?:

object
查询分析详情
number

magnitude:

查询的幅度
number[]

dominantFeatures:

查询的主要特征