File size: 484 Bytes
ce45eb0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
"""Dense (vector) retrieval."""
from __future__ import annotations
from typing import List, Tuple

import numpy as np

from ..embedding.base import cosine
from ..schema.item import ContextItem


def dense_rank(query_emb: np.ndarray,
               items: List[ContextItem]) -> List[Tuple[str, float]]:
    scored = [(it.id, cosine(query_emb, it.embedding)) for it in items
              if it.embedding is not None]
    scored.sort(key=lambda x: x[1], reverse=True)
    return scored