File size: 2,180 Bytes
99bbd64
24a440f
99bbd64
89ac774
99bbd64
 
 
 
89509c4
 
99bbd64
7dbf682
9e0b38e
99bbd64
 
 
 
 
9e0b38e
 
 
7dbf682
 
 
 
 
 
6e78f7b
fa24c7d
4aba3cf
7dbf682
bcc36a0
4d13280
bcc36a0
24a440f
fa24c7d
 
 
 
 
9e0b38e
 
 
2e32f9d
 
 
 
9e0b38e
 
 
fa24c7d
24a440f
 
89509c4
fa24c7d
6e78f7b
89ac774
 
 
 
 
a587148
 
89509c4
 
 
fa24c7d
 
 
2e32f9d
 
 
 
 
9e0b38e
 
 
4aba3cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#Fast APi Packages
from fastapi import FastAPI
from pydantic import BaseModel
import json

#SkillExtraction Packages
from PyPDF2 import PdfReader
import psycopg2
from psycopg2 import sql
import pandas as pd
from datetime import date
import numpy as np
import spacy
import re
from sentence_transformers import SentenceTransformer, util
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics.pairwise import cosine_similarity
from io import StringIO 
from spacy.matcher import PhraseMatcher
from skillNer.general_params import SKILL_DB
from skillNer.skill_extractor_class import SkillExtractor
from psycopg2.extensions import register_adapter, AsIs
register_adapter(np.int64, AsIs)
import warnings
warnings.filterwarnings('ignore')

#Custom Classes for endpoints
from DbConnection import DbConnection
from UploadFile import UploadOpenFile
from SkillExtract import SkillExtractorDetails

import os
os.environ['HF_HOME'] = '/hug/cache/'

app = FastAPI()

class FileDetails(BaseModel):
    filecontents: str
    filename: str

class SkillDetails(BaseModel):
    skillid: int    
    
class FileResponse(BaseModel):
    fileid: int
    message: str

nlp = spacy.load("en_core_web_lg")
    # init skill extractor
skill_extractor = SkillExtractor(nlp, SKILL_DB, PhraseMatcher)

@app.get("/")
async def root():
 return {"greeting":"Hello world"}
#https://vaibhav84-resumeapi.hf.space/docs
db_params = DbConnection.GetDbConnection()
def parse_csv(df):
    res = df.to_json(orient="records")
    parsed = json.loads(res)
    return parsed
    
@app.get("/ProfileMatch") 
def ProfileMatchResults():
   dbQuery = "select * from profilematch"
   conn = psycopg2.connect(**db_params)   
   df = pd.read_sql_query(dbQuery, conn)
   return parse_csv(df) 

@app.post("/UploadFile/")
def UploadFileDetails(file_data: FileDetails):   
   FileResponse.fileid = UploadOpenFile.uploadFile(file_data.filecontents,file_data.filename,db_params)
   FileResponse.message = "File Uploaded Successfully!!!"
   return 


@app.post("/ExtractSkills/")
def ExtractSkills(skill_data: SkillDetails):
   return SkillExtractorDetails.SkillExtract(db_params,skill_extractor,skill_data.skillid)