Spaces:
Sleeping
Sleeping
Change
Browse files- AddSkillDetails.py +4 -4
- OpenAIResponse.py +0 -24
- RemoveSkills.py +1 -1
- SkillExtractV1.py +10 -9
- app.py +3 -4
AddSkillDetails.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
-
import psycopg2
|
2 |
-
from psycopg2 import sql
|
3 |
|
|
|
|
|
4 |
class AddSkill:
|
5 |
-
def AddSkillDetails(
|
6 |
returnMsg=''
|
7 |
details = skills.split(',')
|
8 |
skill_details = details[0]
|
@@ -10,7 +10,7 @@ class AddSkill:
|
|
10 |
skill_score1 = details[2]
|
11 |
weightage = -2
|
12 |
is_active = True
|
13 |
-
conn =
|
14 |
cursor = conn.cursor()
|
15 |
print("Adding Skill " + skill_details)
|
16 |
query = "SELECT skillid FROM skillmaster WHERE upper(skillDetails) IN (%s)"
|
|
|
|
|
|
|
1 |
|
2 |
+
from psycopg2 import sql
|
3 |
+
from DbConnection import DbConnection
|
4 |
class AddSkill:
|
5 |
+
def AddSkillDetails(skills):
|
6 |
returnMsg=''
|
7 |
details = skills.split(',')
|
8 |
skill_details = details[0]
|
|
|
10 |
skill_score1 = details[2]
|
11 |
weightage = -2
|
12 |
is_active = True
|
13 |
+
conn = DbConnection.GetMySQLDbConnection()
|
14 |
cursor = conn.cursor()
|
15 |
print("Adding Skill " + skill_details)
|
16 |
query = "SELECT skillid FROM skillmaster WHERE upper(skillDetails) IN (%s)"
|
OpenAIResponse.py
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
from openai import OpenAI
|
2 |
-
class OpenAIText:
|
3 |
-
def OpenAITextResponse(query:str, content:str):
|
4 |
-
client = OpenAI(api_key='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')
|
5 |
-
|
6 |
-
response = client.chat.completions.create(
|
7 |
-
model="gpt-3.5-turbo",
|
8 |
-
messages=[
|
9 |
-
{
|
10 |
-
"role": "system",
|
11 |
-
"content": query
|
12 |
-
},
|
13 |
-
{
|
14 |
-
"role": "user",
|
15 |
-
"content": content
|
16 |
-
}
|
17 |
-
],
|
18 |
-
temperature=0.7,
|
19 |
-
max_tokens=64,
|
20 |
-
top_p=1
|
21 |
-
)
|
22 |
-
print(response.choices[0].message.content)
|
23 |
-
return response.choices[0].message.content
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RemoveSkills.py
CHANGED
@@ -2,7 +2,7 @@ import psycopg2
|
|
2 |
import pymysql
|
3 |
from DbConnection import DbConnection
|
4 |
class RemoveSkill:
|
5 |
-
def RemoveSkillDetails(
|
6 |
#conn = psycopg2.connect(**db_params)
|
7 |
conn1 = DbConnection.GetMySQLDbConnection()
|
8 |
cursor = conn1.cursor()
|
|
|
2 |
import pymysql
|
3 |
from DbConnection import DbConnection
|
4 |
class RemoveSkill:
|
5 |
+
def RemoveSkillDetails(SkillName):
|
6 |
#conn = psycopg2.connect(**db_params)
|
7 |
conn1 = DbConnection.GetMySQLDbConnection()
|
8 |
cursor = conn1.cursor()
|
SkillExtractV1.py
CHANGED
@@ -2,11 +2,12 @@ import re
|
|
2 |
from datetime import datetime
|
3 |
import psycopg2
|
4 |
import pandas as pd
|
|
|
5 |
class SkillExtractorDetailsV1:
|
6 |
|
7 |
|
8 |
-
def GetSkillData(skill_extractor, inputData
|
9 |
-
getdbskills = SkillExtractorDetailsV1.GetSkillDatafromDB(
|
10 |
|
11 |
skills_list = []
|
12 |
annotations = skill_extractor.annotate(inputData)
|
@@ -43,7 +44,7 @@ class SkillExtractorDetailsV1:
|
|
43 |
# list_of_tuples = list(zip(skills_list, skill_Typelst,skill_Scorelst))
|
44 |
# df = pd.DataFrame(list_of_tuples,
|
45 |
# columns=['Skill_Name', 'Skill_Type','Skill_Score'])
|
46 |
-
newSkilllst = SkillExtractorDetailsV1.extractWords(inputData
|
47 |
reqSkill = ''
|
48 |
if(len(newSkilllst)>0):
|
49 |
reqSkill = ','.join(reuiredSkilllst) + ',' + ','.join(newSkilllst)
|
@@ -55,19 +56,19 @@ class SkillExtractorDetailsV1:
|
|
55 |
|
56 |
return df
|
57 |
|
58 |
-
def GetSkillDatafromDB(
|
59 |
-
conn =
|
60 |
|
61 |
query = "select upper(skilldetails) skill from skillmaster where weightage = 0"
|
62 |
df = pd.read_sql_query(query, conn)
|
63 |
return df
|
64 |
|
65 |
-
def extractWords(job_description
|
66 |
job_roles = []
|
67 |
job_description = job_description.replace(')',' ')
|
68 |
delimiters = ",", " ", " , ", ";","\n","/","\\"
|
69 |
regex_pattern = '|'.join(map(re.escape, delimiters))
|
70 |
-
df = SkillExtractorDetailsV1.getNewSkills(
|
71 |
data = re.split(regex_pattern, job_description)
|
72 |
#data = job_description.split(',')
|
73 |
for ds in data:
|
@@ -81,9 +82,9 @@ class SkillExtractorDetailsV1:
|
|
81 |
test = 1
|
82 |
return job_roles
|
83 |
|
84 |
-
def getNewSkills(
|
85 |
query = "select skillid,skilldetails,skilltype,skill_score from skillmaster where weightage = -2"
|
86 |
-
conn =
|
87 |
cursor = conn.cursor()
|
88 |
df_skill_master = pd.read_sql_query(query, conn)
|
89 |
df_skill_master['skilldetails'] = df_skill_master['skilldetails'].str.upper()
|
|
|
2 |
from datetime import datetime
|
3 |
import psycopg2
|
4 |
import pandas as pd
|
5 |
+
from DbConnection import DbConnection
|
6 |
class SkillExtractorDetailsV1:
|
7 |
|
8 |
|
9 |
+
def GetSkillData(skill_extractor, inputData):
|
10 |
+
getdbskills = SkillExtractorDetailsV1.GetSkillDatafromDB()
|
11 |
|
12 |
skills_list = []
|
13 |
annotations = skill_extractor.annotate(inputData)
|
|
|
44 |
# list_of_tuples = list(zip(skills_list, skill_Typelst,skill_Scorelst))
|
45 |
# df = pd.DataFrame(list_of_tuples,
|
46 |
# columns=['Skill_Name', 'Skill_Type','Skill_Score'])
|
47 |
+
newSkilllst = SkillExtractorDetailsV1.extractWords(inputData)
|
48 |
reqSkill = ''
|
49 |
if(len(newSkilllst)>0):
|
50 |
reqSkill = ','.join(reuiredSkilllst) + ',' + ','.join(newSkilllst)
|
|
|
56 |
|
57 |
return df
|
58 |
|
59 |
+
def GetSkillDatafromDB():
|
60 |
+
conn = DbConnection.GetMySQLDbConnection()
|
61 |
|
62 |
query = "select upper(skilldetails) skill from skillmaster where weightage = 0"
|
63 |
df = pd.read_sql_query(query, conn)
|
64 |
return df
|
65 |
|
66 |
+
def extractWords(job_description):
|
67 |
job_roles = []
|
68 |
job_description = job_description.replace(')',' ')
|
69 |
delimiters = ",", " ", " , ", ";","\n","/","\\"
|
70 |
regex_pattern = '|'.join(map(re.escape, delimiters))
|
71 |
+
df = SkillExtractorDetailsV1.getNewSkills()
|
72 |
data = re.split(regex_pattern, job_description)
|
73 |
#data = job_description.split(',')
|
74 |
for ds in data:
|
|
|
82 |
test = 1
|
83 |
return job_roles
|
84 |
|
85 |
+
def getNewSkills():
|
86 |
query = "select skillid,skilldetails,skilltype,skill_score from skillmaster where weightage = -2"
|
87 |
+
conn = DbConnection.GetMySQLDbConnection()
|
88 |
cursor = conn.cursor()
|
89 |
df_skill_master = pd.read_sql_query(query, conn)
|
90 |
df_skill_master['skilldetails'] = df_skill_master['skilldetails'].str.upper()
|
app.py
CHANGED
@@ -27,7 +27,6 @@ from ExtractContentsFromFile import ExtractContentFromFile
|
|
27 |
from RemoveSkills import RemoveSkill
|
28 |
from AddSkillDetails import AddSkill
|
29 |
from SkillMatcher import SkillMatch
|
30 |
-
from OpenAIResponse import OpenAIText
|
31 |
from SkillExtractV1 import SkillExtractorDetailsV1
|
32 |
import ClassModals
|
33 |
import os
|
@@ -54,19 +53,19 @@ def parse_csv(df):
|
|
54 |
@app.post("/UploadJobDescription/")
|
55 |
def UploadJobDescription(file: bytes = File(...), FileName: str = "sample.pdf"):
|
56 |
text= ExtractContentFromFile.ExtractDataFromFile(FileName,file)
|
57 |
-
returnSkills = SkillExtractorDetailsV1.GetSkillData(skill_extractor,text
|
58 |
return parse_csv(returnSkills)
|
59 |
|
60 |
|
61 |
@app.delete("/RemoveSkillsByName/")
|
62 |
def RemoveSkills(SkillName : str):
|
63 |
-
RemoveSkill.RemoveSkillDetails(
|
64 |
return "Skill Removed Successfully"
|
65 |
|
66 |
@app.post("/AddSkillDeails/")
|
67 |
def AddSkills(Skills : ClassModals.Modals.AddSkillDetails):
|
68 |
skilldetailsStr = Skills.SkillName + ',' + Skills.SkillType + ',' + str(Skills.SkillScore)
|
69 |
-
return AddSkill.AddSkillDetails(
|
70 |
|
71 |
#return JSONResponse(content={"message": "Here's your interdimensional portal." , "mes1":"data2"})
|
72 |
#https://vaibhav84-resumeapi.hf.space/docs
|
|
|
27 |
from RemoveSkills import RemoveSkill
|
28 |
from AddSkillDetails import AddSkill
|
29 |
from SkillMatcher import SkillMatch
|
|
|
30 |
from SkillExtractV1 import SkillExtractorDetailsV1
|
31 |
import ClassModals
|
32 |
import os
|
|
|
53 |
@app.post("/UploadJobDescription/")
|
54 |
def UploadJobDescription(file: bytes = File(...), FileName: str = "sample.pdf"):
|
55 |
text= ExtractContentFromFile.ExtractDataFromFile(FileName,file)
|
56 |
+
returnSkills = SkillExtractorDetailsV1.GetSkillData(skill_extractor,text)
|
57 |
return parse_csv(returnSkills)
|
58 |
|
59 |
|
60 |
@app.delete("/RemoveSkillsByName/")
|
61 |
def RemoveSkills(SkillName : str):
|
62 |
+
RemoveSkill.RemoveSkillDetails(SkillName)
|
63 |
return "Skill Removed Successfully"
|
64 |
|
65 |
@app.post("/AddSkillDeails/")
|
66 |
def AddSkills(Skills : ClassModals.Modals.AddSkillDetails):
|
67 |
skilldetailsStr = Skills.SkillName + ',' + Skills.SkillType + ',' + str(Skills.SkillScore)
|
68 |
+
return AddSkill.AddSkillDetails(skilldetailsStr)
|
69 |
|
70 |
#return JSONResponse(content={"message": "Here's your interdimensional portal." , "mes1":"data2"})
|
71 |
#https://vaibhav84-resumeapi.hf.space/docs
|