RAG_Chatbot / retrieval /vector_store.py
nikhildsst's picture
Upload 6 files
1638245 verified
Raw
History Blame Contribute Delete
824 Bytes
# retrieval/vector_store.py
import faiss
import numpy as np
from typing import List, Tuple
class VectorStore:
def __init__(self, dimension: int):
self.dimension = dimension
self.index = faiss.IndexFlatL2(dimension)
self.texts = []
def add_texts(self, texts: List[str], embeddings: np.ndarray):
self.texts.extend(texts)
self.index.add(embeddings)
def search(self, query_embedding: np.ndarray, k: int) -> List[Tuple[str, float]]:
query_embedding = query_embedding.reshape(1, -1)
distances, indices = self.index.search(query_embedding, k)
results = []
for idx, distance in zip(indices[0], distances[0]):
if idx < len(self.texts):
results.append((self.texts[idx], float(distance)))
return results