Spaces:
Sleeping
Sleeping
| import faiss | |
| import numpy as np | |
| from sentence_transformers import SentenceTransformer | |
| class VectorStore: | |
| def __init__(self): | |
| self.model = SentenceTransformer("all-MiniLM-L6-v2") | |
| self.dimension = 384 | |
| self.index = faiss.IndexFlatL2(self.dimension) | |
| self.documents = [] | |
| def add_documents(self, docs: list[str]): | |
| embeddings = self.model.encode(docs) | |
| self.index.add(np.array(embeddings).astype("float32")) | |
| self.documents.extend(docs) | |
| def search(self, query: str, top_k:int = 3)-> list[str]: | |
| query_embedding = self.model.encode([query]) | |
| distances, indices = self.index.search( | |
| np.array(query_embedding).astype("float32"), top_k | |
| ) | |
| return [self.documents[i] for i in indices[0]] |