import streamlit as st import json from openai_llm import LessonPlanGenerator # Page configuration st.set_page_config( page_title="Lesson Plan Generator", # page_icon="📚", layout="wide" ) # Custom CSS with corrected container styling st.markdown(""" """, unsafe_allow_html=True) # Initialize generator @st.cache_resource def get_generator(): return LessonPlanGenerator() generator = get_generator() # Header st.title("WizLab Lesson Plan Generator") st.markdown("We help you generate lesson plans tailored to your needs.") # Input section st.header("📝 Input Your Requirements") # Create two columns for input fields col1, col2 = st.columns(2) with col1: topic = st.text_input("Topic", placeholder="e.g., Introduction to Photosynthesis") age_group_options = ["Elementary (6-11)", "Middle School (12-14)", "High School (15-18)", "Adult Learners", "Other"] age_group_selection = st.selectbox("Target Age Group", age_group_options) if age_group_selection == "Other": age_group = st.text_input("Specify Age Group") else: age_group = age_group_selection with col2: duration_options = ["30 minutes", "45 minutes", "60 minutes", "90 minutes", "Other"] duration_selection = st.selectbox("Lesson Duration", duration_options) if duration_selection == "Other": duration = st.text_input("Specify Duration") else: duration = duration_selection proficiency_options = ["Beginner", "Intermediate", "Advanced", "Other"] proficiency_selection = st.selectbox("Proficiency Level", proficiency_options) if proficiency_selection == "Other": proficiency = st.text_input("Specify Proficiency Level") else: proficiency = proficiency_selection tech_options = ["Interactive Whiteboard", "Computers/Laptops", "Mobile Devices", "Internet Access", "None", "Other"] tech_selection = st.multiselect("Technology Requirements", tech_options) if "Other" in tech_selection: other_tech = st.text_input("Specify Other Technology Requirements") tech_usage = [tech for tech in tech_selection if tech != "Other"] + [other_tech] else: tech_usage = tech_selection def format_content(data): html_content = '