Commit
·
23e9332
1
Parent(s):
7067897
step 2 is working
Browse files- test-job-app.py +16 -8
test-job-app.py
CHANGED
|
@@ -3,16 +3,17 @@ from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
| 3 |
import torch
|
| 4 |
|
| 5 |
# Load the SmolLM model and tokenizer
|
| 6 |
-
model_name = "HuggingFaceTB/SmolLM2-
|
|
|
|
| 7 |
model = AutoModelForCausalLM.from_pretrained(model_name)
|
| 8 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
| 9 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
| 10 |
model.to(device)
|
| 11 |
|
| 12 |
-
def smol_lm_process(job_description):
|
| 13 |
-
# System Prompt
|
| 14 |
prompt = f"""<|im_start|>system
|
| 15 |
-
|
| 16 |
<|im_start|>user
|
| 17 |
{job_description}<|im_end|>
|
| 18 |
<|im_start|>assistant
|
|
@@ -27,12 +28,20 @@ Extract key qualifications, skills, and requirements from this job description.
|
|
| 27 |
return response
|
| 28 |
|
| 29 |
def process_job_description(company_name, company_url, job_description):
|
| 30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
return {
|
| 32 |
"Company Name": company_name,
|
| 33 |
"Company URL": company_url,
|
| 34 |
-
"Job Description": job_description,
|
| 35 |
-
"Role Requirements": role_requirements
|
|
|
|
| 36 |
}
|
| 37 |
|
| 38 |
# Create the Gradio app
|
|
@@ -52,4 +61,3 @@ with demo:
|
|
| 52 |
|
| 53 |
if __name__ == "__main__":
|
| 54 |
demo.launch()
|
| 55 |
-
|
|
|
|
| 3 |
import torch
|
| 4 |
|
| 5 |
# Load the SmolLM model and tokenizer
|
| 6 |
+
# model_name = "HuggingFaceTB/SmolLM2-1.7B-Instruct"
|
| 7 |
+
model_name = "HuggingFaceTB/SmolLM2-360M-Instruct"
|
| 8 |
model = AutoModelForCausalLM.from_pretrained(model_name)
|
| 9 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
| 10 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
| 11 |
model.to(device)
|
| 12 |
|
| 13 |
+
def smol_lm_process(job_description, system_prompt):
|
| 14 |
+
# System Prompt and job description
|
| 15 |
prompt = f"""<|im_start|>system
|
| 16 |
+
{system_prompt}<|im_end|>
|
| 17 |
<|im_start|>user
|
| 18 |
{job_description}<|im_end|>
|
| 19 |
<|im_start|>assistant
|
|
|
|
| 28 |
return response
|
| 29 |
|
| 30 |
def process_job_description(company_name, company_url, job_description):
|
| 31 |
+
# Step 2: Extract key qualifications, skills, and requirements
|
| 32 |
+
system_prompt_requirements = "Extract key qualifications, skills, and requirements from this job description. Output as bullet points. Remove benefits/salary and fluff. ONLY INCLUDE INFORMATION THAT TELLS THE USER WHAT SKILLS THE EMPLOYER SEEKS."
|
| 33 |
+
role_requirements = smol_lm_process(job_description, system_prompt_requirements)
|
| 34 |
+
|
| 35 |
+
# Step 3: Create a concise summary of the job description
|
| 36 |
+
system_prompt_summary = "Create a concise 150-200 word summary of this job description. Remove company bragging and benefits information. FOCUS ON ASPECTS THAT POINT THE USER IN WHAT THE EMPLOYER WANTS FROM A CANDIDATE IN TERMS OF SKILLS, ACCOMPLISHMENTS, AND SUCH"
|
| 37 |
+
clean_job_description = smol_lm_process(job_description, system_prompt_summary)
|
| 38 |
+
|
| 39 |
return {
|
| 40 |
"Company Name": company_name,
|
| 41 |
"Company URL": company_url,
|
| 42 |
+
"Original Job Description": job_description,
|
| 43 |
+
"Role Requirements": role_requirements,
|
| 44 |
+
"Clean Job Description": clean_job_description
|
| 45 |
}
|
| 46 |
|
| 47 |
# Create the Gradio app
|
|
|
|
| 61 |
|
| 62 |
if __name__ == "__main__":
|
| 63 |
demo.launch()
|
|
|