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()