zayanomar5 commited on
Commit
2534516
·
verified ·
1 Parent(s): 27d2b1f

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +9 -11
main.py CHANGED
@@ -1,9 +1,8 @@
 
1
  from flask import Flask, request, jsonify
2
  from langchain_community.llms import LlamaCpp
3
  from sentence_transformers import SentenceTransformer
4
  from transformers import AutoModel
5
- import torch
6
- from torch.nn.functional import cosine_similarity
7
  import os
8
 
9
  app = Flask(__name__)
@@ -19,8 +18,6 @@ llm = LlamaCpp(
19
  verbose=True,
20
  n_ctx=4096
21
  )
22
- model0 = AutoModel.from_pretrained('sentence-transformers/paraphrase-TinyBERT-L6-v2')
23
-
24
  model = SentenceTransformer('sentence-transformers/paraphrase-TinyBERT-L6-v2')
25
 
26
  file_size = os.stat('Phi-3-mini-4k-instruct-q4.gguf')
@@ -33,9 +30,9 @@ def get_skills():
33
 
34
  # Simple inference example
35
  output = llm(
36
- f"<|user|>\n{cv_body}<|end|>\n<|assistant|>Can you list the skills mentioned in the CV?<|end|>",
37
  max_tokens=256, # Generate up to 256 tokens
38
- stop=["<|end|>"],
39
  echo=True, # Whether to echo the prompt
40
  )
41
 
@@ -47,16 +44,16 @@ def health():
47
 
48
  @app.route('/compare', methods=['POST'])
49
  def compare():
50
- jobs_skill = request.json.get('job_skills')
51
  employee_skills = request.json.get('employee_skills')
52
 
53
  # Validation
54
  if not isinstance(jobs_skills, list) or not all(isinstance(skill, str) for skill in jobs_skills):
55
- raise ValueError("jobs_skills must be a list of strings")
56
 
57
  # Encoding skills into embeddings
58
  employee_embeddings = model.encode(employee_skills)
59
- job_embeddings = model.encode(job_skills)
60
 
61
  # Computing cosine similarity between employee skills and each job
62
  similarity_scores = []
@@ -64,9 +61,10 @@ def compare():
64
 
65
  for i, job_e in enumerate(job_embeddings):
66
  job_e_tensor = torch.from_numpy(job_e).unsqueeze(0)
67
- similarity_score = cosine_similarity(employee_embeddings_tensor, job_e_tensor, dim=1)
68
  similarity_scores.append({"job": jobs_skills[i], "similarity_score": similarity_score.item()})
69
 
70
  return jsonify(similarity_scores)
 
71
  if __name__ == '__main__':
72
- app.run()
 
1
+ import torch
2
  from flask import Flask, request, jsonify
3
  from langchain_community.llms import LlamaCpp
4
  from sentence_transformers import SentenceTransformer
5
  from transformers import AutoModel
 
 
6
  import os
7
 
8
  app = Flask(__name__)
 
18
  verbose=True,
19
  n_ctx=4096
20
  )
 
 
21
  model = SentenceTransformer('sentence-transformers/paraphrase-TinyBERT-L6-v2')
22
 
23
  file_size = os.stat('Phi-3-mini-4k-instruct-q4.gguf')
 
30
 
31
  # Simple inference example
32
  output = llm(
33
+ f"\n{cv_body}\nCan you list the skills mentioned in the CV?",
34
  max_tokens=256, # Generate up to 256 tokens
35
+ stop=[""],
36
  echo=True, # Whether to echo the prompt
37
  )
38
 
 
44
 
45
  @app.route('/compare', methods=['POST'])
46
  def compare():
47
+ jobs_skills = request.json.get('job_skills')
48
  employee_skills = request.json.get('employee_skills')
49
 
50
  # Validation
51
  if not isinstance(jobs_skills, list) or not all(isinstance(skill, str) for skill in jobs_skills):
52
+ raise ValueError("job_skills must be a list of strings")
53
 
54
  # Encoding skills into embeddings
55
  employee_embeddings = model.encode(employee_skills)
56
+ job_embeddings = model.encode(jobs_skills)
57
 
58
  # Computing cosine similarity between employee skills and each job
59
  similarity_scores = []
 
61
 
62
  for i, job_e in enumerate(job_embeddings):
63
  job_e_tensor = torch.from_numpy(job_e).unsqueeze(0)
64
+ similarity_score = torch.nn.functional.cosine_similarity(employee_embeddings_tensor, job_e_tensor, dim=1)
65
  similarity_scores.append({"job": jobs_skills[i], "similarity_score": similarity_score.item()})
66
 
67
  return jsonify(similarity_scores)
68
+
69
  if __name__ == '__main__':
70
+ app.run()