-
-
Save waleedkadous/d0915e52cbe56dff328f5c00ded21107 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import ray | |
from starlette.requests import Request | |
from ray import serve | |
from typing import List | |
from embeddings import LocalHuggingFaceEmbeddings | |
from langchain.vectorstores import FAISS | |
import time | |
FAISS_INDEX_PATH = 'faiss_index' | |
@serve.deployment | |
class VectorSearchDeployment: | |
def __init__(self): | |
#Load the data from faiss | |
st = time.time() | |
self.embeddings = LocalHuggingFaceEmbeddings('multi-qa-mpnet-base-dot-v1') | |
self.db = FAISS.load_local(FAISS_INDEX_PATH, self.embeddings) | |
et = time.time() - st | |
print(f'Loading database took {et} seconds.') | |
def search(self,query): | |
results = self.db.max_marginal_relevance_search(query) | |
retval = '' | |
for i in range(len(results)): | |
chunk = results[i] | |
source = chunk.metadata['source'] | |
retval = retval + f'From http://{source}\n\n' | |
retval = retval + chunk.page_content | |
retval = retval + '\n====\n\n' | |
return retval | |
async def __call__(self, request: Request) -> List[str]: | |
return self.search(request.query_params["query"]) | |
deployment = VectorSearchDeployment.bind() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment