jabil / app.py
cdcvd's picture
Update app.py
e777cf2 verified
raw
history blame
2.01 kB
import gradio as gr
import openai
import os
import fitz # PyMuPDF
# Set OpenAI API key
api_key = "sk-1E6ExsyFb-cdU8jPNDP1dsEq_ra_bazU-EXQZQ86pJT3BlbkFJ4zURsV0t--3qNM7A-P57NUqZIBosrL7POwzpjR5EQA"
openai.api_key = api_key
def extract_text_from_pdf(pdf_file):
# Open the PDF file
document = fitz.open(pdf_file)
text = ""
# Extract text from each page
for page_num in range(len(document)):
page = document.load_page(page_num)
text += page.get_text()
return text
def evaluate_resume(pdf_file, job_description):
# Extract text from PDF
resume_text = extract_text_from_pdf(pdf_file)
prompt = f"""به عنوان یک تحلیلگر با تجربه سیستم ردیابی متقاضی (ATS)، نقش شما شامل ارزیابی رزومه در برابر شرح شغل است.
هدف شما تجزیه و تحلیل رزومه بر اساس شرح شغل داده شده است،
یک درصد تطابق را بر اساس معیارهای کلیدی در رزومه و شرح شغل ذکر شده را به دقت تعیین کنید و تعداد کلمات کلیدی گمشده را مشخص کنید.
رزومه:{resume_text}
شرح شغل:{job_description}
من پاسخ را در یک رشته با ساختار زیر می خواهم
{{"تطابق شرح شغل":"%"، "تعداد کلمات کلیدی از دست رفته":""، "تعداد کلمات کلیدی منطبق با هم ":" }}
"""
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}
]
)
return response.choices[0].message['content']
iface = gr.Interface(
fn=evaluate_resume,
inputs=[
gr.File(label="Upload Resume PDF"),
gr.Textbox(lines=10, label="Job Description")
],
outputs="text",
title="Resume Evaluator"
)
iface.launch()