|
import streamlit as st |
|
import openai |
|
from reportlab.lib.pagesizes import letter |
|
from reportlab.pdfgen import canvas |
|
|
|
|
|
openai.api_key = "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" |
|
|
|
|
|
st.markdown( |
|
""" |
|
<style> |
|
body { |
|
background-color: black; |
|
color: purple; |
|
} |
|
|
|
/* Modify the color of the title */ |
|
.css-1fcmnw0 h1 { |
|
color: purple; |
|
} |
|
|
|
/* Modify the background color of the input field */ |
|
.css-xpo4mk.st-cg { |
|
background-color: #483d8b; |
|
color: white; |
|
} |
|
|
|
/* Modify the color of the dropdown select box */ |
|
.css-2trqyj { |
|
color: purple; |
|
} |
|
|
|
/* Modify the background and text color of the button */ |
|
.css-14jx6h6 { |
|
background-color: purple; |
|
color: white; |
|
} |
|
</style> |
|
""", |
|
unsafe_allow_html=True |
|
) |
|
|
|
|
|
st.title("A.I Lesson Plan for Teachers") |
|
|
|
|
|
age = st.number_input("Enter your age", min_value=0, max_value=100, step=1) |
|
|
|
|
|
subject = st.text_area("Enter the subject") |
|
board = st.text_area("Enter the board ex: edexcel, aqa, IB or CBSE") |
|
|
|
|
|
complexity_levels = ["Beginner", "Intermediate", "Advanced", "Expert", "Master"] |
|
complexity = st.selectbox("Select the complexity level", complexity_levels) |
|
|
|
|
|
plan_duration = st.selectbox("Select the duration of the plan", ["1 hour", "1 week", "1 month", "3 months","6 months"]) |
|
|
|
|
|
if st.button("Generate Lesson Plan"): |
|
|
|
prompt = f"Generate a detailed lesson plan along with a few topic examples for teaching {subject} to {age}-year-old students. The lesson plan should have a complexity level of {complexity} and a duration of {plan_duration}.The lesson plan should follow the {board} exam board." |
|
|
|
|
|
response = openai.Completion.create( |
|
engine="text-davinci-003", |
|
prompt=prompt, |
|
max_tokens=1000, |
|
n=1, |
|
stop=None, |
|
temperature=0.7 |
|
) |
|
|
|
|
|
lesson_plan = response.choices[0].text.strip() |
|
|
|
|
|
st.subheader("Generated Lesson Plan") |
|
st.write(lesson_plan) |
|
|
|
|
|
def create_pdf(): |
|
pdf_file = "lesson_plan.pdf" |
|
c = canvas.Canvas(pdf_file, pagesize=letter) |
|
c.setFillColor("#000000") |
|
c.setFont("Helvetica", 12) |
|
c.drawString(100, 700, "Lesson Plan:") |
|
c.setFont("Helvetica", 10) |
|
lines = lesson_plan.split("\n") |
|
y = 680 |
|
for line in lines: |
|
c.drawString(100, y, line) |
|
y -= 15 |
|
c.save() |
|
return pdf_file |
|
|
|
|
|
pdf_file = create_pdf() |
|
st.download_button( |
|
label="Download Lesson Plan (PDF)", |
|
data=pdf_file, |
|
file_name="lesson_plan.pdf", |
|
mime="application/pdf" |
|
) |
|
|