Retrieval
Maximal marginal relevance API
Re-orders candidate vectors with Maximal Marginal Relevance to balance query relevance against diversity (lambda), returning the diversified selection. Answers 'How do I diversify my retrieval results?', 'What is the MMR re-ranking of these candidates?'.
Price$0.03per request
MethodPOST
Route/v1/retrieval/mmr-rerank
StatusLive
MIME typeapplication/json
Rate limit120/minute
Cache0s public
mmrrerankdiversityrelevanceretrievalrerankingvectorrag
API URL
Integration docshttps://x402.hexl.dev/v1/retrieval/mmr-rerankExample request
{
"query": [
1,
0
],
"candidates": [
[
1,
0
],
[
0.9,
0.1
],
[
0,
1
]
],
"lambda": 0.7,
"k": 3,
"ids": [
"a",
"b",
"c"
]
}Example response
{
"lambda": 0.7,
"k": 3,
"selected": [
{
"index": 0,
"id": "a",
"mmrScore": 0.7,
"relevance": 1
},
{
"index": 1,
"id": "b",
"mmrScore": 0.39755349,
"relevance": 0.99388373
},
{
"index": 2,
"id": "c",
"mmrScore": -0.03312946,
"relevance": 0
}
],
"formula": "MMR = λ·rel(d,q) − (1−λ)·max_sim(d, selected)"
}Input schema
{
"type": "object",
"required": [
"query",
"candidates"
],
"properties": {
"query": {
"type": "array",
"items": {
"type": "number"
}
},
"candidates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
},
"k": {
"type": "integer"
},
"lambda": {
"type": "number"
},
"ids": {
"type": "array"
}
}
}Output schema
{
"type": "object",
"additionalProperties": true
}