rag_app / app.py
iwashuman0405's picture
Upload 9 files
1a1949a verified
# app.py
import streamlit as st
from recommendation_engine import scrape_url, prepare_input, get_recommendations,traced_get_recommendations
from evaluate import evaluate
import json
st.title("SHL Assessment Recommender")
query = st.text_area("Enter job query")
duration = st.number_input("Max assessment duration (minutes)", min_value=5, max_value=120, value=40)
top_k = st.number_input("Number of result required", min_value=3, max_value=15, value=10)
url = st.text_input("Optional Job Description URL")
if st.button("Recommend Assessments"):
jd_text = scrape_url(url) if url else ""
query_text = prepare_input(query, duration, jd_text)
recommendations = traced_get_recommendations(query_text, top_k=10, max_duration=duration)
st.write("Query Input:", query_text)
st.subheader("Top Recommendations")
st.table(recommendations)
st.header("πŸ” Evaluation")
eval_json = st.text_area("Enter test queries as JSON array", height=300, value="""[
{
"query": "I am hiring for Java developers who can also collaborate effectively with my business teams. Looking for an assessment(s) that can be completed in 40 minutes.",
"duration": 40,
"url": "",
"relevant_assessments": ["Java Programming Test", "Team Collaboration Test"]
}
]""")
if st.button("Run Evaluation"):
try:
test_queries = json.loads(eval_json)
evaluate(test_queries, k=3)
except Exception as e:
st.error(f"Error parsing input or running evaluation: {e}")