cdcvd commited on
Commit
24f2b6a
1 Parent(s): 38d6941

Update models.py

Browse files
Files changed (1) hide show
  1. models.py +57 -0
models.py CHANGED
@@ -84,6 +84,63 @@ def evaluate_with_gemma(pdf_file, job_description):
84
  outputs = gemma_pipe(prompt, max_new_tokens=256)
85
  return outputs[0]["generated_text"].strip()
86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  def evaluate_with_bloom(pdf_file, job_description):
88
  resume_text = extract_text_from_pdf(pdf_file)
89
 
 
84
  outputs = gemma_pipe(prompt, max_new_tokens=256)
85
  return outputs[0]["generated_text"].strip()
86
 
87
+
88
+
89
+
90
+ from transformers import AutoModelForCausalLM, AutoTokenizer
91
+ import torch
92
+
93
+ def evaluate_with_qwen(resume_text, job_description):
94
+ # بارگذاری مدل و توکنایزر
95
+ model = AutoModelForCausalLM.from_pretrained(
96
+ "Qwen/Qwen2-72B-Instruct",
97
+ torch_dtype="auto",
98
+ device_map="auto"
99
+ ).to("cuda" if torch.cuda.is_available() else "cpu")
100
+ tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2-72B-Instruct")
101
+
102
+ # تعریف پرامپت
103
+ prompt = f"""
104
+ من یک مسءول استخدام هستم و میخوام درصد تطابق رزومه فرد با شرح شغلی را
105
+ برای من محاسبه کنی لطفا درصد تطابق بین رزومه و شرح شغلی را بدست بیار. لطفا دقیق این درصد را محاسبه کن.
106
+ میخوام خودت به عنوان یک مدل زبانی درصد تطابق را برای من محاسبه کنی.
107
+
108
+ شرح شغل: {job_description}
109
+ رزومه: {resume_text}
110
+ """
111
+
112
+ # آماده‌سازی پیام برای مدل
113
+ messages = [
114
+ {"role": "system", "content": "You are a helpful assistant."},
115
+ {"role": "user", "content": prompt}
116
+ ]
117
+ text = tokenizer.apply_chat_template(
118
+ messages,
119
+ tokenize=False,
120
+ add_generation_prompt=True
121
+ )
122
+ model_inputs = tokenizer([text], return_tensors="pt").to("cuda" if torch.cuda.is_available() else "cpu")
123
+
124
+ # تولید پاسخ
125
+ generated_ids = model.generate(
126
+ model_inputs.input_ids,
127
+ max_new_tokens=512
128
+ )
129
+
130
+ # حذف توکن‌های ورودی از پاسخ تولید شده
131
+ generated_ids = [
132
+ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
133
+ ]
134
+
135
+ # تبدیل پاسخ به متن
136
+ response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
137
+
138
+ return response
139
+
140
+
141
+
142
+
143
+
144
  def evaluate_with_bloom(pdf_file, job_description):
145
  resume_text = extract_text_from_pdf(pdf_file)
146