File size: 1,750 Bytes
3b0a769 eb66dcb |
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# 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
|