Spaces:
Runtime error
Runtime error
from fastapi import FastAPI, Request, Form, File, Query, Depends | |
from fastapi.templating import Jinja2Templates | |
from fastapi.staticfiles import StaticFiles | |
from fastapi.responses import HTMLResponse | |
import pandas as pd | |
import requests | |
from bs4 import BeautifulSoup | |
from cleantext import clean | |
from typing import List, Optional | |
import json | |
app = FastAPI() | |
app.mount("/static", StaticFiles(directory='static'), name="static") | |
templates = Jinja2Templates(directory="templates/") | |
onet = pd.read_csv('static/ONET_JobTitles.csv') | |
coheredat = pd.read_csv('static/cohere_tSNE_dat.csv') | |
### job information center ### | |
# get | |
def render_job_list(request: Request): | |
joblist = onet['JobTitle'] | |
return templates.TemplateResponse('job_list.html', context={'request': request, 'joblist': joblist}) | |
# post | |
def render_job_info(request: Request, jobtitle: str = Form(enum=[x for x in onet['JobTitle']])): | |
def remove_new_line(value): | |
return ''.join(value.splitlines()) | |
joblist = onet['JobTitle'] | |
if jobtitle: | |
onetCode = onet.loc[onet['JobTitle'] == jobtitle, 'onetCode'] | |
onetCode = onetCode.reindex().tolist()[0] | |
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15'} | |
url = "https://www.onetonline.org/link/summary/" + onetCode | |
response = requests.get(url, headers=headers) | |
soup = BeautifulSoup(response.text, 'html.parser') | |
jobdescription = soup.p.get_text() | |
url = "https://www.onetonline.org/link/result/" + onetCode + "?c=tk&n_tk=0&s_tk=IM&c_tk=0" | |
response = requests.get(url, headers=headers) | |
soup = BeautifulSoup(response.text, 'html.parser') | |
tasks = str(soup.get_text('reportsubdesc')).replace("reportsubdesc", " ").replace("ImportanceCategoryTask ", "") | |
tasks = clean(tasks) | |
tasks = tasks.split('show all show top 10')[1] | |
tasks = tasks.split('occupations related to multiple tasks')[0] | |
tasks = remove_new_line(tasks).replace("related occupations", " ").replace("core", " - ").replace(" )importance category task", "").replace(" find ", "") | |
tasks = tasks.split(". ") | |
tasks = [''.join(map(lambda c: '' if c in '0123456789-' else c, task)) for task in tasks] | |
return templates.TemplateResponse('job_list.html', context={ | |
'request': request, | |
'joblist': joblist, | |
'jobtitle': jobtitle, | |
'jobdescription': jobdescription, | |
'tasks': tasks}) | |
### job neighborhoods ### | |
async def render_job_neighborhoods(request: Request): | |
return templates.TemplateResponse('job_neighborhoods.html', context={'request': request}) | |
### find my match ### | |
# get | |
async def render_matches(request: Request): | |
pass | |
# post | |
async def render_matches(request: Request, resume: str = File(...)): | |
pass | |