| # from faiss import IndexFlatL2,write_index,read_index | |
| # import numpy as np | |
| # from utils.convert_embedding import GetEmbedding | |
| # class VectorStore: | |
| # def __init__(self): | |
| # pass | |
| # def store_vectors(self,data:list,embedding_space_name:str = 'faiss_index.index',numpy_emb_space:str = 'embeddings.npy' ): | |
| # try: | |
| # embeddings = GetEmbedding(data=data).convert_emb() | |
| # diamension = embeddings.shape[1] | |
| # print("Diamension",diamension) | |
| # # Create L2 distance index | |
| # index = IndexFlatL2(diamension) | |
| # index.add(embeddings) | |
| # write_index(index, embedding_space_name) | |
| # # Save embeddings to file | |
| # np.save(numpy_emb_space, embeddings) | |
| # return True | |
| # except Exception as e: | |
| # print(e) | |
| # return False | |
| # def get_similary_search(self,query,embedding_space_name:str = 'faiss_index.index',numpy_emb_space:str = 'embeddings.npy',K:int= 1): | |
| # # Load the FAISS index | |
| # index = read_index('faiss_index.index') | |
| # # Load the embeddings | |
| # embeddings_np = np.load('embeddings.npy') | |
| # # Now you can perform similarity searches on the index | |
| # query = "What is photosynthesis?" | |
| # query_embedding = GetEmbedding([query]).convert_emb() | |
| # query_embedding = query_embedding.detach().numpy() | |
| # # query_embedding = np.array(query_embedding) # Convert to numpy array | |
| # # query_embedding = query_embedding.reshape(1, -1) | |
| # # print("shape") | |
| # # print(query_embedding.shape) | |
| # # Perform search | |
| # distances, indices = index.search(query_embedding, k = K) | |
| # return indices | |