ResumeAPI / app.py
Vaibhav84's picture
Db Connection added
9e0b38e
raw
history blame
1.65 kB
from fastapi import FastAPI
import psycopg2
import json
from psycopg2 import sql
import pandas as pd
import numpy as np
from pydantic import BaseModel
import spacy
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 SkillExtractor
app = FastAPI()
class FileDetails(BaseModel):
filecontents: str
filename: str
class SkillDetails(BaseModel):
skillid: int
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):
return UploadOpenFile.uploadFile(file_data.filecontents,file_data.filename,db_params)
@app.post("/ExtractSkills/")
def ExtractSkills(skill_data: SkillDetails):
return SkillExtractor.SkillExtract(db_params,skill_extractor,skill_data.skillid)