rerank()

The rerank() function provides advanced reranking capabilities for vector search results by combining semantic relevance, vector similarity, and position-based scoring.

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

Usage Example

import { rerank } from "@mastra/rag";
 
const rerankedResults = await rerank(
  vectorSearchResults,
  "How do I deploy to production?",
  {
    provider: "OPEN_AI",
    name: "gpt-4o-mini",
  },
  {
    weights: {
      semantic: 0.5,
      vector: 0.3,
      position: 0.2
    },
    topK: 3
  }
);

Parameters

results:

QueryResult[]
The vector search results to rerank

query:

string
The search query text used to evaluate relevance

modelConfig:

ModelConfig
Rerank model configuration

options?:

RerankerFunctionOptions
Options for the reranking model

ModelConfig

The rerank function accepts any standard Mastra ModelConfig. When using Cohere’s provider with the model name rerank-v3.5, it will automatically use Cohere’s reranking capabilities.

provider:

LLMProvider | string
Provider to use for reranking (use 'COHERE' with name 'rerank-v3.5' for Cohere's reranker)

name:

string
Name of the model to use

apiKey?:

string
API key for the provider

model?:

LanguageModelV1 | (() => Promise<LanguageModelV1>)
Custom model implementation

RerankerFunctionOptions

weights?:

WeightConfig
Weights for different scoring components (must add up to 1)
number

semantic?:

number (default: 0.4)
Weight for semantic relevance
number

vector?:

number (default: 0.4)
Weight for vector similarity
number

position?:

number (default: 0.2)
Weight for position-based scoring

queryEmbedding?:

number[]
Embedding of the query

topK?:

number
= 3
Number of top results to return

Returns

The function returns an array of RerankResult objects:

result:

QueryResult
The original query result

score:

number
Combined reranking score (0-1)

details:

ScoringDetails
Detailed scoring information

ScoringDetails

semantic:

number
Semantic relevance score (0-1)

vector:

number
Vector similarity score (0-1)

position:

number
Position-based score (0-1)

queryAnalysis?:

object
Query analysis details
number

magnitude:

Magnitude of the query
number[]

dominantFeatures:

Dominant features of the query