|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import streamlit as st |
|
import pandas as pd |
|
import numpy as np |
|
import faiss |
|
from sentence_transformers import SentenceTransformer |
|
from huggingface_hub import hf_hub_download |
|
import warnings |
|
warnings.filterwarnings('ignore') |
|
|
|
@st.cache_resource |
|
def load_artifacts(): |
|
repo_id = "PankhuriSharma9795/SHL_Model_Assets" |
|
|
|
|
|
model_dir = hf_hub_download(repo_id="PankhuriSharma9795/SHL_model_Asset", filename="config.json", repo_type="model") |
|
model = SentenceTransformer(model_dir.replace("config.json", "")) |
|
|
|
|
|
faiss_path = hf_hub_download(repo_id="PankhuriSharma9795/SHL_model_Asset", filename="faiss_index.index", repo_type="model") |
|
index = faiss.read_index(faiss_path) |
|
|
|
|
|
csv_path = hf_hub_download(repo_id="PankhuriSharma9795/SHL_model_Asset", filename="assessment_data.csv", repo_type="model") |
|
df = pd.read_csv(csv_path) |
|
|
|
return model, index, df |
|
|
|
def recommend_assessments(profile_text, model, index, df, top_n=10): |
|
profile_embedding = model.encode([profile_text]).astype('float32') |
|
_, indices = index.search(profile_embedding, top_n) |
|
return df.iloc[indices[0]] |
|
|
|
|
|
st.title("π SHL Assessment Recommender") |
|
|
|
profile = st.text_area("βοΈ Enter your job role or career aspiration:", |
|
"Looking for a leadership role in financial planning and client management") |
|
|
|
if st.button("Get Recommendations"): |
|
model, index, df = load_artifacts() |
|
results = recommend_assessments(profile, model, index, df, top_n=10) |
|
st.subheader("π§ Top 10 Matching Assessments") |
|
st.dataframe(results[['Assesment Name', 'cleaned_text', 'Duration', |
|
'Remote Testing Support', 'URL', 'Adaptive/IRT', 'Job Type']].reset_index(drop=True)) |
|
|
|
|
|
|
|
|