Vaibhav84's picture
Changes
2e32f9d
raw
history blame
2.18 kB
#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)