Spaces:
Sleeping
Sleeping
File size: 6,519 Bytes
d2fb654 c1ae168 d2fb654 45d8d06 d2fb654 45d8d06 d2fb654 45d8d06 d2fb654 45d8d06 d2fb654 45d8d06 d2fb654 45d8d06 d2fb654 45d8d06 d2fb654 |
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
import streamlit as st
from datasets import load_dataset
import pandas as pd
from transformers import pipeline
# Constants
universities_url = "https://www.4icu.org/top-universities-world/"
# Load datasets with caching to optimize performance
@st.cache_resource
def load_datasets():
ds_jobs = load_dataset("lukebarousse/data_jobs")
ds_courses = load_dataset("azrai99/coursera-course-dataset")
ds_custom_courses = pd.read_csv("final_cleaned_merged_coursera_courses.csv")
ds_custom_jobs = pd.read_csv("merged_data_science_jobs.csv")
ds_custom_universities = pd.read_csv("merged_university_data_cleaned (1).csv")
return ds_jobs, ds_courses, ds_custom_courses, ds_custom_jobs, ds_custom_universities
ds_jobs, ds_courses, ds_custom_courses, ds_custom_jobs, ds_custom_universities = load_datasets()
# Initialize the pipeline with caching, using an accessible model like 'google/flan-t5-large'
@st.cache_resource
def load_pipeline():
return pipeline("text2text-generation", model="google/flan-t5-large")
qa_pipeline = load_pipeline()
# Streamlit App Interface
st.title("Career Counseling Application")
st.subheader("Build Your Profile and Discover Tailored Career Recommendations")
# Sidebar for Profile Setup
st.sidebar.header("Profile Setup")
educational_background = st.sidebar.text_input("Educational Background (e.g., Degree, Major)")
interests = st.sidebar.text_input("Interests (e.g., AI, Data Science, Engineering)")
tech_skills = st.sidebar.text_area("Technical Skills (e.g., Python, SQL, Machine Learning)")
soft_skills = st.sidebar.text_area("Soft Skills (e.g., Communication, Teamwork)")
# Save profile data for session-based recommendations
if st.sidebar.button("Save Profile"):
st.session_state.profile_data = {
"educational_background": educational_background,
"interests": interests,
"tech_skills": tech_skills,
"soft_skills": soft_skills
}
st.sidebar.success("Profile saved successfully!")
# Questions Section (Appears after profile submission)
if "profile_data" in st.session_state:
st.header("Answer the Following Questions:")
questions = [
"What do you see yourself achieving in the next five years?",
"Which skills would you like to develop further? (Examples: leadership, technical expertise, communication, etc.)",
"Do you prefer a structured routine or a more flexible, varied work environment?",
"What’s most important to you in a job? (e.g., work-life balance, job stability, opportunities for growth, impact on society)",
"What types of projects or tasks energize you? (e.g., solving complex problems, helping others, creating something new)",
"Are you comfortable with roles that may involve public speaking or presenting ideas?",
"How do you handle stress or pressure in a work setting? (Select options: I thrive under pressure, I manage well, I prefer lower-stress environments)",
"Would you be open to relocation or travel for your job?",
"Do you prioritize high salary potential or job satisfaction when considering a career?",
"What kind of work culture are you drawn to? (e.g., collaborative, competitive, mission-driven, innovative)"
]
answers = {}
for question in questions:
answers[question] = st.text_input(question)
if st.button("Submit Answers"):
st.session_state.answers = answers
st.success("Your answers have been saved!")
# Intelligent Q&A Section
st.header("Intelligent Q&A")
question = st.text_input("Ask a career-related question:")
if question:
answer = qa_pipeline(question)[0]["generated_text"]
st.write("Answer:", answer)
# Career and Job Recommendations Section
st.header("Career and Job Recommendations")
if "profile_data" in st.session_state:
job_recommendations = []
for job in ds_jobs["train"]:
job_skills = job.get("job_skills", "") or ""
if any(skill.lower() in job_skills.lower() for skill in st.session_state.profile_data["tech_skills"].split(",")):
job_recommendations.append(job.get("job_title_short", "Unknown Job Title"))
for _, job in ds_custom_jobs.iterrows():
job_skills = job.get("skills", "") or ""
if any(skill.lower() in job_skills.lower() for skill in st.session_state.profile_data["tech_skills"].split(",")):
job_recommendations.append(job.get("job_title", "Unknown Job Title"))
# Remove duplicates by converting the list to a set and back to a list
job_recommendations = list(set(job_recommendations))
if job_recommendations:
st.subheader("Job Recommendations")
st.write("Based on your profile, here are some potential job roles:")
for job in job_recommendations[:5]: # Limit to top 5 job recommendations
st.write("- ", job)
else:
st.write("No specific job recommendations found matching your profile.")
# Course Suggestions Section
st.header("Course Suggestions")
if "profile_data" in st.session_state:
course_recommendations = [
course.get("Course Name", "Unknown Course Title") for course in ds_courses["train"]
if any(interest.lower() in course.get("Course Name", "").lower() for interest in st.session_state.profile_data["interests"].split(","))
]
course_recommendations.extend([
row["Course Name"] for _, row in ds_custom_courses.iterrows()
if any(interest.lower() in row["Course Name"].lower() for interest in st.session_state.profile_data["interests"].split(","))
])
# Remove duplicates from course recommendations
course_recommendations = list(set(course_recommendations))
if course_recommendations:
st.subheader("Recommended Courses")
st.write("Here are some courses related to your interests:")
for course in course_recommendations[:5]: # Limit to top 5 course recommendations
st.write("- ", course)
else:
st.write("No specific courses found matching your interests.")
# University Recommendations Section
st.header("Top Universities")
st.write("For further education, you can explore the top universities worldwide:")
st.write(f"[View Top Universities Rankings]({universities_url})")
st.subheader("Custom University Data")
if not ds_custom_universities.empty:
st.write("Here are some recommended universities based on custom data:")
st.dataframe(ds_custom_universities.head())
# Conclusion
st.write("Thank you for using the Career Counseling Application!")
|