import streamlit as st import os import openai from docx import Document from docx.shared import Pt # === Page Setup === st.set_page_config(page_title="🎓 Smart Career Advisor", layout="centered") # === Groq API Key Setup === openai.api_key = os.getenv("GROQ_API_KEY") # Set this in Hugging Face > Settings > Secrets MODEL = "llama3-70b-8192" # === Query Function === def query_groq(prompt): try: response = openai.ChatCompletion.create( model=MODEL, messages=[{"role": "user", "content": prompt}] ) return response.choices[0].message["content"] except Exception as e: return f"❌ Error: {str(e)}" # === Word Export Function === def generate_doc(user_name, content): doc = Document() heading = doc.add_heading(user_name, level=1) heading.alignment = 1 # center style = doc.styles['Normal'] font = style.font font.name = 'Arial' font.size = Pt(11) for section in content.split('\n\n'): if section.strip(): doc.add_paragraph(section.strip()) filename = f"{user_name.replace(' ', '_')}_Career_Report.docx" doc.save(filename) return filename # === Sidebar Inputs === with st.sidebar: st.image("https://img.icons8.com/fluency/96/graduation-cap.png", width=100) st.title("🧠 User Profile") user_name = st.text_input("👤 Full Name") education = st.selectbox("🎓 Education Level", ["Matric", "Intermediate", "Bachelor", "Master", "M.Phil", "PhD"]) major = st.text_input("📚 Field of Study / Major") interests = st.multiselect("🎯 Interests", [ "Technology", "Arts", "Business", "Education", "Healthcare", "Design", "Public Service" ]) work_style = st.radio("🏢 Preferred Work Style", ["Remote", "Field-based", "Office", "Freelance"]) goal = st.selectbox("🌟 Career Goal", ["High Income", "Flexibility", "Social Impact", "Research"]) skills = st.text_area("🛠️ Skills or Strengths", placeholder="e.g., leadership, coding, communication") industry = st.text_input("🏭 Preferred Industry (optional)") submit = st.button("🚀 Generate Career Report") # === Main Title === st.markdown("
Get personalized career suggestions using GenAI
", unsafe_allow_html=True) # === Main Logic === if submit and user_name and interests: st.info("🔍 Processing your profile. Please wait...") user_profile = f""" Name: {user_name} Education: {education} Major: {major} Interests: {', '.join(interests)} Work Style: {work_style} Career Goal: {goal} Skills: {skills} Preferred Industry: {industry} """ prompt = f""" You are a professional career counselor. Based on this user profile, generate a career guidance report in 5 sections: 1. Suggested Career Paths 2. Common Job Roles or Occupations 3. Required Skills or Certifications 4. Recommended Learning Resources (online courses, platforms) 5. Tips to Get Started User Profile: {user_profile} """ response = query_groq(prompt) # === Display Results === st.success("✅ Career Report Generated!") for section in response.split('\n\n'): if section.strip(): with st.expander(section.strip().split('\n')[0]): st.markdown(section.strip()) # === Word File Download === file_path = generate_doc(user_name, response) with open(file_path, "rb") as file: st.download_button( label="⬇️ Download Report as MS Word", data=file, file_name=file_path, mime="application/vnd.openxmlformats-officedocument.wordprocessingml.document" ) # === Footer Developer Info === st.markdown("---") st.markdown("**👨💻 Developed by Najaf Ali Sharqi**") st.markdown(""" **About the Developer:** Najaf Ali Sharqi is an experienced educationist and AI integration specialist with a passion for building inclusive, smart applications for educators and students in low-resource settings. He specializes in curriculum development, GenAI tools, and digital innovation in the education sector. """)