Karthikeyan
Update app.py
b815f47
raw
history blame
2 kB
import gradio as gr
import openai
import PyPDF2
import os
class JobListGenerator:
def __init__(self):
openai.api_key = os.getenv("OPENAI_API_KEY")
self.engine = 'text-davinci-003'
def _extract_text_from_pdf(self, file_path: str) -> str:
with open(file_path, 'rb') as file:
reader = PyPDF2.PdfReader(file)
pdf_extract_text = ""
for page in reader.pages:
pdf_extract_text += page.extract_text()
return pdf_extract_text
def _generate_job_list(self, resume: str) -> str:
prompt = f"List out perfect job roles for based on resume informations:{resume}"
response = openai.Completion.create(
engine=self.engine,
prompt=prompt,
max_tokens=100,
temperature=0,
n=1,
stop=None,
)
generated_text = response.choices[0].text.strip()
return generated_text
def job_list_interface(self, file) -> str:
resume_text = self._extract_text_from_pdf(file.name)
job_list = self._generate_job_list(resume_text)
return job_list
def launch_gradio_interface(self, share: bool = True):
with gr.Blocks(css="style.css", theme=gr.themes.Soft()) as app:
gr.HTML("""
<img class="rightimage" align="center" src="https://companieslogo.com/img/orig/RAND.AS_BIG-0f1935a4.png?t=1651813778" alt="Image" width="150" height="140">""")
with gr.Row():
with gr.Column(elem_id="col-container"):
gr.HTML("""<center><h1>Designation Finder</h1></center>""")
input_file = gr.File(label="Upload Resume (PDF)")
btn = gr.Button(value="Submit")
output_text = gr.Textbox(label="Designation List")
btn.click(self.job_list_interface, input_file, output_text)
app.launch()
job_list_generator = JobListGenerator()
job_list_generator.launch_gradio_interface()