Slycat commited on
Commit
0dc18c7
1 Parent(s): d218e1e

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -0
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()