zayanomar5 commited on
Commit
cc17c3b
·
verified ·
1 Parent(s): 9bd6b44

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +55 -1
main.py CHANGED
@@ -1,4 +1,4 @@
1
- from flask import Flask, request, jsonify
2
  from langchain_community.llms import LlamaCpp
3
  from sentence_transformers import SentenceTransformer
4
  from transformers import AutoTokenizer, AutoModel
@@ -97,3 +97,57 @@ def compare_jop():
97
 
98
  if __name__ == '__main__':
99
  app.run()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ffrom flask import Flask, request, jsonify
2
  from langchain_community.llms import LlamaCpp
3
  from sentence_transformers import SentenceTransformer
4
  from transformers import AutoTokenizer, AutoModel
 
97
 
98
  if __name__ == '__main__':
99
  app.run()
100
+
101
+
102
+ # Endpoint to compare between employee skills and job skills
103
+ @app.route('/compare', methods=['POST'])
104
+ def compare():
105
+ employee_skills = request.json.get('employee_skills')
106
+ jobs_skills = request.json.get('jobs_skills')
107
+
108
+ if not isinstance(employee_skills, list) or not all(isinstance(skill, str) for skill in employee_skills):
109
+ raise ValueError("employee_skills must be a list of strings")
110
+
111
+ if not isinstance(jobs_skills, list) or not all(isinstance(skill, str) for skill in jobs_skills):
112
+ raise ValueError("jobs_skills must be a list of strings")
113
+
114
+ job_embeddings = model.encode(jobs_skills)
115
+ employee_embeddings = model.encode(employee_skills)
116
+
117
+ similarity_scores = []
118
+ employee_embeddings_tensor = torch.from_numpy(employee_embeddings).unsqueeze(0)
119
+
120
+ for i, job_e in enumerate(job_embeddings):
121
+ job_e_tensor = torch.from_numpy(job_e).unsqueeze(0)
122
+ similarity_score = cosine_similarity(employee_embeddings_tensor, job_e_tensor, dim=1)
123
+ similarity_scores.append({"job": jobs_skills[i], "similarity_score": similarity_score.tolist()[0]})
124
+
125
+ return jsonify(similarity_scores)
126
+
127
+ # Endpoint to compare job posts with employee skills
128
+ @app.route('/compare_jop', methods=['POST'])
129
+ def compare_jop():
130
+ employee_skills = request.json.get('post')
131
+ jobs_skills = request.json.get('employee_skills')
132
+
133
+ if not isinstance(employee_skills, list) or not all(isinstance(skill, str) for skill in employee_skills):
134
+ raise ValueError("employee_skills must be a list of strings")
135
+
136
+ if not isinstance(jobs_skills, list) or not all(isinstance(skill, str) for skill in jobs_skills):
137
+ raise ValueError("jobs_skills must be a list of strings")
138
+
139
+ job_embeddings = model.encode(jobs_skills)
140
+ employee_embeddings = model.encode(employee_skills)
141
+
142
+ similarity_scores = []
143
+ employee_embeddings_tensor = torch.from_numpy(employee_embeddings).unsqueeze(0)
144
+
145
+ for i, job_e in enumerate(job_embeddings):
146
+ job_e_tensor = torch.from_numpy(job_e).unsqueeze(0)
147
+ similarity_score = cosine_similarity(employee_embeddings_tensor, job_e_tensor, dim=1)
148
+ similarity_scores.append({"job": jobs_skills[i], "similarity_score": similarity_score.tolist()[0]})
149
+
150
+ return jsonify(similarity_scores)
151
+
152
+ if __name__ == '__main__':
153
+ app.run()