DreamStream-1 commited on
Commit
bf65dea
·
verified ·
1 Parent(s): e4e5bce

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -7
app.py CHANGED
@@ -2,6 +2,8 @@ import gradio as gr
2
  import requests
3
  import os
4
  import csv
 
 
5
  from sentence_transformers import util
6
 
7
  # Set up API endpoint and API Key
@@ -30,19 +32,57 @@ def get_gemini_embeddings(text):
30
  return []
31
 
32
  def extract_text_from_resume(resume_file):
33
- # Extract text from resume (for example, using PyPDF2 or textract for PDFs)
34
- # This placeholder should be replaced with actual code for resume text extraction
35
- return "Sample resume text"
 
 
 
 
 
 
 
 
 
36
 
37
  def extract_leadership_experience(resume_text):
38
- # Logic to extract leadership experience from resume text
39
- return "Leadership Experience Example"
 
 
 
 
 
 
 
 
40
 
41
  def extract_entities_via_gemini(resume_text):
42
- # Logic to extract named entities (e.g., Name, Email, Contact) using Gemini API
43
- return {"name": "John Doe", "email": "john.doe@example.com", "contact": "123-456-7890"}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
 
45
  def save_results_to_csv(results):
 
46
  csv_file_path = "/tmp/results.csv"
47
  with open(csv_file_path, mode='w', newline='') as file:
48
  writer = csv.writer(file)
 
2
  import requests
3
  import os
4
  import csv
5
+ import fitz # PyMuPDF for PDF text extraction
6
+ import re # For entity extraction
7
  from sentence_transformers import util
8
 
9
  # Set up API endpoint and API Key
 
32
  return []
33
 
34
  def extract_text_from_resume(resume_file):
35
+ """ Extract text from resume files (PDF or TXT). """
36
+ if resume_file.name.endswith('.pdf'):
37
+ doc = fitz.open(resume_file.name)
38
+ text = ""
39
+ for page in doc:
40
+ text += page.get_text()
41
+ return text
42
+ elif resume_file.name.endswith('.txt'):
43
+ with open(resume_file.name, 'r') as file:
44
+ return file.read()
45
+ else:
46
+ return ""
47
 
48
  def extract_leadership_experience(resume_text):
49
+ """ Logic to extract leadership experience from resume text. """
50
+ # Simple logic: Extract phrases related to leadership, you can refine this logic.
51
+ leadership_keywords = ["leader", "led", "managed", "directed", "supervised"]
52
+ leadership_experience = []
53
+
54
+ for sentence in resume_text.split('.'):
55
+ if any(keyword in sentence.lower() for keyword in leadership_keywords):
56
+ leadership_experience.append(sentence.strip())
57
+
58
+ return " | ".join(leadership_experience) if leadership_experience else "No leadership experience"
59
 
60
  def extract_entities_via_gemini(resume_text):
61
+ """ Extract entities like name, email, contact information. """
62
+ # Simple regex-based entity extraction
63
+ name = "Unknown"
64
+ email = "No Email"
65
+ contact = "No Contact"
66
+
67
+ # Extract name (simple assumption - look for "Name: <some name>" format)
68
+ name_match = re.search(r"Name:\s*([A-Za-z\s]+)", resume_text)
69
+ if name_match:
70
+ name = name_match.group(1)
71
+
72
+ # Extract email
73
+ email_match = re.search(r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}", resume_text)
74
+ if email_match:
75
+ email = email_match.group(0)
76
+
77
+ # Extract contact number (simple assumption - look for numbers with optional dashes)
78
+ contact_match = re.search(r"\(?\d{3}\)?[\s\-]?\d{3}[\s\-]?\d{4}", resume_text)
79
+ if contact_match:
80
+ contact = contact_match.group(0)
81
+
82
+ return {"name": name, "email": email, "contact": contact}
83
 
84
  def save_results_to_csv(results):
85
+ """ Save results to CSV file. """
86
  csv_file_path = "/tmp/results.csv"
87
  with open(csv_file_path, mode='w', newline='') as file:
88
  writer = csv.writer(file)