-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.py
45 lines (32 loc) · 1.37 KB
/
app.py
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
import streamlit as st
from file_reader import ResumeReader
from text_extractor import ResumeExtractor
st.set_page_config(page_title="Read Your Resume", page_icon = 'img/app_icon.png')
#@st.cache(allow_output_mutation=True, suppress_st_warning=True)
def load_model():
model = ResumeExtractor(ner_model_path='./resume_ner_model/model-best')
return model
header_container = st.empty()
if 'loaded' not in st.session_state:
with header_container.container():
header_container.info('Starting to download model from cloud, please wait...')
extractor = load_model()
st.session_state['loaded'] = extractor
else:
extractor = st.session_state['loaded']
#Ready to go
st.success("Model is ready to go!")
with header_container.container():
header_container.header("Let's Read Your Resume")
resume_file = st.file_uploader("Choose your resume", accept_multiple_files=False, type=['pdf', 'docx'])
reader = ResumeReader()
if resume_file:
with st.spinner("Reading resumes..."):
resume_content = reader.read_text_from_file(resume_file)
resume_summary = extractor.get_summary_from_text(resume_content)
st.markdown("### Resume summary")
st.write(resume_summary)
#Render html entities on resume
st.markdown("### Coloring resume")
html = extractor.render_html_entities(resume_content)
st.markdown(html, unsafe_allow_html=True)