|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import streamlit as st |
|
import pandas as pd |
|
import numpy as np |
|
import faiss |
|
from sentence_transformers import SentenceTransformer |
|
import warnings |
|
warnings.filterwarnings('ignore') |
|
|
|
|
|
@st.cache_resource |
|
def load_artifacts(): |
|
model = SentenceTransformer('all-MiniLM-L6-v2') |
|
index = faiss.read_index('faiss_index.index') |
|
df = pd.read_csv('assessment_data.csv') |
|
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)) |
|
|
|
|
|
|
|
|