Spaces:
Runtime error
Runtime error
Commit ·
cac6615
1
Parent(s): 163016e
fixed model to handle empty skill list
Browse files
semantic_similarity/semantic_similarity.py
CHANGED
|
@@ -31,6 +31,13 @@ def match_skills(req: SkillsMatchingRequest):
|
|
| 31 |
user_skills = req.userSkills
|
| 32 |
threshold = req.similarityThreshold
|
| 33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
job_texts = [j.skill for j in job_skills]
|
| 35 |
user_texts = [u.skill for u in user_skills]
|
| 36 |
|
|
@@ -72,17 +79,30 @@ def match_projects_skills(req: ProjectsMatchingRequest):
|
|
| 72 |
projects = req.projects
|
| 73 |
threshold = req.similarityThreshold
|
| 74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
job_texts = [job.skill for job in job_skills]
|
| 76 |
job_embeddings = model.encode(job_texts, convert_to_tensor=True)
|
| 77 |
|
| 78 |
matched_projects: List[MatchedProject] = []
|
| 79 |
|
| 80 |
for project in projects:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
project_texts = [ps.skill for ps in project.skills]
|
| 82 |
project_embeddings = model.encode(project_texts, convert_to_tensor=True)
|
| 83 |
|
| 84 |
similarity_matrix = util.cos_sim(job_embeddings, project_embeddings)
|
| 85 |
-
|
| 86 |
matched_skills: List[MatchedProjectSkill] = []
|
| 87 |
|
| 88 |
for i, job_skill in enumerate(job_skills):
|
|
@@ -105,7 +125,6 @@ def match_projects_skills(req: ProjectsMatchingRequest):
|
|
| 105 |
|
| 106 |
return MatchingProjectsResponse(allAnalyzedProjects=matched_projects)
|
| 107 |
|
| 108 |
-
|
| 109 |
# uvicorn semantic_similarity:app --host 0.0.0.0 --port 8001
|
| 110 |
# if __name__ == "__main__":
|
| 111 |
# uvicorn.run(app, host="0.0.0.0", port=8001, reload=False)
|
|
|
|
| 31 |
user_skills = req.userSkills
|
| 32 |
threshold = req.similarityThreshold
|
| 33 |
|
| 34 |
+
if not job_skills or not user_skills:
|
| 35 |
+
return MatchingSkillsResponse(
|
| 36 |
+
matchedSkills=[],
|
| 37 |
+
unmatchedJobSkills=job_skills,
|
| 38 |
+
unmatchedUserSkills=user_skills
|
| 39 |
+
)
|
| 40 |
+
|
| 41 |
job_texts = [j.skill for j in job_skills]
|
| 42 |
user_texts = [u.skill for u in user_skills]
|
| 43 |
|
|
|
|
| 79 |
projects = req.projects
|
| 80 |
threshold = req.similarityThreshold
|
| 81 |
|
| 82 |
+
if not job_skills:
|
| 83 |
+
return MatchingProjectsResponse(allAnalyzedProjects=[
|
| 84 |
+
MatchedProject(project=project, matchedSkills=[], matchedSkillsCount=0) for project in projects
|
| 85 |
+
])
|
| 86 |
+
elif not projects:
|
| 87 |
+
return MatchingSkillsResponse(allAnalyzedProjects=[])
|
| 88 |
+
|
| 89 |
job_texts = [job.skill for job in job_skills]
|
| 90 |
job_embeddings = model.encode(job_texts, convert_to_tensor=True)
|
| 91 |
|
| 92 |
matched_projects: List[MatchedProject] = []
|
| 93 |
|
| 94 |
for project in projects:
|
| 95 |
+
if not project.skills:
|
| 96 |
+
matched_projects.append(MatchedProject(
|
| 97 |
+
project=project,
|
| 98 |
+
matchedSkills=[],
|
| 99 |
+
matchedSkillsCount=0
|
| 100 |
+
))
|
| 101 |
+
continue
|
| 102 |
project_texts = [ps.skill for ps in project.skills]
|
| 103 |
project_embeddings = model.encode(project_texts, convert_to_tensor=True)
|
| 104 |
|
| 105 |
similarity_matrix = util.cos_sim(job_embeddings, project_embeddings)
|
|
|
|
| 106 |
matched_skills: List[MatchedProjectSkill] = []
|
| 107 |
|
| 108 |
for i, job_skill in enumerate(job_skills):
|
|
|
|
| 125 |
|
| 126 |
return MatchingProjectsResponse(allAnalyzedProjects=matched_projects)
|
| 127 |
|
|
|
|
| 128 |
# uvicorn semantic_similarity:app --host 0.0.0.0 --port 8001
|
| 129 |
# if __name__ == "__main__":
|
| 130 |
# uvicorn.run(app, host="0.0.0.0", port=8001, reload=False)
|