Spaces:
Runtime error
Runtime error
from sentence_transformers import SentenceTransformer | |
import numpy as np | |
import faiss | |
import gradio as gr | |
def read_text_from_file(file_path): | |
with open(file_path, "r") as text_file: | |
text = text_file.read() | |
return text | |
text_file_path = "Southampton.txt" | |
texts = read_text_from_file(text_file_path) | |
texts = texts.split("&&") | |
model = SentenceTransformer('sentence-transformers/multi-qa-MiniLM-L6-cos-v1') | |
doc_emb = model.encode(texts) | |
d = doc_emb.shape[1] # Dimension of vectors | |
print(doc_emb.shape) | |
index = faiss.IndexFlatL2(d) | |
index.add(doc_emb) | |
def embed_query(query): | |
query_emb = model.encode(query) | |
return query_emb | |
def question(query): | |
query_vector = np.asarray(embed_query(query)) | |
query_vector=np.expand_dims(query_vector,axis=0) | |
print(query_vector.shape) | |
k = 2 # Number of nearest neighbors to retrieve | |
D, I = index.search(query_vector, k) | |
relevant_paragraph="" | |
for i in range(k): | |
relevant_paragraph_index = I[0][i] | |
relevant_paragraph += texts[relevant_paragraph_index] + "\n" | |
return relevant_paragraph | |
demo = gr.Interface(fn=question, inputs="text", outputs="text") | |
if __name__ == "__main__": | |
demo.launch() |