Spaces:
Sleeping
Sleeping
File size: 610 Bytes
3cf7546 8aeaa64 3cf7546 8aeaa64 3cf7546 8aeaa64 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import faiss
from sentence_transformers import SentenceTransformer
class SemanticIndex:
def __init__(self):
self.model = SentenceTransformer("all-MiniLM-L6-v2")
self.index = None
self.texts = []
def build(self, texts):
self.texts = texts
emb = self.model.encode(texts)
self.index = faiss.IndexFlatL2(len(emb[0]))
self.index.add(emb)
def search(self, query, k=10):
if not self.index:
return []
q = self.model.encode([query])
_, idx = self.index.search(q, k)
return [self.texts[i] for i in idx[0]] |