Sammy03 commited on
Commit
fb6aa75
·
1 Parent(s): e4c961d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -1
app.py CHANGED
@@ -3,10 +3,12 @@ import torch
3
  import pickle
4
  import pandas as pd
5
  import gradio as gr
 
6
  bi_encoder = SentenceTransformer("multi-qa-MiniLM-L6-cos-v1")
7
  cross_encoder = CrossEncoder("cross-encoder/ms-marco-MiniLM-L-6-v2")
8
  corpus_embeddings=pd.read_pickle("corpus_embeddings_cpu.pkl")
9
  corpus=pd.read_pickle("corpus.pkl")
 
10
  def search(query,top_k=100):
11
  print("Top 5 Answer by the NSE:")
12
  print()
@@ -16,16 +18,24 @@ def search(query,top_k=100):
16
  question_embedding = bi_encoder.encode(query, convert_to_tensor=True)
17
  hits = util.semantic_search(question_embedding, corpus_embeddings, top_k=top_k)
18
  hits = hits[0] # Get the hits for the first query
 
19
  ##### Re-Ranking #####
20
  # Now, score all retrieved passages with the cross_encoder
21
  cross_inp = [[query, corpus[hit['corpus_id']]] for hit in hits]
22
  cross_scores = cross_encoder.predict(cross_inp)
 
23
  # Sort results by the cross-encoder scores
24
  for idx in range(len(cross_scores)):
25
  hits[idx]['cross-score'] = cross_scores[idx]
 
26
  hits = sorted(hits, key=lambda x: x['cross-score'], reverse=True)
27
 
28
  for idx, hit in enumerate(hits[0:5]):
29
  ans.append(corpus[hit['corpus_id']])
30
  return ans[0],ans[1],ans[2],ans[3],ans[4]
31
- iface = gr.Interface(fn=search, inputs=["text"], outputs=["textbox","textbox","textbox","textbox","textbox"],title="Neural Search Engine").launch(share=True)
 
 
 
 
 
 
3
  import pickle
4
  import pandas as pd
5
  import gradio as gr
6
+
7
  bi_encoder = SentenceTransformer("multi-qa-MiniLM-L6-cos-v1")
8
  cross_encoder = CrossEncoder("cross-encoder/ms-marco-MiniLM-L-6-v2")
9
  corpus_embeddings=pd.read_pickle("corpus_embeddings_cpu.pkl")
10
  corpus=pd.read_pickle("corpus.pkl")
11
+
12
  def search(query,top_k=100):
13
  print("Top 5 Answer by the NSE:")
14
  print()
 
18
  question_embedding = bi_encoder.encode(query, convert_to_tensor=True)
19
  hits = util.semantic_search(question_embedding, corpus_embeddings, top_k=top_k)
20
  hits = hits[0] # Get the hits for the first query
21
+
22
  ##### Re-Ranking #####
23
  # Now, score all retrieved passages with the cross_encoder
24
  cross_inp = [[query, corpus[hit['corpus_id']]] for hit in hits]
25
  cross_scores = cross_encoder.predict(cross_inp)
26
+
27
  # Sort results by the cross-encoder scores
28
  for idx in range(len(cross_scores)):
29
  hits[idx]['cross-score'] = cross_scores[idx]
30
+
31
  hits = sorted(hits, key=lambda x: x['cross-score'], reverse=True)
32
 
33
  for idx, hit in enumerate(hits[0:5]):
34
  ans.append(corpus[hit['corpus_id']])
35
  return ans[0],ans[1],ans[2],ans[3],ans[4]
36
+
37
+ inp=gr.inputs.Textbox(lines=1, placeholder=None, default="", label="search you query here")
38
+ out=gr.outputs.Textbox(type="auto",label="search results")
39
+
40
+ iface = gr.Interface(fn=search, inputs=inp, outputs=[out,out,out,out,out],title="Neural Search Engine",theme="huggingface",layout='vertical')
41
+ iface.launch()