Spaces:
Sleeping
Sleeping
#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) | |
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 | |
def ProfileMatchResults(): | |
dbQuery = "select * from profilematch" | |
conn = psycopg2.connect(**db_params) | |
df = pd.read_sql_query(dbQuery, conn) | |
return parse_csv(df) | |
def UploadFileDetails(file_data: FileDetails): | |
FileResponse.fileid = UploadOpenFile.uploadFile(file_data.filecontents,file_data.filename,db_params) | |
FileResponse.message = "File Uploaded Successfully!!!" | |
return | |
def ExtractSkills(skill_data: SkillDetails): | |
return SkillExtractorDetails.SkillExtract(db_params,skill_extractor,skill_data.skillid) |