Spaces:
No application file
No application file
| # -*- coding: utf-8 -*- | |
| """dpm1 | |
| Automatically generated by Colaboratory. | |
| Original file is located at | |
| https://colab.research.google.com/drive/1PJnjffQq5PpvzMoY1aB5uggxb35r11Ut | |
| """ | |
| #!pip install streamlit | |
| #!pip install transformers | |
| import streamlit as st | |
| from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline | |
| model_name = "EleutherAI/gpt-neo-1.3B" | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| model = AutoModelForCausalLM.from_pretrained(model_name) | |
| generator = pipeline('text-generation', model=model, tokenizer=tokenizer) | |
| def generate_job_posting(position, job_type, skillset, company_name, work_experience, job_location, job_benefits, field, currency, currency_format, package, communication, notice_period, qualifications, responsibility): | |
| context = f"{company_name} is hiring a {position} for a {job_type} position in {job_location}. The ideal candidate will have at least {work_experience} years of experience in {field}, and should be proficient in {skillset}. The job responsibility includes:\n- {responsibility}\nWe offer a {package} package in currency format {currency_format}. The successful candidate will be expected to maintain excellent communication with clients and colleagues. The notice period for this role is {notice_period}, and applicants should have the following qualifications: {qualifications}." | |
| output = generator(context, max_length=240, do_sample=True, temperature=0.7, num_return_sequences=3) | |
| def score_output(output_text): | |
| sentences = output_text.split('.') | |
| avg_sentence_length = sum(len(s.strip()) for s in sentences) / len(sentences) | |
| return 1.0 / avg_sentence_length | |
| sorted_outputs = sorted(output, key=lambda x: score_output(x['generated_text']), reverse=True) | |
| best_output = sorted_outputs[0] | |
| output_text = best_output['generated_text'].replace('- job responsibility', f"\n\n- {responsibility}") | |
| paragraphs = output_text.split('\n\n') | |
| output_text = '\n\n'.join('\n' + p for p in paragraphs) | |
| return output_text | |
| st.title("Job Posting Generator") | |
| position = st.text_input("Enter Position for Job Posting:") | |
| job_type = st.text_input("Enter Job Type:") | |
| skillset = st.text_input("Enter Skillset:") | |
| company_name = st.text_input("Enter Company Name:") | |
| work_experience = st.text_input("Enter Required Work Experience (in years):") | |
| job_location = st.text_input("Enter job Location:") | |
| job_benefits = st.text_input("Enter job benefits:") | |
| field = st.text_input("Enter job field:") | |
| currency = st.text_input("Enter Currency:") | |
| currency_format = st.text_input("Enter Currency Format:") | |
| package = st.text_input("Enter Package:") | |
| communication = st.text_input("Enter Communication:") | |
| notice_period = st.text_input("Enter Notice Period:") | |
| qualifications = st.text_input("Enter Qualifications:") | |
| responsibility = st.text_area("Enter Job Responsibility:") | |
| if st.button("Generate Job Posting"): | |
| try: | |
| output_text = generate_job_posting(position, job_type, skillset, company_name, work_experience, job_location, job_benefits, field, currency, currency_format, package, communication, notice_period, qualifications, responsibility) | |
| st.success(output_text) | |
| except ValueError as e: | |
| st.error(f"Error: {e}") | |
| except Exception as e: | |
| st.error(f"An error occurred: {e}") |