chorthackathone / app.py
Madiharehan's picture
Create app.py
a859006 verified
raw
history blame
3.91 kB
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()