import gradio as gr import torch from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, pipeline model_name = "nouamanetazi/cover-letter-t5-base" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSeq2SeqLM.from_pretrained(model_name) def generate_cover_letter( name, job, company, background, experiences, max_length=300, temperature=1.0, top_p=0.9, max_time=10 ): model_args = { "max_length": max_length, "temperature": temperature, "top_p": top_p, # "top_k": 120, "early_stopping": True, "max_time": max_time, "do_sample": True, # do_sample=False to force deterministic output "num_return_sequences": 1, # number of samples to return "min_length": 100, "num_beams": 4, # "num_beam_groups": 1, # "diversity_penalty": 0, # "repetition_penalty": 5.0, # "length_penalty": 0, # "remove_invalid_values": True, "no_repeat_ngram_size": 3, } # Load the tokenizer and the distilgpt2 model # Set up the transformers pipeline text_generator = pipeline( "text2text-generation", model=model, tokenizer=tokenizer, device=0 if torch.cuda.is_available() else -1 ) # Generate the text prompt = f"coverletter name: {name} job: {job} at {company} background: {background} experiences: {experiences}" generated_text = text_generator(prompt, **model_args)[0]["generated_text"] return generated_text title = "A Cover Letter Generator for Jobs" description = "" article = '
This is a Space App for the Cover Letter
' examples = None interface = gr.Interface( fn=generate_cover_letter, inputs=[ gr.inputs.Textbox( label="Your name", default="Sakil Ansari", ), gr.inputs.Textbox( label="The job you want to apply for", default="Data Scientist", ), gr.inputs.Textbox( label="The company you want to apply for", default="Google", ), gr.inputs.Textbox( lines=2, label="Your education/background", default="Master of Technology in Machine learning", ), gr.inputs.Textbox( lines=3, label="Your skills/previous experiences", default="I am the Author of Book and MTech in Machine Learning and achievement-driven professional with an experience of 3+ years in Data Science/Machine Learning/NLP/ Deep Learning/Data analytics. I am highly skilled in libraries like Sklearn, Numpy, Pandas, Matplotlib, Seaborn, Tensorflow, Faster-RCNN, Keras, Pytorch, FastAI, PowerBI/Tableau for Data Visualization, SQL/Oracle/NoSQL for databases and experience in NLP use cases related to named entity recognition, text summarization, text similarity, text generation.", ), gr.inputs.Slider(20, 2048, default=400, label="Max Length"), gr.inputs.Slider(0, 3, default=1.2, label="Temperature"), gr.inputs.Slider(0, 1, default=0.9, label="Top P"), gr.inputs.Slider(1, 200, default=20, label="Max time"), ], outputs=[gr.outputs.Textbox(type="str", label="Cover Letter")], title=title, description=description, examples=examples, article=article, layout="horizontal", ) interface.launch(inline=False, debug=False)