AkashKhamkar commited on
Commit
216c730
·
1 Parent(s): 9c4894f

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -0
app.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import torch
3
+ import pickle
4
+ import time
5
+ import pandas as pd
6
+ from iteration_utilities import unique_everseen
7
+ from sentence_transformers import util
8
+ from loader import bi_encoder, cross_encoder, df, job_corpus_ecoded, job_corpus
9
+
10
+
11
+ def jobsearch(query,df, top_k=100):
12
+ #print("Answer by NinjaBot : ")
13
+ ans = []
14
+ question_embedding = bi_encoder.encode(query, convert_to_tensor=True)
15
+ hits = util.semantic_search(question_embedding, job_corpus_ecoded, top_k=top_k)
16
+ hits = hits[0]
17
+ cross_inp = [[query, job_corpus[hit['corpus_id']]] for hit in hits]
18
+ cross_scores = cross_encoder.predict(cross_inp)
19
+ for idx in range(len(cross_scores)):
20
+ hits[idx]['cross-score'] = cross_scores[idx]
21
+
22
+ hits = sorted(hits, key=lambda x: x['cross-score'], reverse=True)
23
+ #indexes = []
24
+ search_result = []
25
+ for idx, hit in enumerate(hits[0:10]):
26
+ obj = {}
27
+ ans.append(job_corpus[hit['corpus_id']])
28
+ #indexes.append(job_corpus.index(job_corpus[hit['corpus_id']]))
29
+ obj['title'] = df.at[job_corpus.index(job_corpus[hit['corpus_id']]),'title']
30
+ obj['link'] = df.at[job_corpus.index(job_corpus[hit['corpus_id']]),'url']
31
+ search_result.append(obj)
32
+ final_search_result = list(unique_everseen(search_result))
33
+ return final_search_result
34
+ #return df.at[indexes[0],'title'],df.at[indexes[1],'title'],df.at[indexes[2],'title'],df.at[indexes[3],'title'],df.at[indexes[4],'title']
35
+ #return ans[0],ans[1],ans[2],ans[3],ans[4]
36
+
37
+ def main():
38
+ if 'submitted' not in st.session_state:
39
+ st.session_state.submitted = False
40
+
41
+ def callback():
42
+ st.session_state.submitted = True
43
+
44
+ st.title('Job Search Engine 💼')
45
+ st.text("")
46
+ st.text("")
47
+ query = st.text_input('Enter your job query here ! ')
48
+ if (st.button("Search", on_click=callback) and query) :
49
+ with st.spinner('Fetching the best jobs for you!...'):
50
+ time.sleep(10)
51
+ result = jobsearch(query, df)
52
+ st.success('NinjaBot : Here are a few suggestions')
53
+ #st.write(f"This is the query : {query}")
54
+ st.write(result)
55
+ main()