Spaces:
Runtime error
Runtime error
import streamlit as st | |
from pdf_loader import load_btyes_io | |
from core import pipeline | |
# Developer Details | |
developer_details = { | |
"Sudhir Sharma": { | |
"Education": "B.Tech in Computer Science and Engineering, IIT Bhilai, 2024", | |
"Email": "[email protected]", | |
"GitHub": "[GitHub Profile](https://github.com/Sudhir878786)", | |
"LinkedIn": "[LinkedIn Profile](https://www.linkedin.com/in/sudhirsharma87/)" | |
} | |
} | |
def inference(query, files, embedding_type): | |
# pdfReader = PyPDF2.PdfReader(files[0]) | |
# text = '' | |
# for page in pdfReader.pages: | |
# text += page.extract_text() | |
# st.write(text) | |
results, _ = pipeline(query, load_btyes_io(files), embedding_type=embedding_type) | |
prob_per_documents = {result['name']: result['similarity'] for result in results} | |
return prob_per_documents | |
st.sidebar.header("Developer Details") | |
selected_developer = st.sidebar.selectbox("Select a developer", list(developer_details.keys())) | |
st.sidebar.markdown(developer_details[selected_developer]["Education"]) | |
st.sidebar.markdown(developer_details[selected_developer]["Email"]) | |
st.sidebar.markdown(developer_details[selected_developer]["GitHub"]) | |
st.sidebar.markdown(developer_details[selected_developer]["LinkedIn"]) | |
sample_files = [ | |
"documents/business.pdf", | |
"documents/data_science.pdf", | |
] | |
sample_job_descriptions = { | |
"Software Engineer": """We are looking for a software engineer with experience in Python and web development. The ideal candidate should have a strong background in building scalable and robust applications. Knowledge of frameworks such as Flask and Django is a plus. Experience with front-end technologies like HTML, CSS, and JavaScript is desirable. The candidate should also have a good understanding of databases and SQL. Strong problem-solving and communication skills are required for this role. | |
""", | |
"Data Scientist": """We are seeking a data scientist with expertise in machine learning and statistical analysis. The candidate should have a solid understanding of data manipulation, feature engineering, and model development. Proficiency in Python and popular data science libraries such as NumPy, Pandas, and Scikit-learn is required. Experience with deep learning frameworks like TensorFlow or PyTorch is a plus. Strong analytical and problem-solving skills are essential for this position. | |
""" | |
} | |
st.sidebar.header("Sample Files") | |
for sample_file in sample_files: | |
st.sidebar.markdown(f"[{sample_file}](./sample_files/{sample_file})") | |
st.sidebar.header("Sample Job Descriptions") | |
selected_job = st.sidebar.selectbox("Select a job description", list(sample_job_descriptions.keys())) | |
st.sidebar.markdown("```") | |
st.sidebar.code(sample_job_descriptions[selected_job]) | |
st.title("👨🏼🎓Resume Ranker ") | |
query = st.text_area("Job Description", height=200, value=sample_job_descriptions[selected_job]) | |
uploaded_files = st.file_uploader("Upload Resume", accept_multiple_files=True, type=["txt", "pdf"]) | |
embedding_type = st.selectbox("Embedding Type", ["bert", "minilm", "tfidf"]) | |
if st.button("Submit"): | |
if not query: | |
st.warning("Please enter a job description.") | |
elif not uploaded_files: | |
st.warning("Please upload one or more resumes.") | |
else: | |
with st.spinner("Processing..."): | |
results = inference(query, uploaded_files,embedding_type) | |
st.subheader("Results") | |
for document, similarity in results.items(): | |
# make similiarty round to 2 decimal place | |
if similarity >= 1: | |
similarity = round(similarity, 2) | |
st.write(f"- {document}:") | |
st.progress(similarity, text=f"{similarity:.2%}") | |