edouardlgp commited on
Commit
f70cd41
·
verified ·
1 Parent(s): 42ea09e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -19
app.py CHANGED
@@ -929,7 +929,7 @@ def process_pdf(file):
929
  formatted_skills = format_skill_cards(joined_skills)
930
  formatted_ccog = format_ccog_card(result_data['ccoq_levels'])
931
  formatted_esco_levels = format_esco_card(result_data['esco_levels'])
932
- formatted_esco_skills = format_skill_cards(result_data['esco_skills'])
933
 
934
 
935
  return (
@@ -1015,9 +1015,9 @@ def generate_word_document(json_path: Optional[str]) -> str:
1015
  "responsibilities": "No responsibilities extracted.",
1016
  "classified_job_family": "No job family identified.",
1017
  "qualification": ["No qualification information available."],
1018
- "interview": ["No interview questions generated."],
1019
  "skills": {"skills": [{"skill_name": "No skills identified", "description": "", "code": ""}]},
1020
- "skills_esco": {"skills": [{"skill_name": "No ESCO skills identified", "description": "", "code": ""}]}
1021
  }
1022
 
1023
  # Safely build the result dictionary with fallbacks
@@ -1027,10 +1027,10 @@ def generate_word_document(json_path: Optional[str]) -> str:
1027
  "responsibilities": data.get("responsibilities", default_values["responsibilities"]),
1028
  "classified_job_family": data.get("job_family", default_values["classified_job_family"]),
1029
  "qualification": data.get("qualification", default_values["qualification"]),
1030
- "interview": data.get("interview", default_values["interview"]),
1031
  "skills": data.get("skills", default_values["skills"]),
1032
- "skills_esco": data.get("skills_esco", default_values["skills_esco"]),
1033
- "ccog_levels": data.get("ccog_levels", {}),
1034
  "esco_levels": data.get("esco_levels", {})
1035
  }
1036
 
@@ -1076,32 +1076,35 @@ def generate_word_document(json_path: Optional[str]) -> str:
1076
  if isinstance(skills_list, dict):
1077
  skills_list = skills_list.get("skills", [])
1078
  for skill in skills_list:
1079
- doc.add_paragraph(f"• {skill.get('skill_name', 'Unnamed Skill')}", style='List Bullet')
1080
-
1081
- add_skill_detail("Importance:", skill.get('importance', 'N/A'))
1082
  add_skill_detail("Type:", skill.get('type', 'N/A'))
 
1083
  add_skill_detail("Proficiency Level:", skill.get('proficiency_level', 'N/A'))
1084
  add_skill_detail("Distinctive Elements:", skill.get('distinctive_elements', 'N/A'))
1085
  add_skill_detail("Resume Signals:", skill.get('resume_signals', 'N/A'))
1086
  add_skill_detail("Assessment Method:", skill.get('assessment_method', 'N/A'))
1087
 
 
1088
  doc.add_heading('Suggested Qualifications', level=2)
1089
  for item in result['qualification']:
1090
- doc.add_paragraph(item, style='List Bullet')
1091
 
1092
  doc.add_heading('Suggested Interview Questions', level=2)
1093
- for item in result['interview']:
1094
- doc.add_paragraph(item, style='List Bullet')
1095
 
1096
 
1097
- if result["ccog_levels"]:
1098
  doc.add_heading('UN Common Classification of Occupational Groups', level=2)
1099
- for key, value in result["ccog_levels"].items():
1100
  paragraph = doc.add_paragraph()
1101
  run = paragraph.add_run(f"{key}: ")
1102
  run.bold = True
1103
  paragraph.add_run(str(value))
1104
 
 
1105
  if result["esco_levels"]:
1106
  doc.add_heading('ESCO Framework Occupational Groups', level=2)
1107
  for key, value in result["esco_levels"].items():
@@ -1113,20 +1116,22 @@ def generate_word_document(json_path: Optional[str]) -> str:
1113
 
1114
 
1115
  # Skills (ESCO)
1116
- doc.add_heading('Mapped Skills (ESCO)', level=2)
1117
- esco_skills_list = result['skills_esco']
1118
  if isinstance(esco_skills_list, dict):
1119
  esco_skills_list = esco_skills_list.get("skills", [])
1120
  for skill in esco_skills_list:
1121
- doc.add_paragraph(f"• {skill.get('skill_name', 'Unnamed Skill')}", style='List Bullet')
1122
-
1123
- add_skill_detail("Importance:", skill.get('importance', 'N/A'))
1124
  add_skill_detail("Type:", skill.get('type', 'N/A'))
 
1125
  add_skill_detail("Proficiency Level:", skill.get('proficiency_level', 'N/A'))
1126
  add_skill_detail("Distinctive Elements:", skill.get('distinctive_elements', 'N/A'))
1127
  add_skill_detail("Resume Signals:", skill.get('resume_signals', 'N/A'))
1128
  add_skill_detail("Assessment Method:", skill.get('assessment_method', 'N/A'))
1129
 
 
1130
 
1131
 
1132
  except Exception as e:
 
929
  formatted_skills = format_skill_cards(joined_skills)
930
  formatted_ccog = format_ccog_card(result_data['ccoq_levels'])
931
  formatted_esco_levels = format_esco_card(result_data['esco_levels'])
932
+ formatted_esco_skills = format_skill_cards(joined_skills_esco)
933
 
934
 
935
  return (
 
1015
  "responsibilities": "No responsibilities extracted.",
1016
  "classified_job_family": "No job family identified.",
1017
  "qualification": ["No qualification information available."],
1018
+ "interview_questions": ["No interview questions generated."],
1019
  "skills": {"skills": [{"skill_name": "No skills identified", "description": "", "code": ""}]},
1020
+ "esco_skills": {"skills": [{"skill_name": "No ESCO skills identified", "description": "", "code": ""}]}
1021
  }
1022
 
1023
  # Safely build the result dictionary with fallbacks
 
1027
  "responsibilities": data.get("responsibilities", default_values["responsibilities"]),
1028
  "classified_job_family": data.get("job_family", default_values["classified_job_family"]),
1029
  "qualification": data.get("qualification", default_values["qualification"]),
1030
+ "interview_questions": data.get("interview_questions", default_values["interview_questions"]),
1031
  "skills": data.get("skills", default_values["skills"]),
1032
+ "esco_skills": data.get("skills_esco", default_values["esco_skills"]),
1033
+ "ccoq_levels": data.get("ccoq_levels", {}),
1034
  "esco_levels": data.get("esco_levels", {})
1035
  }
1036
 
 
1076
  if isinstance(skills_list, dict):
1077
  skills_list = skills_list.get("skills", [])
1078
  for skill in skills_list:
1079
+ doc.add_heading(f"• {skill.get('skill_name', 'Unnamed Skill')}", level=3)
1080
+ add_skill_detail("Description:", skill.get('skill_description', 'N/A'))
1081
+ add_skill_detail("Code:", skill.get('skill_code', 'N/A'))
1082
  add_skill_detail("Type:", skill.get('type', 'N/A'))
1083
+ add_skill_detail("Importance:", skill.get('importance', 'N/A'))
1084
  add_skill_detail("Proficiency Level:", skill.get('proficiency_level', 'N/A'))
1085
  add_skill_detail("Distinctive Elements:", skill.get('distinctive_elements', 'N/A'))
1086
  add_skill_detail("Resume Signals:", skill.get('resume_signals', 'N/A'))
1087
  add_skill_detail("Assessment Method:", skill.get('assessment_method', 'N/A'))
1088
 
1089
+ doc.add_page_break()
1090
  doc.add_heading('Suggested Qualifications', level=2)
1091
  for item in result['qualification']:
1092
+ doc.add_paragraph(item, style='Body Text')
1093
 
1094
  doc.add_heading('Suggested Interview Questions', level=2)
1095
+ for item in result['interview_questions']:
1096
+ doc.add_paragraph(item, style='Body Text')
1097
 
1098
 
1099
+ if result["ccoq_levels"]:
1100
  doc.add_heading('UN Common Classification of Occupational Groups', level=2)
1101
+ for key, value in result["ccoq_levels"].items():
1102
  paragraph = doc.add_paragraph()
1103
  run = paragraph.add_run(f"{key}: ")
1104
  run.bold = True
1105
  paragraph.add_run(str(value))
1106
 
1107
+ doc.add_page_break()
1108
  if result["esco_levels"]:
1109
  doc.add_heading('ESCO Framework Occupational Groups', level=2)
1110
  for key, value in result["esco_levels"].items():
 
1116
 
1117
 
1118
  # Skills (ESCO)
1119
+ doc.add_heading('Skills (Mapped from ESCO)', level=2)
1120
+ esco_skills_list = result['esco_skills']
1121
  if isinstance(esco_skills_list, dict):
1122
  esco_skills_list = esco_skills_list.get("skills", [])
1123
  for skill in esco_skills_list:
1124
+ doc.add_heading(f"• {skill.get('skill_name', 'Unnamed Skill')}", level=3)
1125
+ add_skill_detail("Description:", skill.get('skill_description', 'N/A'))
1126
+ add_skill_detail("Code:", skill.get('skill_code', 'N/A'))
1127
  add_skill_detail("Type:", skill.get('type', 'N/A'))
1128
+ add_skill_detail("Importance:", skill.get('importance', 'N/A'))
1129
  add_skill_detail("Proficiency Level:", skill.get('proficiency_level', 'N/A'))
1130
  add_skill_detail("Distinctive Elements:", skill.get('distinctive_elements', 'N/A'))
1131
  add_skill_detail("Resume Signals:", skill.get('resume_signals', 'N/A'))
1132
  add_skill_detail("Assessment Method:", skill.get('assessment_method', 'N/A'))
1133
 
1134
+ doc.add_page_break()
1135
 
1136
 
1137
  except Exception as e: