Spaces:
Sleeping
Sleeping
import streamlit as st | |
from transformers import AutoTokenizer, pipeline | |
from peft import PeftModel, PeftConfig | |
from transformers import AutoModelForSeq2SeqLM | |
from datasets import load_dataset | |
import torch | |
st.write("Initializing...") # Debugging message | |
# Load the LoRA configuration and model | |
config = PeftConfig.from_pretrained("lorahub/flan_t5_large-web_questions_potential_correct_answer") | |
base_model = AutoModelForSeq2SeqLM.from_pretrained("google/flan-t5-large") | |
model = PeftModel.from_pretrained(base_model, "lorahub/flan_t5_large-web_questions_potential_correct_answer") | |
tokenizer = AutoTokenizer.from_pretrained("google/flan-t5-large") | |
st.write("Model Loaded Successfully!") # Debugging message | |
qa_pipeline = pipeline("text2text-generation", model=model, tokenizer=tokenizer) | |
# Load relevant datasets | |
hotpotqa_dataset = load_dataset("bdsaglam/hotpotqa-distractor") | |
squad_v2_dataset = load_dataset("tom-010/squad_v2_with_answerable") | |
bias_professions_dataset = load_dataset("society-ethics/stable-bias-professions") | |
classifier_dataset = load_dataset("habanoz/classifier_1300_610_url_p") | |
st.write("Datasets Loaded Successfully!") # Debugging message | |
# Streamlit App Structure | |
def main(): | |
st.title("AI-Powered Career Counseling App with Advanced Q&A") | |
st.sidebar.title("Navigation") | |
option = st.sidebar.selectbox("Choose an Option", ["Profile Setup", "Career Q&A", "Career Recommendations", "Resource Library"]) | |
if option == "Profile Setup": | |
profile_setup() | |
elif option == "Career Q&A": | |
career_qa() | |
elif option == "Career Recommendations": | |
career_recommendations() | |
elif option == "Resource Library": | |
resource_library() | |
# Profile Setup Section | |
def profile_setup(): | |
st.header("Profile Setup") | |
st.write("Fill out your details to personalize your experience.") | |
age = st.number_input("Age", min_value=10, max_value=100) | |
education = st.selectbox("Education Level", ["High School", "Undergraduate", "Graduate", "Other"]) | |
interests = st.text_area("Career Interests", "e.g., Data Science, Graphic Design") | |
skills = st.text_area("Skills (comma-separated)", "e.g., Python, communication, empathy") | |
if st.button("Save Profile"): | |
st.session_state["profile"] = { | |
"age": age, | |
"education": education, | |
"interests": interests.split(", "), | |
"skills": skills.split(", ") | |
} | |
st.success("Profile saved successfully!") | |
# Q&A Section for Career-related questions | |
def career_qa(): | |
st.header("Career Q&A") | |
question = st.text_input("Ask a career-related question") | |
if st.button("Get Answer"): | |
if question: | |
# Prepare question for the model | |
response = qa_pipeline(question) | |
st.write("Answer:", response[0]['generated_text']) | |
else: | |
st.warning("Please enter a question.") | |
# Career Recommendations Section (Mockup, Extend as needed) | |
def career_recommendations(): | |
st.header("Career Recommendations") | |
# Mock recommendation - In a real application, this should be based on a recommendation model | |
st.write("Based on your interests and skills, we recommend:") | |
st.write("1. Data Scientist") | |
st.write("2. Software Engineer") | |
st.write("3. Product Manager") | |
# Resource Library Section | |
def resource_library(): | |
st.header("Resource Library") | |
st.write("Browse resources related to different careers.") | |
career_choice = st.selectbox("Choose a career", ["Data Scientist", "Graphic Designer", "Software Engineer", "Nurse"]) | |
# Display resources for the chosen career | |
st.write(f"### Resources for {career_choice}") | |
st.write("1. Article: How to become a successful " + career_choice) | |
st.write("2. Video: Day in the life of a " + career_choice) | |
st.write("3. Guide: Top skills for " + career_choice) | |
if __name__ == "__main__": | |
main() | |