Spaces:
Sleeping
Sleeping
File size: 750 Bytes
ed4afb1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import faiss
import numpy as np
class FAISSIndex:
def __init__(self):
self.index = None
self.last_scores = []
def build(self, embeddings: np.ndarray):
if embeddings.size == 0:
return
d = embeddings.shape[1]
self.index = faiss.IndexFlatIP(d)
self.index.add(embeddings)
def search(self, query_embedding: np.ndarray, k: int) -> list[int]:
if self.index is None or self.index.ntotal == 0:
self.last_scores = []
return []
k = min(k, self.index.ntotal)
scores, indices = self.index.search(query_embedding, k)
self.last_scores = scores[0].tolist()
return indices[0].tolist() |