Spaces:
Runtime error
Runtime error
Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from sentence_transformers import SentenceTransformer
|
2 |
+
import numpy as np
|
3 |
+
import faiss
|
4 |
+
import gradio as gr
|
5 |
+
|
6 |
+
def read_text_from_file(file_path):
|
7 |
+
with open(file_path, "r") as text_file:
|
8 |
+
text = text_file.read()
|
9 |
+
return text
|
10 |
+
|
11 |
+
text_file_path = "Southampton.txt"
|
12 |
+
texts = read_text_from_file(text_file_path)
|
13 |
+
texts = texts.split("&&")
|
14 |
+
|
15 |
+
model = SentenceTransformer('sentence-transformers/multi-qa-MiniLM-L6-cos-v1')
|
16 |
+
|
17 |
+
doc_emb = model.encode(texts)
|
18 |
+
d = doc_emb.shape[1] # Dimension of vectors
|
19 |
+
print(doc_emb.shape)
|
20 |
+
index = faiss.IndexFlatL2(d)
|
21 |
+
index.add(doc_emb)
|
22 |
+
|
23 |
+
def embed_query(query):
|
24 |
+
query_emb = model.encode(query)
|
25 |
+
return query_emb
|
26 |
+
|
27 |
+
def question(query):
|
28 |
+
query_vector = np.asarray(embed_query(query))
|
29 |
+
query_vector=np.expand_dims(query_vector,axis=0)
|
30 |
+
print(query_vector.shape)
|
31 |
+
k = 2 # Number of nearest neighbors to retrieve
|
32 |
+
D, I = index.search(query_vector, k)
|
33 |
+
relevant_paragraph=""
|
34 |
+
for i in range(k):
|
35 |
+
relevant_paragraph_index = I[0][i]
|
36 |
+
relevant_paragraph += texts[relevant_paragraph_index] + "\n"
|
37 |
+
|
38 |
+
return relevant_paragraph
|
39 |
+
|
40 |
+
demo = gr.Interface(fn=question, inputs="text", outputs="text")
|
41 |
+
|
42 |
+
if __name__ == "__main__":
|
43 |
+
demo.launch()
|